1. 程式人生 > >深度學習-caffe儲存訓練輸出到log 並繪製accuracy loss曲線

深度學習-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