深度學習-caffe儲存訓練輸出到log 並繪製accuracy loss曲線
在訓練過程中畫出accuracy 和loss曲線能夠更直觀的觀察網路訓練的狀態,以便更好的優化網路的訓練。本文主要介紹在基於caffe框架訓練網路時,如何利用caffe自帶的一些實用的工具包來繪製曲線
一、設定訓練配置檔案引數,儲存訓練時的引數至log檔案
TOOLS=./build/tools LOG=examples/testCreateLmDB/log/log-`date +%Y-%m-%d-%H-%M-%S`.log $TOOLS/caffe train \ --solver=examples/testCreateLmDB/my_quick_solver.prototxt 2>&1 | tee $LOG $@
其中:tee :將輸出內容 重定向到日誌檔案中,同時在終端列印輸出
2>&1 是將標準出錯重定向到標準輸出,這裡的標準輸出已經重定向到了out.file檔案,即將標準出錯也輸出到out.file檔案中。最後一個&, 是讓該命令在後臺執行
二、開始訓練後,在log目錄裡面生成“log-2017-03-22-10-33-20.log”日誌檔案
三、解析log中的內容 分成train和 test 會在當前資料夾下生成log-data.train 和 log-data.test兩個檔案
tools/extra
./parse_log.sh log-2017-03-22-10-33-20.log
四、呼叫py程式繪製圖形
tools/extra
./plot_training_log.py.example 0 save.png log-data.log
其中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: Test loss vs. Iters 3: Test loss vs. Seconds 4: Train learning rate vs. Iters 5: Train learning rate vs. Seconds 6: Train loss vs. Iters 7: Train loss vs. Seconds
其結果如下:
./plot_training_log.py.example 0 save.png /home/lw/caffe/examples/testCreateLmDB/log/log-2017-03-22-10-33-20.log
./plot_training_log.py.example 2 save.png /home/lw/caffe/examples/testCreateLmDB/log/log-2017-03-22-10-33-20.log