caffe 儲存log繪曲線

2021-07-27 04:39:27 字數 1558 閱讀 7173

在訓練過程中畫出accuracy 和loss曲線能夠更直觀的觀察網路訓練的狀態,以便更好的優化網路的訓練。本文主要介紹在基於caffe框架訓練網路時,如何利用caffe自帶的一些實用的工具包來繪製曲線。

step1:儲存日誌檔案 

在訓練過程中把終端輸出的結果儲存為乙個日誌檔案,注意檔案的字尾名必須是.log,這是因為後面再解析日誌檔案時有這個要求。如何把終端儲存到日誌檔案,例子如下:

$tools/caffe train --solver=$solverfile

2>&1 |tee out.log

step2:解析日誌檔案 

這一步利用caffe中tools/extra資料夾下的parse_log.py來解析日誌檔案。具體例子如下:

python parse_log.py

out.log ./ #兩個引數,乙個是日誌檔案,另乙個是儲存的路徑

執行結束之後會發現在你儲存的路徑中會生成兩個檔案out.log.train和out.log.test

step3:繪製accuracy 和loss曲線。 

利用caffe中tools/extra資料夾下的plot_training_log.py檔案來繪製。

python plot_training_log.py

2 testloss.png

out.log

這裡要解釋下,如果你直接執行這個是會報錯的。因為在out.log.test檔案是這樣的。

numiters,seconds,testaccuracy,testloss

0.0,2.318823,-1,0.360432

200.0,10.975734,-1,0.0757681

400.0,19.634317,-1,0.0610909

600.0,28.295885,-1,0.0554078

800.0,36.953475,-1,0.0510606

1000.0,45.644651,-1,0.0463909

load_data的時候第一行是不讀的,要麼你自己第一行加個#,要麼就直接不讀第一行。另外在split的時候不是用空格而是用『,』因此做如下修改。

def

load_data

(data_file, field_idx0, field_idx1):

data = [, ]

with open(data_file, 'r') as f:

num=len(f)

for line_num in range(1,num):#此處修改

line = f[line_num].strip()

#if line[0] != '#':#此處修改

fields = line.split(',')#此處修改

return data

上面還有個地方需要解釋就是那個2是什麼意思,這個你直接執行下python plot_training_log.py就會打出幫助資訊,就能看見了。

以上就是利用caffe自帶的工具包繪製曲線的方法。

numpy matplotlib繪函式曲線

f x sin 4x 2 x exp x x x 0.1 由於學模式識別,ppt中有該式子的圖,於是想畫出來看下。太菜了,查了半天才畫出來。因此記錄。直接import munpy as np np.sin np.exp 都是現成numpy自帶的。同時x np.linspace 1,3 表示x變數在圖...

caffe繪製train和loss曲線

caffe tools extra下面有幾個檔案,必備的 1 caffe tools extra parse log.sh 2 caffe tools extra extract seconds.py 3 caffe tools extra plot training log.py.example ...

MATLAB繪製caffe訓練日誌曲線

公司機器上,我是非管理員賬戶,python畫圖缺少一些庫,但是又沒有許可權安裝,所以考慮matlab。使用matlab畫caffe的訓練日誌,其實就是找規律 如下 function plot log logname fid fopen logname,r test loss fopen test l...