日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何绘制caffe网络训练曲线

發(fā)布時間:2024/9/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何绘制caffe网络训练曲线 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本系列文章由 @yhl_leo 出品,轉(zhuǎn)載請注明出處。
文章鏈接: http://blog.csdn.net/yhl_leo/article/details/51774966

當(dāng)我們設(shè)計好網(wǎng)絡(luò)結(jié)構(gòu)后,在神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過程中,迭代輸出的log信息中,一般包括,迭代次數(shù),訓(xùn)練損失代價,測試損失代價,測試精度等。本文提供一段示例,簡單講述如何繪制訓(xùn)練曲線(training curve)。

首先看一段訓(xùn)練的log輸出,網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)的那段忽略,直接跳到訓(xùn)練迭代階段:

I0627 21:30:06.004370 15558 solver.cpp:242] Iteration 0, loss = 21.6953 I0627 21:30:06.004420 15558 solver.cpp:258] Train net output #0: loss = 21.6953 (* 1 = 21.6953 loss) I0627 21:30:06.004426 15558 solver.cpp:571] Iteration 0, lr = 0.01 I0627 21:30:28.592690 15558 solver.cpp:242] Iteration 100, loss = 13.6593 I0627 21:30:28.592730 15558 solver.cpp:258] Train net output #0: loss = 13.6593 (* 1 = 13.6593 loss) I0627 21:30:28.592733 15558 solver.cpp:571] Iteration 100, lr = 0.01...I0627 21:37:47.926597 15558 solver.cpp:346] Iteration 2000, Testing net (#0) I0627 21:37:48.588079 15558 blocking_queue.cpp:50] Data layer prefetch queue empty I0627 21:40:40.575474 15558 solver.cpp:414] Test net output #0: loss = 13.07728 (* 1 = 13.07728 loss) I0627 21:40:40.575477 15558 solver.cpp:414] Test net output #1: loss/top-1 = 0.00226 I0627 21:40:40.575487 15558 solver.cpp:414] Test net output #2: loss/top-5 = 0.01204 I0627 21:40:40.708261 15558 solver.cpp:242] Iteration 2000, loss = 13.1739 I0627 21:40:40.708302 15558 solver.cpp:258] Train net output #0: loss = 13.1739 (* 1 = 13.1739 loss) I0627 21:40:40.708307 15558 solver.cpp:571] Iteration 2000, lr = 0.01...I0628 01:28:47.426129 15558 solver.cpp:242] Iteration 49900, loss = 0.960628 I0628 01:28:47.426177 15558 solver.cpp:258] Train net output #0: loss = 0.960628 (* 1 = 0.960628 loss) I0628 01:28:47.426182 15558 solver.cpp:571] Iteration 49900, lr = 0.01 I0628 01:29:10.084050 15558 solver.cpp:449] Snapshotting to binary proto file train_net/net_iter_50000.caffemodel I0628 01:29:10.563587 15558 solver.cpp:734] Snapshotting solver state to binary proto filetrain_net/net_iter_50000.solverstate I0628 01:29:10.692239 15558 solver.cpp:346] Iteration 50000, Testing net (#0) I0628 01:29:13.192075 15558 blocking_queue.cpp:50] Data layer prefetch queue empty I0628 01:31:00.595120 15558 solver.cpp:414] Test net output #0: loss = 0.6404232 (* 1 = 0.6404232 loss) I0628 01:31:00.595124 15558 solver.cpp:414] Test net output #1: loss/top-1 = 0.953861 I0628 01:31:00.595127 15558 solver.cpp:414] Test net output #2: loss/top-5 = 0.998659 I0628 01:31:00.727577 15558 solver.cpp:242] Iteration 50000, loss = 0.680951 I0628 01:31:00.727618 15558 solver.cpp:258] Train net output #0: loss = 0.680951 (* 1 = 0.680951 loss) I0628 01:31:00.727623 15558 solver.cpp:571] Iteration 50000, lr = 0.0096
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

這是一個普通的網(wǎng)絡(luò)訓(xùn)練輸出,含有1個loss,可以看出solver.prototxt的部分參數(shù)為:

test_interval: 2000 base_lr: 0.01 lr_policy: "step" # or "multistep" gamma: 0.96 display: 100 stepsize: 50000 # if is "multistep", the first stepvalue is set as 50000 snapshot_prefix: "train_net/net"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

