caffe模型、迭代損失可視化


安裝配置完caffe后,一般都是拿官方的例子跑跑,然后終端輸出一串一串的字母,感覺很神奇,因為初學caffe,所以很好奇這些信息能不能夠圖形化顯示出來,這里記錄下在ubuntu下caffe的相關圖形顯示。

首先便是模型的可視化,在caffe安裝好后,在caffe/python/目錄下有一個draw_net.py的python腳本文件,這是官方提供的一個模型可視化的腳本文件,運行這個文件,可以將模型的文件可是化,即使用圖表的形式表示模型的網絡。

cd caffe#進入caffe目錄 python ./python/draw_net.py  (這里輸入你的網絡模型文件路徑)  (圖片存放的路徑)

比如在我的電腦上運行如下命令:

python ./python/draw_net.py ./examples/myfile/train_val.prototxt ./examples/myfile/a.png

運行上面這行代碼后就會在examples/myfile/目錄下生成a.png的一張圖片,我的如下所示。

這個就是你在模型文件train_val.prototxt中定義的網絡模型。還可以在后面加上 --rankdir=BT命令,則圖片顯示的是從下到上的方式,可選的有(BT / TB / LR)默認的是LR形式。

定義好了模型就要訓練啊,但是訓練的時候信息都是顯示在終端,刷刷的就刷屏了,然后又沒有圖像,很不直觀。在caffe中官方還是很人性化的,在caffe/tools/extra/目錄下官方提供了兩個文件:

plot_training_log.py.example和parse_log.py這兩個腳本文件,使用第一文件我們可以將相關日志文件圖形化顯示出來。

在終端輸入:

python ./tools/extra/plot_training_log.py.example

終端會輸出如下提示:

This script mainly serves as the basis of your customizations. Customization is a must. You can copy, paste, edit them in whatever way you want. Be warned that the fields in the training log may change in the future. You had better check the data files and change the mapping from field name to field index in create_field_index before designing your own plots. Usage: ./plot_training_log.py chart_type[0-7] /where/to/save.png /path/to/first.log ... 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

從中可以看出這個文件執行的格式。數字0-7表示你想要顯示的類型。以及文件要求的格式文件為.log的日志文件,所以我們首先需要的是日志文件.

在調用caffe可執行文件train的時候在后面加入一小段代碼便可生成我們需要的日志文件。

一般我們訓練時的命令如下:

sudo ./build/tools/caffe train -solver examples/myfile/solver.prototxt

運行上述命令后,終端會刷刷的出現很多信息,根本來不及看,我們在命令后面加入一小段代碼后,便可生成我們需要的日志文件,然后就可以使用./tools/extra/plot_training_log.py.example這個工具來顯示相關數據了。命令如下:

sudo ./build/tools/caffe train -solver examples/myfile/solver.prototxt 2>&1 | tee examples/myfile/a.log

>是重定向的意思&是在后台運行,tee是linux的一個命令,不知道的話可以百度,后面便是日志文件.log的存放路徑了。運行后會在examples/myfile/目錄下生成一個a.log的日志文件。這樣我們便可以使用工具來顯示我們想要的信息了。

在終端輸入:

python ./tools/extra/plot_training_log.py.example 6 ./examples/myfile/6.png ./examples/myfile/a.log

屏幕便會顯示如下圖片。

這是訓練損失與迭代次數的關系圖。其中的6則是通過工具提示內容輸入的,后面依次是圖片存放的路徑 、日志文件的路徑。如果想看測試的精度與迭代次數的關系將數字6改為0即可。

parse_log.py文件的作用就是:將你的日志文件分解成兩個txt的文件。

終端輸入如下命令

python ./tools/extra/parse_log.py ./examples/myfile/a.log  ./examples/myfile/

便會在myfile/目錄下產生a.log.train 和a.log.test的文件,根據這兩個文件你可以使用matplotlib庫畫出你想要的圖像。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM