Метод on_test_end класса Callback
Метод on_test_end принадлежит классу Callback и вызывается в конце тестирования модели.
Он используется для выполнения пользовательской логики после завершения оценки модели на проверочных данных.
Метод принимает один параметр logs - словарь с метриками, полученными в результате тестирования.
По умолчанию метод не выполняет никаких действий, его следует переопределить в подклассе.
Синтаксис
class CustomCallback(tf.keras.callbacks.Callback):
def on_test_end(self, logs=None):
pass
Пример
Давайте создадим собственный колбэк, который выводит сообщение в конце тестирования модели:
import tensorflow as tf
class TestEndCallback(tf.keras.callbacks.Callback):
def on_test_end(self, logs=None):
print("Testing finished")
print("Logs:", logs)
t = tf.constant([[1, 2], [3, 4], [5, 6], [7, 8]], dtype=tf.float32)
labels = tf.constant([0, 1, 0, 1])
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, activation="sigmoid", input_shape=(2,))
])
model.compile(optimizer="sgd", loss="binary_crossentropy", metrics=["accuracy"])
model.evaluate(t, labels, callbacks=[TestEndCallback()], verbose=0)
Результат выполнения кода:
Testing finished
Logs: {'loss': 0.6931471824645996, 'accuracy': 0.5}
Пример
Давайте создадим колбэк, который сохраняет метрики тестирования в список:
import tensorflow as tf
class HistoryCallback(tf.keras.callbacks.Callback):
def __init__(self):
super().__init__()
self.history = []
def on_test_end(self, logs=None):
self.history.append(logs)
history_callback = HistoryCallback()
t = tf.constant([[1, 2], [3, 4], [5, 6], [7, 8]], dtype=tf.float32)
labels = tf.constant([0, 1, 0, 1])
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, activation="sigmoid", input_shape=(2,))
])
model.compile(optimizer="sgd", loss="binary_crossentropy", metrics=["accuracy"])
model.evaluate(t, labels, callbacks=[history_callback], verbose=0)
print(history_callback.history)
Результат выполнения кода:
[{'loss': 0.6931471824645996, 'accuracy': 0.5}]
Смотрите также
-
класс
Callback,
который является базовым классом для всех колбэков -
метод
on_test_begin,
который вызывается в начале тестирования модели -
метод
on_train_end,
который вызывается в конце обучения модели -
метод
on_predict_end,
который вызывается в конце предсказания модели