如何计算 Keras 中每个数据点的损失?

How to compute loss for every data point in Keras?

我使用 Tensorflow 2.0 和 Keras 来训练模型。我执行以下操作来加载预训练模型,然后将其用于推理:

checkpoint_dir = "./"
x_test = np.random.normal(n_points, n_features)
model = tf.keras.models.load_model(checkpoint_dir)
predictions = model.predict(x_test)

我想知道我是否也可以获得每个数据点的损失?是否可以做类似

的事情
loss = model.compute_loss(x_test, y_test)

您可以使用

评估模型
model.evaluate(x_test, y_test)

在测试模式下评估Returns 模型的损失值和指标值。 (https://keras.io/models/model/)

从后端拿一个损失函数来用就行了。

示例 - 如果开启急切模式:

losses = tf.keras.backend.categorical_crossentropy(true_data, pred_data)

示例 - 如果关闭急切模式:

def loss_calc(x):
    return backend.categorical_crossentropy(x[0], x[1])

trueIn = Input(shape_of_the_targets)
predIn = Input(shape_of_the_targets)
out = Lambda(loss_calc)([trueIn, predIn])

loss_model = Model([trueIn, predIn], out)

losses = loss_model.predict([true_data, pred_data])