computer-vision - 暗网:损失减少,但训练 1 类时 iou 保持非常低
问题描述
我正在用 1 个类训练 Darknet Yolo(有 9000 个训练示例!),但我有这个输出样本:
v3 (iou loss, Normalizer: (iou: 0.07, obj: 1.00, cls: 1.00) Region 150 Avg (IOU: 0.000000), count: 1, class_loss = 0.003734, iou_loss = 0.000000, total_loss = 0.003734
iou 保持在 0.07不变,并且类损失非常低。
(next mAP calculation at 1000 iterations)
250: 0.004589, 0.011130 avg loss, 0.000004 rate, 7.071465 seconds, 16000 images, 2.931760 hours left
导致这个恒定的小 iou 的问题是什么?
细节
yolov4-custom.cfg文件中最相关的部分:
batch=64
subdivisions=16
width=512
height=512
channels=1
momentum=0.949
decay=0.0005
max_batches = 2000
steps=1600,1800
...
filters=18
activation=linear
[yolo]
mask = 6,7,8
anchors = 12, 16, 19, 36, 40, 28, 36, 75, 76, 55, 72, 146, 142, 110, 192, 243, 459, 401
classes=1
obj.data文件:
classes = 1
train = /content/darknet/build/darknet/x64/data/train.txt
names = /content/darknet/build/darknet/x64/data/obj.names
backup = /content/darknet/build/darknet/x64/backup/
obj.name文件:
Object
解决方案
首先,您需要更改 cfg 文件。如果您有 <= 3 个类,则需要设置 max_batches = 6000,步骤:4800、5400。然后您需要设置所有 3 个 yolo 层和 prev。层的过滤器。损失应该变低,即训练和你的模型,因为它被证明训练得很好。
推荐阅读
- vba - VBA Excel中的索引(匹配())与单元格中的公式
- c# - Unity - 如何从 c# 捕获 EventSystem UI 输入事件?
- c - 在 Linux 中使用 1GB 透明大页面
- sql - SQL Server 左外忽略记录
- python - CPLEX 二次目标 CPLEX 错误 1017:不适用于混合整数问题
- angular - 在 FormArray 反应式表单中设置不小于 0 的值
- javascript - Botkit 听到处理程序函数未在松弛通道上回复
- r - 当 ggplot/ggplotly 包含注释或形状时,散点单击到 weblink 被禁用
- ruby-on-rails - 版本表大小失控
- java - 如何访问通过控制器类中的链接传递的变量?