caffe中loss和accuracy等可视化

参考博文:http://blog.csdn.net/u013078356/article/details/51154847

1.首先在caffe根目录下新建log文件夹,用来存放log文件

2.caffe/examples/mnist下的脚本文件原来的内容为

#!/usr/bin/env sh
set -e
./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt 

主要功能就是train一个Lenet_solver.prototxt定义的网络。将其修改如下:

#!/usr/bin/env sh
set -e
LOG=log/train-`date +%Y-%m-%d-%H-%M-%S`.log

./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt 2>&1 | tee $LOG

主要是在log文件夹下新建一个时间命名的log文件并将打印的信息保存到文件中,Linux的输出中 1 表示标准输出,2 表示错误输出,2>&1 表示将错误的输入重定向到标准的输出中去。另外,tee file中tee指令的作用是输出到标准输出的同时,保存到文件file中。如果文件不存在,则创建;如果已经存在,则覆盖之。

3.训练并保存日志。
~/caffe$ ./examples/mnist/train_lenet.sh

 在caffe的根目录下执行这个脚本,即可在log文件夹中生成train-2017-09-24-14-44-57.log

4.caffe中其实已经自带了日志分析和绘图的小工具,在 caffe-master/tools/extra/目录下。分别是parse_log.sh 和extract_seconds.py和 plot_training_log.py.example。将他们拷贝到log文件夹中。

5.解析。
~/caffe/log$ ./parse_log.sh train-2017-09-24-14-44-57.log

在log目录下执行这个文件,即可将这个log日志分为.test和.train两个文件。点开可以看到,数据已经做了解析。train中是迭代次数、时间、loss等。Test中是迭代次数、时间和精度等。

6.绘图。
./plot_training_log.py.example 0 save.png train-2017-09-24-14-44-57.log

caffe中loss和accuracy等可视化_第1张图片

绘图支持以下8种格式(上图0对应的“精度和迭代次数”):

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  

问题:
新系统可能会出现报错:

    from backports.functools_lru_cache import lru_cache ImportError: No module named functools_lru_cache

采用的解决办法:

pip uninstall backports.functools_lru_cache
pip uninstall matplotlib
pip install backports.functools_lru_cache
pip install matplotlib

之后再运行作图脚本,就可以了

你可能感兴趣的:(神经网络)