tf.keras.callbacks.Callback
Базовый класс для создания новых обратных вызовов.
tf.keras.callbacks.Callback()
Используется в блокнотах
| Используется в руководстве | Используется в учебных материалах |
|---|---|
Обратные вызовы можно передавать в методы keras, например fit(), evaluate() и predict(), чтобы подключаться к различным этапам жизненного цикла обучения, оценки и вывода модели.
Чтобы создать пользовательский обратный вызов, создайте подкласс keras.callbacks.Callback и переопределите метод, связанный с интересующим этапом.
Пример:
training_finished = False
class MyCallback(Callback):
def on_train_end(self, logs=None):
global training_finished
training_finished = True
model = Sequential([
layers.Dense(1, input_shape=(1,))])
model.compile(loss='mean_squared_error')
model.fit(np.array([[1.0]]), np.array([[1.0]]),
callbacks=[MyCallback()])
assert training_finished == TrueЕсли вы хотите использовать объекты Callback в пользовательском цикле обучения:
- Объедините все обратные вызовы в один
callbacks.CallbackList, чтобы их можно было вызывать вместе. - Необходимо вручную вызывать все методы
on_*в соответствующих местах цикла. Например:
Пример:
callbacks = keras.callbacks.CallbackList([...])
callbacks.append(...)
callbacks.on_train_begin(...)
for epoch in range(EPOCHS):
callbacks.on_epoch_begin(epoch)
for i, data in dataset.enumerate():
callbacks.on_train_batch_begin(i)
batch_logs = model.train_step(data)
callbacks.on_train_batch_end(i, batch_logs)
epoch_logs = ...
callbacks.on_epoch_end(epoch, epoch_logs)
final_logs=...
callbacks.on_train_end(final_logs)
Словарь logs, принимаемый методами обратного вызова в качестве аргумента, содержит ключи для значений, относящихся к текущему пакету или эпохе (см. документацию конкретного метода).
| Атрибуты | |
|---|---|
params | Словарь. Параметры обучения (например, подробность вывода, размер пакета, число эпох...). |
model | Экземпляр Model. Ссылка на обучаемую модель. |
Методы
on_batch_begin
on_batch_begin(
batch, logs=None
)
Псевдоним для обратной совместимости с on_train_batch_begin.
on_batch_end
on_batch_end(
batch, logs=None
)
Псевдоним для обратной совместимости с on_train_batch_end.
on_epoch_begin
on_epoch_begin(
epoch, logs=None
)
Вызывается в начале эпохи.
Подклассы должны переопределять этот метод для выполнения необходимых действий. Эта функция должна вызываться только в режиме TRAIN.
| Аргументы | |
|---|---|
epoch | Целое число — индекс эпохи. |
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_epoch_end
on_epoch_end(
epoch, logs=None
)
Вызывается в конце эпохи.
Подклассы должны переопределять этот метод для выполнения необходимых действий. Эта функция должна вызываться только в режиме TRAIN.
| Аргументы | |
|---|---|
epoch | Целое число — индекс эпохи. |
logs | Словарь с результатами метрик для этой эпохи обучения и эпохи проверки, если выполнялась проверка. Ключи результатов проверки имеют префикс val_. Для эпохи обучения возвращаются значения метрик объекта Model. Пример: {'loss': 0.2, 'accuracy': 0.7}. |
on_predict_batch_begin
on_predict_batch_begin(
batch, logs=None
)
Вызывается в начале пакета в методах predict.
Подклассы должны переопределять этот метод для выполнения необходимых действий.
Обратите внимание: если аргумент steps_per_execution метода compile в Model имеет значение N, этот метод будет вызываться только через каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число — индекс пакета в текущей эпохе. |
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_predict_batch_end
on_predict_batch_end(
batch, logs=None
)
Вызывается в конце пакета в методах predict.
Подклассы должны переопределять этот метод для выполнения необходимых действий.
Обратите внимание: если аргумент steps_per_execution метода compile в Model имеет значение N, этот метод будет вызываться только через каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число — индекс пакета в текущей эпохе. |
logs | Словарь. Обобщённые результаты метрик по текущий пакет включительно. |
on_predict_begin
on_predict_begin(
logs=None
)
Вызывается в начале прогнозирования.
Подклассы должны переопределять этот метод для выполнения необходимых действий.
| Аргументы | |
|---|---|
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_predict_end
on_predict_end(
logs=None
)
Вызывается в конце прогнозирования.
Подклассы должны переопределять этот метод для выполнения необходимых действий.
| Аргументы | |
|---|---|
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_test_batch_begin
on_test_batch_begin(
batch, logs=None
)
Вызывается в начале пакета в методах evaluate.
Также вызывается в начале пакета проверки в методах fit, если предоставлены данные для проверки.
Подклассы должны переопределять этот метод для выполнения необходимых действий.
Обратите внимание: если аргумент steps_per_execution метода compile в Model имеет значение N, этот метод будет вызываться только через каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число — индекс пакета в текущей эпохе. |
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_test_batch_end
on_test_batch_end(
batch, logs=None
)
Вызывается в конце пакета в методах evaluate.
Также вызывается в конце пакета проверки в методах fit, если предоставлены данные для проверки.
Подклассы должны переопределять этот метод для выполнения необходимых действий.
Обратите внимание: если аргумент steps_per_execution метода compile в Model имеет значение N, этот метод будет вызываться только через каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число — индекс пакета в текущей эпохе. |
logs | Словарь. Обобщённые результаты метрик по текущий пакет включительно. |
on_test_begin
on_test_begin(
logs=None
)
Вызывается в начале оценки или проверки.
Подклассы должны переопределять этот метод для выполнения необходимых действий.
| Аргументы | |
|---|---|
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_test_end
on_test_end(
logs=None
)
Вызывается в конце оценки или проверки.
Подклассы должны переопределять этот метод для выполнения необходимых действий.
| Аргументы | |
|---|---|
logs | Словарь. В настоящее время этому аргументу для данного метода передаётся результат последнего вызова on_test_batch_end(), но в будущем это может измениться. |
on_train_batch_begin
on_train_batch_begin(
batch, logs=None
)
Вызывается в начале пакета обучения в методах fit.
Подклассы должны переопределять этот метод для выполнения необходимых действий.
Обратите внимание: если аргумент steps_per_execution метода compile в Model имеет значение N, этот метод будет вызываться только через каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число — индекс пакета в текущей эпохе. |
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_train_batch_end
on_train_batch_end(
batch, logs=None
)
Вызывается в конце пакета обучения в методах fit.
Подклассы должны переопределять этот метод для выполнения необходимых действий.
Обратите внимание: если аргумент steps_per_execution метода compile в Model имеет значение N, этот метод будет вызываться только через каждые N пакетов.
| Аргументы | |
|---|---|
batch | Целое число — индекс пакета в текущей эпохе. |
logs | Словарь. Обобщённые результаты метрик по текущий пакет включительно. |
on_train_begin
on_train_begin(
logs=None
)
Вызывается в начале обучения.
Подклассы должны переопределять этот метод для выполнения необходимых действий.
| Аргументы | |
|---|---|
logs | Словарь. В настоящее время этому аргументу для данного метода не передаются данные, но в будущем это может измениться. |
on_train_end
on_train_end(
logs=None
)
Вызывается в конце обучения.
Подклассы должны переопределять этот метод для выполнения необходимых действий.
| Аргументы | |
|---|---|
logs | Словарь. В настоящее время этому аргументу для данного метода передаётся результат последнего вызова on_epoch_end(), но в будущем это может измениться. |
set_model
set_model(
model
)
set_params
set_params(
params
)
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/Callback