Как рассчитать потери для каждой точки данных в Керасе? - PullRequest
0 голосов
/ 05 февраля 2020

Я использую 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)

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Просто возьмите функцию потерь из бэкэнда и используйте ее.

Пример - если включен режим ожидания:

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])
0 голосов
/ 05 февраля 2020

Вы можете оценить модель, используя

model.evaluate(x_test, y_test)

Оценить Возвращает значения потерь и метрики для модели в тестовом режиме. (https://keras.io/models/model/)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...