Keras:试身时使用配重

时间:2019-03-03 20:40:37

标签: python tensorflow keras

我有一个关于在喀拉拉邦使用重量的问题。我有一些数据作为事件,每个事件都有一个相关的权重。因此,当我训练我的keras模型时,我是使用sample_weight参数传递该信息。

然后我注意到,如果我想使用model.predict方法,则没有传递权重的参数...现在我不确定我拥有的权重类型应该在sample_weight的fit方法中使用。

我的问题是,拟合方法应接收哪种类型的权重?另外,可以理解,预测方法不需要数据的权重吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为在model.fit上下文中,“ sample_weight”的含义可能会有些混乱。当您调用model.fit时,您正在使损失函数最小化。该损失函数可测量模型预测与真实值之间的误差。数据集中的一些样本可能对您更重要,因此您将对这些样本的损失函数进行更重的权衡。因此,“ sample_weights”仅用于在训练过程中对数据集中的某些样本进行加权,以“更好地”拟合某些样本相对于其他样本。它们是model.fit的可选参数(默认情况下,每个样本的权重均相等-如果您没有充分的理由应该这样做)。并且(希望我的解释很清楚)在model.predict的上下文中没有任何意义。

答案 1 :(得分:0)

当您对样本中的所有数据没有相同的置信度时,将使用参数sample_weight。这样,您可以告诉Keras,您对其中一些的信心要强于其他一些。那仅用于训练,因为它用于调整(加权)优化器使用的损失函数。因此,在fit中,您不应该通过它,因为您对输出一无所知,也不能说出任何关于您的信心。

从Keras的文档(https://keras.io/models/model/#train_on_batch

sample_weight: Optional Numpy array of weights for the training samples, used for weighting the loss function (during training only).