怎樣在windows下輸出訓練caffemodel的log日誌並畫出accuracy和loss曲線?

我在windows下訓練的caffemodel,然後想輸出每次訓練的log日誌,然後繪製出accuracy和loss曲線,這個怎麼解決呢?是在solver配置文件里修改還是在最後運行的.bat文件下(就是調用caffe.exe)修改呢?在網上搜了一下,似乎是說只有在linux下才能輸出LOG日誌,不知道是這樣子嗎


這個跟linux差不多,caffe中其實已經自帶了這樣的小工具 caffe-master/tools/extra/parse_log.sh caffe-master/tools/extra/extract_seconds.pycaffe-master/tools/extra/plot_training_log.py.example ,使用方法如下:

1.windows記錄訓練日誌

在訓練過程中的命令中加入一行參數 ,實現Log日誌的記錄,這裡我使用的.bat。其實一可以像前面某位大哥一樣,直接copy輸出的類容。

caffe train
--solver=deepid/deepid2/deepid_solver.prototxt &>log/XXXXX.log 2&>1
pause

這樣訓練結束之後,會在Log文件夾中生成每次訓練的Log日誌,但是生成的是這樣的文件XXXXX.log. 如果沒有生成,那你可以改成TXT後綴 後面在重名名

2.解析訓練日誌

將最上面說的3個腳本文件拷貝到Log 文件夾下,生成XXXXX.log (這裡記得不要使用python3,因為有些地方不兼容,如果只有python3,那你可以根據提示修改相應的代碼 下同)

python parse_log.py log/XXXXX.log .

後面的參數為log文件名,這樣就會在當前文件夾下生成一個.train文件和一個.test文件

3.生成圖片

執行:

python plot_training_log.py 0 save.png XXXX.log

這裡是需要png圖片。需要修改plot_training_log.py

可以生成訓練過程中的Test accuracy vs. Iters 曲線,其中0代表曲線類型, save.png 代表保存的圖片名稱

caffe中支持很多種曲線繪製,通過指定不同的類型參數即可,具體參數如下

Notes:
1. Supporting multiple logs.
2. Log file name must end with the lower-cased ".log".
Supported chart types:
0: Test accuracy vs. Iters
1: Test accuracy vs. Seconds
2: Train learning rate vs. Iters
3: Train learning rate vs. Seconds
4: Test loss vs. Iters
5: Test loss vs. Seconds
6: Train learning rate vs. Iters
7: Train learning rate vs. Seconds
8: Train loss vs. Iters
9: Train loss vs. Seconds

最後,看一下效果


為什麼保存log的都是用shell腳本,而不是Python代碼


最好的辦法是用windebugview


你好,我在windows下進行第3步生成圖片的時候,執行python plot_training_log.py 0 save.png XXXX.log後在plot_training_log.py腳本中load_data定義中一直出現y軸有問題,list index out of range,請問應該怎麼修改啊


我也不會,請問你解決了沒有,求告訴


windows dos的輸出可以重定向,百度搜下就有例子。不過應該是所有日誌都輸出到文件了,想畫圖還要從裡面挑數據。最好直接用caffe的python或matlab介面,可以直接對網路的各種數據進行操作,畫圖也方便。


推薦閱讀:

caffe 每個樣本對應多個label?
caffe的finetuning是如何更新網路參數的?
caffe如何進行數據集測試??
caffe怎麼test訓練好的model?
CNN全連接層隱層結點數(output_dim)的設定有什麼講究嗎?

TAG:Caffe深度學習框架 |