本文主要是介绍Training LeNet on MNIST with Caffe|保存log绘制accuracy loss曲线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、准备数据:下载mnist数据
cd $CAFFE_ROOT
./data/mnist/get_mnist.sh
2、将格式转为lmdb格式
./examples/mnist/create_mnist.sh
lmdb数据在examples/mnist路径下
3、分类模型:LeNet
模型结构:$CAFFE_ROOT/examples/mnist/lenet_train_test.prototxt
.
4、定义solver文件:$CAFFE_ROOT/examples/mnist/lenet_solver.prototxt
:
solver_mode: CPU
里面有很多重要参数(后续再好好看看写写)
5、开始训练
cd $CAFFE_ROOT
./examples/mnist/train_lenet.sh
原本的没有保存log,可以新建一个log文件夹,log可以用于后续训练过程的画accuracy,loss变化曲线等图。
在train_lenet.sh中添加:
LOG=./log/train-`date +%Y-%m-%d-%H-%M-%S`.log
sh之后变为:
#!/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 $@
tee :将输出内容 重定向到日志文件中,同时在终端打印输出
2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行
这里可以参考:http://blog.csdn.net/liuweizj12/article/details/64920428
1、先解析生成的.log文件,分成train和 test会在当前文件夹下生成log-data.train和 log-data.test两个文件
tools/extra
./parse_log.sh log-???.log
2、调用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
这篇关于Training LeNet on MNIST with Caffe|保存log绘制accuracy loss曲线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!