Метод on_test_begin класса Callback
Метод on_test_begin класса Callback вызывается в начале процесса тестирования модели.
Он позволяет выполнить произвольные действия перед началом оценки модели на тестовых данных.
Метод принимает один параметр - logs, который представляет собой словарь с информацией о текущем состоянии тестирования.
По умолчанию метод не выполняет никаких действий, но его можно переопределить в собственном классе колбэка.
Синтаксис
class MyCallback(tf.keras.callbacks.Callback):
def on_test_begin(self, logs=None):
# логика метода
Пример
Давайте создадим простой колбэк, который выводит сообщение в начале тестирования модели:
import tensorflow as tf
tf.random.set_seed(0)
class TestBeginCallback(tf.keras.callbacks.Callback):
def on_test_begin(self, logs=None):
print("Testing started")
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,))
])
model.compile(optimizer='sgd', loss='mse')
x = tf.constant([[1.0], [2.0], [3.0], [4.0]])
y = tf.constant([[2.0], [4.0], [6.0], [8.0]])
callback = TestBeginCallback()
model.evaluate(x, y, callbacks=[callback], verbose=0)
Результат выполнения кода:
"Testing started"
Пример
Давайте создадим колбэк, который сохраняет время начала тестирования в атрибут:
import tensorflow as tf
import time
tf.random.set_seed(0)
class TimeTestCallback(tf.keras.callbacks.Callback):
def on_test_begin(self, logs=None):
self.test_start_time = time.time()
print("Test start time saved")
def on_test_end(self, logs=None):
elapsed = time.time() - self.test_start_time
print(f"Testing took {elapsed:.4f} seconds")
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,))
])
model.compile(optimizer='sgd', loss='mse')
x = tf.constant([[1.0], [2.0], [3.0], [4.0]])
y = tf.constant([[2.0], [4.0], [6.0], [8.0]])
callback = TimeTestCallback()
model.evaluate(x, y, callbacks=[callback], verbose=0)
Результат выполнения кода:
"Test start time saved"
"Testing took 0.0123 seconds"
Смотрите также
-
класс
Callback,
который представляет базовый класс для создания колбэков -
метод
on_test_end,
который вызывается в конце тестирования модели -
метод
on_train_begin,
который вызывается в начале обучения модели -
метод
on_predict_begin,
который вызывается в начале предсказания модели