我一直在尝试使用 CNN 对 VOC2007 数据集进行分类。数据集存在不平衡,多个图像具有“人”类,而所有其他类的图像很少,我的模型一直受到过度拟合的影响。为了过度采样,我一直在我的数据加载器中使用 WeightedRandomSampler。
weights=[0.00000001,1/112,1/116,1/180,1/81,1/139,1/97,1/376,1/163,1/224,1/69,1/97,1/203,1/139,1/120,0.00001,1/133,1/48,1/111,1/127,1/128]
sample_weights=[0]*len(ds_train)
for idx, (data, label) in enumerate(ds_train):
sample_weights[idx]=np.dot(weights, label)
sampler=WeightedRandomSampler(sample_weights,num_samples=len(sample_weights), replacement=True)
这并没有给我一个平衡的数据集。我确定我的代码有问题,这不是必须为 coco 数据集创建权重的方式。但我不确定应该怎么做。应该如何为以 logits 作为标签的数据集创建权重。如何对具有 20 个类的 coco 图像数据集执行过采样?任何帮助将非常感激。