首页 > 解决方案 > Yolov4:细分值不同时mAP值不同

问题描述

我对训练自定义数据集生成的 mAP 值有些困惑Yolov4。如果我理解正确,细分值仅用于RAM在图像并行处理期间不超载。所以从技术上讲,如果你有batch=32,那么你是否有 并不重要subdivision=2 or 8,因为权重将以相同的方式更新。

当我使用 训练我的自定义数据集Yolov4时,我保留batch=32但更改了细分值。对于 16 和 4 的细分,mAP 约为 83.6%,当我将细分值更改为 8 时,mAP 为 86.7%。

细分=16

细分=8

细分=4

我很困惑为什么当细分 = 8 时我会得到更好的 mAP。我在https://github.com/pjreddie/darknet/issues/224中读到,权重在经过发送用于并行处理的图像集的迭代后更新,即 batch=32/subdivision=8 = 4,因此权重会在看到一组 4 张图像 8 次后更新(如果我理解正确,我对神经网络比较陌生,并试图理解这一切)。如果细分从 16 变为 8,这是有道理的,因为有更多图像可供网络泛化,但它不能解释为什么 4 的细分与 16 的细分具有几乎相同的 mAP。我希望subdivision=4 的 mAP 将大于 subdivision=8。

另外,y 轴顶部的 mAP 值是训练期间所有计算出的 mAP 的平均值吗?

提前谢谢你!

标签: conv-neural-networkyolodarknet

解决方案


推荐阅读