當(dāng)然,上面的分析,即便不理會,對下面的代碼也沒什么影響,繪制訓(xùn)練曲線本質(zhì)就是文件操作,從上面的log文件中,我們可以看出:

  • 對于每個出現(xiàn)字段] Iteration和loss =的文本行,含有訓(xùn)練的迭代次數(shù)以及損失代價;
  • 對于每個含有字段] Iteration和Testing net (#0)的文本行,含有測試的對應(yīng)的訓(xùn)練迭代次數(shù);
  • 對于每個含有字段#2:和loss/top-5的文本行,含有測試top-5的精度。

根據(jù)這些分析,就可以對文本進(jìn)行如下處理:

import os import sys import numpy as np import matplotlib.pyplot as plt import math import re import pylab from pylab import figure, show, legend from mpl_toolkits.axes_grid1 import host_subplot# read the log file fp = open('log.txt', 'r')train_iterations = [] train_loss = [] test_iterations = [] test_accuracy = []for ln in fp:# get train_iterations and train_lossif '] Iteration ' in ln and 'loss = ' in ln:arr = re.findall(r'ion \b\d+\b,',ln)train_iterations.append(int(arr[0].strip(',')[4:]))train_loss.append(float(ln.strip().split(' = ')[-1]))# get test_iteraitionsif '] Iteration' in ln and 'Testing net (#0)' in ln:arr = re.findall(r'ion \b\d+\b,',ln)test_iterations.append(int(arr[0].strip(',')[4:]))# get test_accuracyif '#2:' in ln and 'loss/top-5' in ln:test_accuracy.append(float(ln.strip().split(' = ')[-1]))fp.close()host = host_subplot(111) plt.subplots_adjust(right=0.8) # ajust the right boundary of the plot window par1 = host.twinx() # set labels host.set_xlabel("iterations") host.set_ylabel("log loss") par1.set_ylabel("validation accuracy")# plot curves p1, = host.plot(train_iterations, train_loss, label="training log loss") p2, = par1.plot(test_iterations, test_accuracy, label="validation accuracy")# set location of the legend, # 1->rightup corner, 2->leftup corner, 3->leftdown corner # 4->rightdown corner, 5->rightmid ... host.legend(loc=5)# set label color host.axis["left"].label.set_color(p1.get_color()) par1.axis["right"].label.set_color(p2.get_color()) # set the range of x axis of host and y axis of par1 host.set_xlim([-1500, 160000]) par1.set_ylim([0., 1.05])plt.draw() plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

示例代碼中,添加了簡單的注釋,如果網(wǎng)絡(luò)訓(xùn)練的log輸出與本中所列出的不同,只需要略微修改其中的一些參數(shù)設(shè)置,就能繪制出訓(xùn)練曲線圖。

最后附上繪制出的訓(xùn)練曲線圖:

總結(jié)

以上是生活随笔為你收集整理的如何绘制caffe网络训练曲线的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 综合xx网| 亚洲三级伦理 | 中文字幕亚洲天堂 | 香蕉污视频在线观看 | 中文字幕在线官网 | 涩涩视频在线 | 无码人妻精品一区二区三 | 国产免费av网址 | 使劲插视频 | 国产三级不卡 | 亚洲干干干 | 私库av在线 | 亚洲一区电影在线观看 | 日鲁鲁 | 国产一级做a爰片久久毛片男男 | 极品丰满少妇 | 成人做受视频试看60秒 | 午夜电影天堂 | 吃瓜网今日吃瓜 热门大瓜 色婷在线 | 欧美一区二区三区不卡视频 | 香蕉视频2020 | 欧美一区二区三区免 | 日韩一区二区三区网站 | 国产在线观看你懂的 | 96久久精品 | 精品无码国产一区二区三区51安 | 日韩爱爱片 | 国产日韩91| 黄色录像一级大片 | 国产成人精品a视频 | 日韩视频 中文字幕 | 大尺度av| 九九夜| 天天操天天透 | 国产精品 欧美 日韩 | 国产一二三区精品 | 51国产视频 | 午夜不卡久久精品无码免费 | 午夜精品久久久久久久91蜜桃 | 性欧美大战久久久久久久免费观看 | 少妇饥渴放荡91麻豆 | 老司机伊人 | 久草福利视频 | 久久av影视 | 免费人成在线观看视频播放 | 久久69| 中文字幕日本在线 | 992av| 成人性爱视频在线观看 | 亚洲欧美日韩动漫 | 国产操视频| 欧美福利小视频 | 中国黄色a级片 | 亚洲一区电影网 | 日韩电影在线一区 | 欧美日韩在线观看一区二区 | 日韩成人免费视频 | 69天堂网| 日韩av中字 | 奇米影视四色777 | 亚洲精品日韩丝袜精品 | 中文字幕无码毛片免费看 | 色屁屁一区二区三区 | 国产福利91精品一区二区三区 | 亚洲综合久久网 | 亚洲国产一二三区 | 亚洲超碰在线观看 | 亚洲男女视频在线观看 | 美女被叉叉的影院 | 国产黄色小说 | 亚洲人午夜精品 | 婷婷激情视频 | 欧美精品一区二区三区视频 | 亚洲黄色激情 | 久久网页 | 国产视频999 | 亚洲欧美在线免费 | 亚洲欧美日韩国产精品 | 国产精品3| 欧美色图亚洲视频 | 国产午夜精品久久久久久久久久 | 欧美bbbbbbbbbbbb1 麻豆精品av | 欧美另类xxxx野战 | 91精选国产 | 欧美色视频在线 | 午夜一区在线观看 | 国产a国产片国产 | 国产精品3p视频 | 欧美熟妇精品黑人巨大一二三区 | 熟妇人妻精品一区二区三区视频 | 日本一区二区在线免费 | 欧美大片在线看免费观看 | 亚洲图片三区 | 国产三级按摩推拿按摩 | 欧美精品久久久久久久久 | 波多野结衣视频一区二区 | 中文字幕有码在线播放 | 四月婷婷| 一级片美女 |