损失函数由2个项组成,并且还使用样本权重,行为是什么?

时间:2019-06-16 18:39:17

标签: tensorflow

我的损失函数由2个项组成:crossentropy损失和mse损失。我希望mse1e-5的损失进行加权。但是,我只希望某些样本损失mse。如何指定呢?

从文档中不清楚如何执行此操作。我目前的方法是使用model.train_on_batch(x,y,w)传递每个损失项的样本权重,其中w是包含10值的两个数组的列表。然后,我使用以下代码编译模型:

model.compile(optimizer = tf.keras.optimizers.RMSprop(lr=1e-5), loss = ['categorical_crossentropy', 'mse'], loss_weights= [1, 1e-5])

我的理解是,损失权重用于以下目的:

  1. total loss = 1 * crossentropy loss + 1e-5 * mse loss
  2. 执行反向传播时,根据w的值,样本是否损失或不损失。因此,一些样本可能仅损失cross entropy,而某些样本将损失mse,或者某些样本将同时损失。

我想知道这是否是指定样本相关权重的正确方法。

0 个答案:

没有答案