keras代码以任意数量的class_weigths运行

时间:2018-08-08 10:05:52

标签: r keras

我在带有R的Keras中使用class_weights。代码运行良好,但是我发现了一件奇怪的事情。我可以给出任意数量的class_weights而不出错。

我的模型分类了9个类,因此最初我是用这种方式拟合模型的

 model$fit( x= input_im, y= input_lab, batch_size = batch_size, epochs = 1L , class_weight = c('0' = 1,'1' = 1,'2' = 1,'3' = 1,'4' = 1,'5' = 1,'6' = 1,'7' = 1, '8' = 1))

但是我发现,如果删除或添加一个类权重,我的代码也可以正常运行。

model$fit( x= input_im, y= input_lab, batch_size = batch_size, epochs = 1L , class_weight = c('0' = 1,'1' = 1,'2' = 1,'3' = 1,'4' = 1,'5' = 1,'6' = 1,'7' = 1) 

 model$fit( x= input_im, y= input_lab, batch_size = batch_size, epochs = 1L , class_weight = c('0' = 1,'1' = 1,'2' = 1,'3' = 1,'4' = 1,'5' = 1,'6' = 1,'7' = 1, '8' = 1, '9' = 1))

都可以。

1 个答案:

答案 0 :(得分:0)

仅存在class_weights来告诉模型哪个类是“最重要的” 如果排除其中之一,则仅具有默认权重。

由于您的所有权重均为1,因此您可以删除class_weight参数,因为它没有任何作用。

来自文档:

  

可选的命名列表映射索引(整数)到权重(浮动)值,用于加权损失函数(仅在训练期间)。这可能有助于告诉模型“更多关注”来自代表性不足的类的样本。