YOLO模型训练可视化训练过程中的中间参数
来源:互联网 发布:手绘地图软件 编辑:程序博客网 时间:2024/06/01 12:48
转自:http://blog.csdn.net/yudiemiaomiao/article/details/72469135
YOLO v2训练输出中间参数含义参考:http://blog.csdn.net/hysteric314/article/details/54093734
等待训练结束后(有时还没等结束模型就开始发散了),因此需要检测各项指标(如loss)是否达到了我们期望的数值,如果没有,要分析为什么。可视化训练过程的中间参数可以帮助我们分析问题。
可视化中间参数需要用到训练时保存的log文件:
./darknet detector train cfg/tiny-yolo.cfg tiny-yolo_8000.conv.9 2>1 | tee person_train_log.txt
命令:
tee person_train_log.txt
保存log时会生成两个文件,文件1里保存的是网络加载信息和checkout点保存信息,person_train_log.txt中保存的是训练信息。
训练log中各参数的意义
Region Avg IOU:平均的IOU,代表预测的bounding box和ground truth的交集与并集之比,期望该值趋近于1。
Class:是标注物体的概率,期望该值趋近于1.
Obj:期望该值趋近于1.
No Obj:期望该值越来越小但不为零.
Avg Recall:期望该值趋近1
avg:平均损失,期望该值趋近于0
rate:当前学习率
在使用脚本绘制变化曲线之前,需要先使用extract_log.py脚本,格式化log,用生成的新的log文件供可视化工具绘图,格式化log的extract_log.py脚本如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
使用train_loss_visualization.py脚本可以绘制loss变化曲线
train_loss_visualization.py脚本如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
修改train_loss_visualization.py中lines为log行数,并根据需要修改要跳过的行数:
skiprows=[x for x in range(lines) if ((x%10!=9) |(x<1000))]
运行train_loss_visualization.py会在脚本所在路径生成avg_loss.png。
可以通过分析损失变化曲线,修改cfg中的学习率变化策略,比如上图:模型在100000万次迭代后损失下降速度非常慢,几乎没有下降。结合log和cfg文件发现,自定义的学习率变化策略在十万次迭代时会减小十倍,十万次迭代后学习率下降到非常小的程度,导致损失下降速度降低。修改cfg中的学习率变化策略,10万次迭代时不改变学习率,30万次时再降低。
除了可视化loss,还可以可视化Avg IOU,Avg Recall等参数
可视化’Region Avg IOU’, ‘Class’, ‘Obj’, ‘No Obj’, ‘Avg Recall’,’count’这些参数可以使用脚本train_iou_visualization.py,使用方式和train_loss_visualization.py相同,train_iou_visualization.py脚本如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
运行train_iou_visualization.py会在脚本所在路径生成相应的曲线图。
- YOLO模型训练可视化训练过程中的中间参数
- YOLO模型训练可视化训练过程中的中间参数
- caffe训练过程中的可视化
- YOLO模型 训练及预测
- YOLO训练
- tensorflow笔记:模型的保存与训练过程可视化
- tensorflow笔记:模型的保存与训练过程可视化
- tensorflow笔记:模型的保存与训练过程可视化
- Yolo v2 训练 NAN解决过程
- Tensorflow 可视化 Tensorboard2 训练过程
- TensorFlow在MNIST中的应用-训练过程的可视化
- caffe-yolo 训练
- yolo训练数据
- CIFAR-10模型训练与可视化
- 模型训练之参数选择
- caffe:如何保存训练模型过程中的日志?
- Adaboost算法的可视化训练过程
- yolo训练之训练结果评估环节
- Kotlin环境篇
- Hadoop for .NET Developers(十二):实现简单的MapReduce作业
- SVM为什么走下“神坛”?
- 设计模式4-建造者模式
- 解决IDEA打断点后,执行代码不会停在断点问题
- YOLO模型训练可视化训练过程中的中间参数
- 编译代码环境配置
- MyBatis使用入门
- Tesseract-OCR学习系列(四)API
- Mac上Safari浏览器字体变细问题
- go语言学习笔记(7) 类型-复合类型
- 随机数与给定随机数生成器[0,m)产生另一个随机数生成器[0, n)(均匀分布)
- media server died的解决方法
- hbase的架构及设计