如何计算 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])
我使用 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])