我有一个使用功能API定义的模型。
要训练模型,我使用fit_generator()
,并通过Sequence
作为生成器。
我的Sequence
扩展了tf.keras.utils.Sequence()
返回了3个数组:
return X, y, sample_weights
在一个元组中,其中y, sample_weights
是一维数组。
现在这足以开始拟合模型,但是由于某些原因,权重未正确应用。即使将权重乘以x1000,损失也不会改变。
是fit_generator()
不使用样本权重吗?在任何情况下,为什么总是预测少数派?这太奇怪了。
似乎出于某种原因,我的模型总是预测少数派。在100个数据点中,只有4个为肯定类,而我的recall = 1
来自tf.metrics.recall
。为了测试它,我尝试将类别1的样本权重设置为0,并且它仍然具有召回率= 1,这是无稽之谈。
编辑: 当我尝试在fit_generator中指定class_weight时,我得到的消息是它将被忽略,因为我也传递了权重。但是权重对损失函数(二进制交叉熵)的影响为0