Keras on TF,如何在不执行梯度下降的情况下获得每个示例的损耗值?

时间:2019-06-25 08:58:26

标签: python tensorflow keras

我有兴趣使用tf.keras.Model实例来检查每个示例的损耗值,但有以下限制:

  1. 假设我已经打电话给model.compile(),有关损失函数的信息就在那里-我不想像this example from the docs中那样明确定义损失
  2. 不执行梯度下降(我知道可以在tf.callback.Callback内访问损失的选项,但是我不想执行GD)

此外,使用回调获取损失然后重新加载初始权重也不是有效的解决方案,我想完全避免使用GD。

那么有没有办法做到这一点?我希望看起来像

model = tf.keras.Sequential([....])
model.compile(optimizer=..., loss=...)

single_loss_value = model.get_loss(single_x, single_y)
batch_loss_valujes = model.get_loss(x, y)

1 个答案:

答案 0 :(得分:4)

要丢失一些样本,可以使用model.evaluate。在那里,您可以将xy用作单个样本或一批。

model = tf.keras.Sequential([....])
model.compile(optimizer=..., loss=...)

single_loss_value = model.evaluate(single_x, single_y)
batch_loss_values = model.evaluate(x, y)