如何在Keras中使用fit_generator()加权类?

时间:2018-08-31 15:21:45

标签: python keras

我正在尝试使用keras来拟合CNN模型以对图像进行分类。数据集具有来自某些类的更多图像,因此其不平衡。

我在Keras中读了关于如何权衡损失以解决这一问题的另一件事,例如: https://datascience.stackexchange.com/questions/13490/how-to-set-class-weights-for-imbalanced-classes-in-keras,这很好地解释了。但是,它总是解释 fit ()函数,而不是 fit_generator ()函数。

实际上,在fit_generator()函数中,我们没有' class_weights '参数,但是我们有' weighted_metrics ',我不理解其描述:“ weighted_metrics:在训练和测试期间要通过sample_weight或class_weight评估和加权的指标列表。“

如何从“ class_weights”传递到“ weighted_metrics”?有人能举一个简单的例子吗?

1 个答案:

答案 0 :(得分:7)

根据docs,我们在class_weight中有fit_generator Keras v.2.2.2 ):

  

Class_weight :可选的将类索引(整数)映射到的字典   权重(浮动)值,用于对损失函数(在   仅培训)。告诉模型“多付钱”可能很有用   注意”来自代表性不足的班级的样本。

假设您有两个类[ positive negative ],则可以通过以下方式将class_weight传递给fit_generator

model.fit_generator(gen,class_weight=[0.7,1.3])