我有一个由大约5000种图像组成的数据集,但每个类别的图像数量从20到2000不等,这是非常不平衡的。此外,图像的数量远远不足以从头开始训练模型。我决定对预训练模型进行微调,比如Inception模型。
但我不确定如何处理不平衡的数据。有几种可能的方法:
有关于此的任何想法?任何反馈将不胜感激。
答案 0 :(得分:1)
从预先训练过的ImageNet图层开始,添加自己的最终图层(根据需要进行适当的卷积,删除和展平图层)。冻结除最后几个ImageNet图层之外的所有图层,然后训练您的数据集。
对于不平衡数据(通常是小型数据集),使用数据扩充来创建更多训练图像。 Keras内置了此功能:Building powerful image classification models using very little data
答案 1 :(得分:1)
使用tf.losses.softmax_cross_entropy
并为每个班级设置与其训练频率成反比的权重,以达到"平衡"优化。