第一种方法:重定向训练日志文件
我们在训练的时候会用到caffe/buile/tools/caffe 这个里面的train这个选项。在输入之后,正常会显示训练日志的详细信息。想要画出这里面显示的loss和accuracy图,就可以把这些输出的日志内容重定向到一个文件内,然后利用shell命令检索出其中的loss和accuracy值,再将其画出就行了。
这里需要注意的是,重定向的方式是在命令的后面加入: >& "重定向文件名" &
重定向之后,程序一运行就会被放到后台中工作,想要查看文件中的内容还需要输入: tail -f "重定向文件名"
这样就可以在显示页面重新看到训练日志了。
第二种方法:利用tools/extra下的工具直接画出。
caffe自带了可以直接画出loss和accuracy曲线的图。也只需要我们在训练的时候多加上一句相应的记录训练日志文件的话即可。
在我们训练之初,使用caffe.build/tools/caffe 之前加入:
GLOG_logtostderr=0 GLOG_log_dir='自己想要保存的路径'
剩下的就是训练的时候输入的那些东西了,正常即可,就是多加这一句话。
然后正常保存下来的是4个文件,这里我们用到的是
caffe
.usrname-Ubuntu.usrname
.log.INFO
.当前日期-当前时间.xxxx
这样的一个文件,其中红色的是固定的,蓝色的根据你自己系统命名和当前状态临时命名的。
再找到这个文件之后,进入/tools/extra文件夹,其中有一个parse_log.sh文件。
在输入这个命令之后,会在extra文件夹下得到一个.test和.train的文件,点进去看,已经将训练日志文件中的iters seconds trainingloss learningrate给检索出来了,然后利用这个文件画图。
或者直接利用extra里面的一个plot_training_log.py.example文件画出图。
这个文件的使用格式是:
./caffe/tools/extra/plot_training_log.py.example "0—7" "输出照片的名字" caffe.usrname-Ubuntu.usrname.log.INFO.当前日期-当前时间.xxxx.log
第一个参数是0—7的数字,每个数字代表绘制一种曲线图。
第二个参数就是要输出图片的名字。
第三个参数就是我们之前利用GLOG_logtostderr=0得到的文件,只是需要在这个文件的后面再加上个.log,如果不加上这个.log的话会出现报错,画出图片的标题将是.log之前的文字,所以大家可以根据自己想要的title更改一下文件的名字,并在程序中相应得修改即可。
这里,随便贴一张画出来的图,使用了参数6:
其中0—7数字所代表的画图的种类为:
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