溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

大數(shù)據(jù)開發(fā)中如何繪制損失函數(shù)

發(fā)布時間:2021-12-15 15:22:19 來源:億速云 閱讀:235 作者:小新 欄目:大數(shù)據(jù)

這篇文章將為大家詳細講解有關(guān)大數(shù)據(jù)開發(fā)中如何繪制損失函數(shù),小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

文件夾下內(nèi)容:
大數(shù)據(jù)開發(fā)中如何繪制損失函數(shù)
文件夾布局:

—— 繪制損失函數(shù)曲線
—— —— drwaLossFunction.py
—— —— loadFromPickle.py
—— —— drwaLossCurve_tensorboard.py
—— —— drwaLossCurve_matplotlib.py

文件: drwaLossFunction.py

# 獲取訓(xùn)練世代和相應(yīng)損失值import osimport pickledef createPickleFiles():'''用于生成三個pickle文件,分別用于保存訓(xùn)練世代數(shù)、置信度損失和定位損失'''myFolderPath = r'logs'files = os.listdir(myFolderPath)  # 列表類型 元素是文件名 字符串類型
    files.sort(key=lambda x:int(x[5:x.index('-')]), 
        reverse=False)  # 按照訓(xùn)練世代排序loss4loc = list()  # 記錄定位損失loss4cof = list()  # 記錄置信度損失record4epoch = list()  # 記錄訓(xùn)練世代數(shù)for item  in files:info = item.split('-')record4epoch.append(int(info[0][5:]))loss4loc.append(float(info[1][3:]))loss4cof.append(float(info[2][4:-4]))with open('繪制損失函數(shù)曲線/臨時文件-EPOCH.pickle','wb') as file4epoch:pickle.dump(record4epoch,file4epoch)  # 保存世代信息with open('繪制損失函數(shù)曲線/臨時文件-LOSS4CONFIDENT.pickle','wb') as file4conf:pickle.dump(loss4cof,file4conf)  # 保存置信度損失信息with open('繪制損失函數(shù)曲線/臨時文件-LOSS4LOCATION.pickle','wb') as file4loc:pickle.dump(loss4loc,file4loc)  # 保存定位損失信息if __name__ == '__main__':createPickleFiles()

文件: loadFromPickle.py

# 從pickle文件中加載世代數(shù)和相應(yīng)損失import pickledef getInfo():'''返回三個列表,分別用于保存世代、置信度損失和定位損失'''info = list()fileNames = ['繪制損失函數(shù)曲線/臨時文件-EPOCH.pickle','繪制損失函數(shù)曲線/臨時文件-LOSS4CONFIDENT.pickle','繪制損失函數(shù)曲線/臨時文件-LOSS4LOCATION.pickle']  # 三個文件的名字for name in fileNames:with open(name, 'rb') as f:item = pickle.load(f)info.append(item)return info        

if __name__ == '__main__':info = getInfo()# print(info[0])  # 世代# print(info[1])  # 置信度損失# print(info[2])  # 定位損失

文件: drwaLossCurve_tensorboard.py

from torch.utils.tensorboard import SummaryWriterimport loadFromPickleimport drwaLossFunction

drwaLossFunction.createPickleFiles()info = loadFromPickle.getInfo()writer = SummaryWriter('繪制損失函數(shù)曲線/單獨繪制')for epoch, conf, loc in zip(*info):writer.add_scalar('置信度損失', conf, epoch)writer.add_scalar('定位損失', loc, epoch)writer.close()writer = SummaryWriter('繪制損失函數(shù)曲線/三者對比')for epoch, conf, loc in zip(*info):writer.add_scalars('損失函數(shù)', {
   
   
   'conf':conf,'loc':loc,'conf + loc': conf + loc}, epoch)writer.close()# '''# tensorboard --logdir=繪制損失函數(shù)曲線# '''

文件: drwaLossCurve_matplotlib.py

# 使用matplotlib繪制損失函數(shù)曲線 import drwaLossFunctionimport loadFromPickleimport matplotlibimport matplotlib.pyplot as plt 
matplotlib.rcParams['font.family'] = 'SimHei' # 'SimHei'  # 'STSong'matplotlib.rcParams['font.size'] = 15  # 修改字體大小plt.rcParams['axes.unicode_minus'] = False # 用來正常顯示負號
  drwaLossFunction.createPickleFiles()info = loadFromPickle.getInfo()epoch, conf, loc = info

plt.plot(epoch, loc,'rx-.', label='定位損失')plt.plot(epoch, conf, 'go-', label='置信度損失')plt.xlabel('訓(xùn)練世代: epoch')plt.ylabel('損失值: loss')plt.legend(loc='upper right', frameon=True)plt.show()

關(guān)于“大數(shù)據(jù)開發(fā)中如何繪制損失函數(shù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI