如何通過(guò)python畫loss曲線的方法
1. 首先導(dǎo)入一些python畫圖的包,讀取txt文件,假設(shè)我現(xiàn)在有兩個(gè)模型訓(xùn)練結(jié)果的records.txt文件
import numpy as np
import matplotlib.pyplot as plt
import pylab as pl
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
data1_loss =np.loadtxt("valid_RCSCA_records.txt")
data2_loss = np.loadtxt("valid_SCRCA_records.txt")
2. 我自己的數(shù)據(jù)第一列是訓(xùn)練步數(shù),第二列的loss,所以取出相應(yīng)列的數(shù)據(jù)作為繪圖的x和y
x = data1_loss[:,0] y = data1_loss[:,1] x1 = data2_loss[:,0] y1 = data2_loss[:,1]
3. 先創(chuàng)建一幅圖,再在這幅圖上添加一個(gè)小圖,小圖用來(lái)顯示部分放大的曲線
fig = plt.figure(figsize = (7,5)) #figsize是圖片的大小` ax1 = fig.add_subplot(1, 1, 1) # ax1是子圖的名字`
4. 先畫出整體的loss曲線
pl.plot(x,y,'g-',label=u'Dense_Unet(block layer=5)')`
# ‘'g‘'代表“green”,表示畫出的曲線是綠色,“-”代表畫的曲線是實(shí)線,可自行選擇,label代表的是圖例的名稱,一般要在名稱前面加一個(gè)u,如果名稱是中文,會(huì)顯示不出來(lái),目前還不知道怎么解決。
p2 = pl.plot(x1, y1,'r-', label = u'RCSCA_Net')
pl.legend()
#顯示圖例
p3 = pl.plot(x2,y2, 'b-', label = u'SCRCA_Net')
pl.legend()
pl.xlabel(u'iters')
pl.ylabel(u'loss')
plt.title('Compare loss for different models in training')
畫出曲線如圖:

5. 顯示放大的部分曲線
# plot the box
tx0 = 0
tx1 = 10000
#設(shè)置想放大區(qū)域的橫坐標(biāo)范圍
ty0 = 0.000
ty1 = 0.12
#設(shè)置想放大區(qū)域的縱坐標(biāo)范圍
sx = [tx0,tx1,tx1,tx0,tx0]
sy = [ty0,ty0,ty1,ty1,ty0]
pl.plot(sx,sy,"purple")
axins = inset_axes(ax1, width=1.5, height=1.5, loc='right')
#loc是設(shè)置小圖的放置位置,可以有"lower left,lower right,upper right,upper left,upper #,center,center left,right,center right,lower center,center"
axins.plot(x1,y1 , color='red', ls='-')
axins.plot(x2,y2 , color='blue', ls='-')
axins.axis([0,20000,0.000,0.12])
plt.savefig("train_results_loss.png")
pl.show
#pl.show()也可以

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring實(shí)戰(zhàn)之使用util:命名空間簡(jiǎn)化配置操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之使用util:命名空間簡(jiǎn)化配置操作,結(jié)合實(shí)例形式分析了Spring使用util:命名空間簡(jiǎn)化配置操作的具體步驟與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-12-12
Python自動(dòng)化辦公之合并多個(gè)Excel
在日常的辦公自動(dòng)化工作中,尤其是處理大量數(shù)據(jù)時(shí),合并多個(gè)?Excel?表格是一個(gè)常見且繁瑣的任務(wù),下面小編就來(lái)為大家介紹一下如何使用Python輕松實(shí)現(xiàn)合并多個(gè)Excel吧2025-02-02
Python從臨時(shí)郵箱獲取驗(yàn)證碼的操作代碼
這篇文章主要介紹了Python從臨時(shí)郵箱獲取驗(yàn)證碼的操作代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
詳解Python中range()與xrange()的區(qū)別
range()?和?xrange()?是兩個(gè)函數(shù),可用于在?Python的?for?循環(huán)中迭代一定次數(shù)。本文將通過(guò)示例詳細(xì)說(shuō)說(shuō)二者的區(qū)別與使用,需要的可以參考一下2022-09-09
Python?Pygame實(shí)戰(zhàn)之五款童年經(jīng)典游戲合集
本文為大家總結(jié)了五款利用Python+Pygame實(shí)現(xiàn)的童年經(jīng)典游戲:推箱子、滑雪、八分音符醬、保衛(wèi)蘿卜和飛機(jī)大戰(zhàn),快跟隨小編一起學(xué)習(xí)一下2022-04-04
Python實(shí)現(xiàn)在某個(gè)數(shù)組中查找一個(gè)值的算法示例
今天小編就為大家分享一篇Python實(shí)現(xiàn)在某個(gè)數(shù)組中查找一個(gè)值的算法示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Python學(xué)習(xí)筆記之集合的概念和簡(jiǎn)單使用示例
這篇文章主要介紹了Python學(xué)習(xí)筆記之集合的概念和簡(jiǎn)單使用,涉及Python集合的定義、查找、添加、刪除等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-08-08

