【问题标题】:How do I address imbalanced data before training?如何在训练前解决不平衡的数据?
【发布时间】:2021-02-02 18:42:15
【问题描述】:

假设我们要训练 YOLOV3。我们为 3 个不同的类别收集了大约 5000 张图像。班级分布为:

Class#1 = 2250  images
Class #2= 2500  images
Class #3= 250   images

如您所见,它是不平衡的,我无法根据该数据进行训练。我需要做什么?我需要考虑数据处理阶段吗?

请不要只说数据增强,因为数据增强有不同的含义。我相信它在训练过程中会进行旋转和变换,使训练后的模型更加健壮,但它并不能解决数据集不平衡的问题。

如何解决不平衡的数据?

【问题讨论】:

  • 有几种方法。您可以尝试复制样本或删除其他样本,或者如果框架允许:平衡每个小批量。根据我的经验,yolo 在不平衡集上工作得很好,这可能是因为不同的对象类通常属于不同的锚点。也许不平衡​​集在对象检测(与 zo 分类相比)中通常不是那么大的问题,但这只是一个猜测。
  • 你看smote了吗?

标签: python opencv dataset detection yolo


【解决方案1】:

您可以尝试对您的配置文件执行以下操作:

选择 1:

[yolo]
focal_loss=1

选择2(更有效):

[yolo]
counters_per_class=100, 2000, 300, ... # number of objects per class in your Training dataset

要计算counters_per_class,参考这个link

更多详情here

选择 3: 同时选择选择 1 和选择 2

【讨论】:

    猜你喜欢
    • 2013-06-11
    • 2015-03-16
    • 1970-01-01
    • 2017-05-07
    • 2018-04-15
    • 1970-01-01
    • 2020-04-15
    • 2016-05-05
    • 2017-11-09
    相关资源
    最近更新 更多