如何保存Caffe训练日志

来源:互联网 发布:网络科学导论下载 编辑:程序博客网 时间:2024/04/27 23:53

脚本编写

脚本一

创建训练的脚本文件train.bat,写入如下训练代码

A:\Caffe\caffe\scripts\build\tools\Debug\caffe-d.exe train --solver=A:\Caffe\caffe\examples\mnist\lenet_solver.prototxt 2>&1 | tee log\train.logPause  

由于windows自带的控制台运行不方便,我们在gitbash运行该脚本。

脚本二

灵感来自faster r-cnn自带的生成日志的脚本。

LOG="logs/MNIST_${NET}_${EXTRA_ARGS_SLUG}.txt.`date +'%Y-%m-%d_%H-%M-%S'`"exec &> >(tee -a "$LOG")echo Logging output to "$LOG"time scripts/build/tools/Debug/caffe-d.exe train --solver=A:/Caffe/caffe/examples/mnist/lenet_solver.prototxt

第二个脚本的好处是,时间已经记录在文件名了,不会被新生成的日志覆盖。

脚本发分析

2>&1命令

2>&1就是用来将标准错误2重定向到标准输出1中的。此处&就是为了让bash1解释成标准输出而不是文件1。

tee命令

读取标准输入的数据,并将其内容输出成文件。

报错分析

报错
博主直接在powershell下运行该代码,报错如下

A:\Caffe\caffe>A:\Caffe\caffe\scripts\build\tools\Debug\caffe-d.exe train --solver=A:\Caffe\caffe\examples\mnist\lenet_solver.prototxt   2>&1  | tee log\train.log'tee' 不是内部或外部命令,也不是可运行的程序或批处理文件。

如果删除tee命令,重定向>失败,内容无法保存到log文件里
解决方案:
使用git自带的模拟bashgitbash工具。

参考资料
* 知乎提问 “如何绘制caffe训练过程中的loss和accurary的曲线??” 知乎用户的回答
* http://blog.csdn.net/astonqa/article/details/8252791
* http://liubin.blog.51cto.com/282313/131298

原创粉丝点击