deep-learning - YOLOv4中的损失和mAP图表
问题描述
我对“你只看一次”对象检测算法(确切地说是 YOLOv4)还是新手。我对 mAP 和损失图表有一些疑问。
我尝试按照AlexeyAB Darknet的说明,使用 Google Colabs 训练我的自定义对象检测器。训练结束后,损失和mAP图表如下图所示。
损失和mAP图表:
我的问题是:
- 除了这个还有图表吗?
- 这是训练或验证的损失吗?
- 为什么在迭代 1200 附近突然下降?
- 训练的输出只有那个图表和权重文件吗?
解决方案
- 是的。但是如果你想导出日志并用它制作图表,你可以试试这个命令:
./darknet detector train data/obj.data cfg/yolov4.cfg yolov4.weights -map | tee results.log
蓝色曲线是训练数据集上的训练损失或误差(特别是 YOLOv4 的 Complete Intersection-Over-Union 或 CIoU 损失)。有关 CIoU 损失的更多详细信息,请查看本文。红线是 50% Intersection-over-Union 阈值 (mAP@0.5)的平均精度,用于检查您的模型是否在从未见过的数据集或验证集上很好地泛化。如果想更深入的了解mAP,可以参考这篇通俗易懂的博文。
您是否使用自定义数据集?迭代 1200 附近的下降可能是由数据集中的一些问题引起的。要检查,请尝试以下操作:
-show_imgs
(a) 检查您的数据集 - 使用标志ie运行训练./darknet detector train ... -show_imgs
并查看aug_...jpg
图像,您是否看到正确的真值边界框?(b) 检查生成的文件
bad.list
以及bad_label.list
它们是否存在。这些文件包含可能有问题的标签文件。是的。但是,如果您启用日志文件(检查我的答案 - 否。1),那么,不。
推荐阅读
- react-native - React-Native 错误 - VirtualizedLists 永远不应嵌套在具有相同方向的普通 ScrollViews 中
- python-3.x - 列出 azure 文件存储中的文件并获取最新文件
- flutter - Dart Hive 使用 Set 导致未知类型错误
- google-tag-manager - 如何使用谷歌标签管理器将自定义 html 实现到正文中
- java - 为什么它说无法解析符号身份验证?
- php - 在 PHP 中减去两个时钟时间
- c++ - 预期的不合格 ID 错误?另外我如何运行程序?
- postgresql - golang-migrate:将 loca CSVl 文件复制到远程 Postgress
- flutter - 如何在 Flutter/Dart 中合并三个列表?
- python - 'PipelineModel' 对象没有属性 'predict'