caffe可视化合辑

使用命令行运行caffe获得的信息过于抽象,如训练过程中显示的Loss函数、测试准确率等数据均以文本形式展示;caffe用于描述神经网络结构的prototxt文件也不利于直观理解网络结构。针对这几个问题,本文总结了训练结果折线图绘制和神经网络描述prototxt文件的可视化方法步骤,归纳如下。

一、绘制Iter-Loss折线图步骤。

不仅仅是Iter和Loss的关系,神经网络在训练过程中有Loss,在测试过程中有Acc,度量这些数值变化的常用单位有Sec、Iter等,这些变量相关的折线图都可按以下步骤绘制。

step1.记录caffe训练过程中的日志数据,使用以下命令:

$ sudo GLOG_logtostderr=0 GLOG_log_dir='path/to/save/'  ./build/tools/caffe train -solver xxx/xxx/solver.prototxt .......

只需要输入log文件的保存路径即可,不需要输入log文件名称。
即在启动caffe训练的命令前添加保存日志的命令即可,之后要使用哪些caffe的参数和原先调用caffe命令一样,直接加在后面,示例如下图:
记录日志训练命令

step2.修改产生的日志名称,必须以.log结尾。
生成日志文件名称如下,可使用mv命令将其修改成.log文件。
日志文件名称

step3.使用plot_training_log利用日志生成折线图:
caffe自带的plot_training_log可根据.log结尾的caffe日志文件生成对应折线图,该工具位于CAFFE_ROOT/tools/extra目录下,该工具的使用方法如下。

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

二、prototxt文件生成图形化网络结构方法。
使用caffe自带的draw_net.py生成prototxt对应神经网络的图像。

usage: draw_net.py [-h] [--rankdir RANKDIR] [--phase PHASE] input_net_proto_file output_image_file

示例如下:
prototxt文件生成神经网络图像结构的命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章