【问题标题】:YOLOv4 loss too highYOLOv4 损失太高
【发布时间】:2020-08-31 15:52:19
【问题描述】:

我正在将 YOLOv4-tiny 用于我从 Open Images Dataset 收集的 26 个类的自定义数据集。数据集几乎是平衡的(每类 850 张图像,但边界框的数量不同)。当我使用 YOLOv4-tiny 仅训练 3 个类时,损失接近 0.5,相当准确。但是对于 26 个类别,一旦损失低于 2,模型就会开始过度拟合。预测也很不准确。

我尝试更改学习率、动量和大小等参数,但无论我做什么,模型都会变得比以前更糟。使用常规的 YOLOv4 模型而不是 YOLO-tiny 也无济于事。我怎样才能进一步降低损失?

【问题讨论】:

    标签: tensorflow yolo


    【解决方案1】:

    你试过training with mAP吗?您可以将训练集的一个子集作为验证集。这可以通过与您制作训练和测试集相同的方式来完成。然后,您可以运行darknet.exe detector train data/obj.data yolo-obj.cfg yolov4.conv.137 -map。这将跟踪验证集中的损失。当验证中的错误说上升时,这就是停止训练并防止过度拟合的时候了(这被称为:提前停止)。

    【讨论】:

      【解决方案2】:

      您需要运行 (classes*2000) 次迭代的训练。但是,为了获得最佳分数,您需要训练您的模型至少 6000 次迭代(也称为max_batches)。另外请记住,如果您使用的是黑白图像,请将channels=3 更改为channels=1。一旦平均损失变成这样,您就可以停止训练:0.XXXX

      这是我运行 6.2 小时的 6000 次迭代的 mAP 图: avg loss with 6000 max_batches.

      此外,您可以关注 Stéphane Charette 的此常见问题解答文档here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-10
        • 2021-07-17
        • 2021-10-23
        • 2020-05-26
        • 1970-01-01
        • 1970-01-01
        • 2021-06-28
        相关资源
        最近更新 更多