您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關大數據開發中如何繪制損失函數,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
文件夾下內容:
文件夾布局:
—— 繪制損失函數曲線 —— —— drwaLossFunction.py —— —— loadFromPickle.py —— —— drwaLossCurve_tensorboard.py —— —— drwaLossCurve_matplotlib.py
文件: drwaLossFunction.py
# 獲取訓練世代和相應損失值import osimport pickledef createPickleFiles():'''用于生成三個pickle文件,分別用于保存訓練世代數、置信度損失和定位損失'''myFolderPath = r'logs'files = os.listdir(myFolderPath) # 列表類型 元素是文件名 字符串類型 files.sort(key=lambda x:int(x[5:x.index('-')]), reverse=False) # 按照訓練世代排序loss4loc = list() # 記錄定位損失loss4cof = list() # 記錄置信度損失record4epoch = list() # 記錄訓練世代數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('繪制損失函數曲線/臨時文件-EPOCH.pickle','wb') as file4epoch:pickle.dump(record4epoch,file4epoch) # 保存世代信息with open('繪制損失函數曲線/臨時文件-LOSS4CONFIDENT.pickle','wb') as file4conf:pickle.dump(loss4cof,file4conf) # 保存置信度損失信息with open('繪制損失函數曲線/臨時文件-LOSS4LOCATION.pickle','wb') as file4loc:pickle.dump(loss4loc,file4loc) # 保存定位損失信息if __name__ == '__main__':createPickleFiles()
文件: loadFromPickle.py
# 從pickle文件中加載世代數和相應損失import pickledef getInfo():'''返回三個列表,分別用于保存世代、置信度損失和定位損失'''info = list()fileNames = ['繪制損失函數曲線/臨時文件-EPOCH.pickle','繪制損失函數曲線/臨時文件-LOSS4CONFIDENT.pickle','繪制損失函數曲線/臨時文件-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('繪制損失函數曲線/單獨繪制')for epoch, conf, loc in zip(*info):writer.add_scalar('置信度損失', conf, epoch)writer.add_scalar('定位損失', loc, epoch)writer.close()writer = SummaryWriter('繪制損失函數曲線/三者對比')for epoch, conf, loc in zip(*info):writer.add_scalars('損失函數', { 'conf':conf,'loc':loc,'conf + loc': conf + loc}, epoch)writer.close()# '''# tensorboard --logdir=繪制損失函數曲線# '''
文件: drwaLossCurve_matplotlib.py
# 使用matplotlib繪制損失函數曲線 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('訓練世代: epoch')plt.ylabel('損失值: loss')plt.legend(loc='upper right', frameon=True)plt.show()
關于“大數據開發中如何繪制損失函數”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。