caffe绘制训练过程中的accuracy、loss曲线
来源:互联网 发布:天津毕业生就业数据 编辑:程序博客网 时间:2024/05/22 10:36
训练模型并保存日志文件
首先建立一个训练数据的脚本文件train.sh,其内容如下,其中,2>&1 | tee examples/mnist/mnist_train_log.log 是log日志文件的保存目录。
#!/usr/bin/env sh set -e TOOLS=./build/tools $TOOLS/caffe train --solver=examples/mnist/lenet_solver.prototxt 2>&1 | tee examples/mnist/mnist_train_log.log
训练完成后,会在examples/mnist文件夹下生成mnist_train_log.log日志
绘制曲线
首先将文件夹caffe/tools/extra下的parse_log.sh 、extract_seconds.py、plot_training_log.py.example复制到上一步log日志文件的保存目录下。
然后,将plot_training_log.py.example改为plot_training_log.py,并执行以下命令就可以绘制曲线:
python plot_training_log.py 6 train_loss.png mnist_train_log.log
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
遇到的问题:
问题1:
刚开始的时候发现类型参数为0-3的时候,可以正常绘制曲线,但是类型参数为4-7的时候,出现下面的错误:
解决方法:
打开生成的mnist_train_log.log.train文件后,发现确实是提取TrainingLoss数据有问题,如图1;后来按博客点击打开链接中的方法将parse_log.sh进行修改。对于parse-log.sh生成的文件mnist_train_log.log.train,caffe自带的parse-log.sh提取到的是第9列(第9个域),也就是带S/10的那些数,我将它改成第13个域,也就是loss及=符号后的数,真正的loss在第13列,如图2、3。
图1
图2
图3
问题2:
解决完上述问题后,类型参数为4-7的时候,还是不能绘制曲线,出现如下问题:IndexError: list index out of range
解决方法:
群里大神帮忙找到问题了,原来是mnist_train_log.log.train中最后一行存在数据缺失问题,无奈,日志文件真的没有数据了,只能伪造一组数据了,如下图,红色圈中的就是我自己加的。但是,感觉这样做不好,关于这个问题,大家有遇到过没,怎么解决的,可以交流一下。
修改前的:
修改后的:
0 0
- Caffe 绘制训练过程loss,accuracy曲线
- caffe绘制训练过程中的accuracy、loss曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- caffe绘制训练过程的loss和accuracy曲线
- Python:如何使用jupyter绘制caffe训练过程中的loss和accuracy曲线?n
- centos7之lamp环境搭建
- 畅通工程-并查集-HDU1232
- Semantic UI 的基本使用(二):具体案例
- 采用opencv对图像进行分割
- DDD -- 领域驱动设计 -- 6步成诗法
- caffe绘制训练过程中的accuracy、loss曲线
- 基于匹配的目标识别
- [leetcode 237]Delete Node in a Linked List
- 枚举排序
- centos之lnmp
- 欢迎使用CSDN-markdown编辑器
- HBase环境搭建60010端口无法访问问题解决方案
- Android studio之Error:(23, 17) Failed to resolve: junit:junit:4.12
- Android之序列化浅析