tf.keras.callbacks.Callback
| Просмотреть исходный код на GitHub |
Абстрактный базовый класс для создания новых колбеков.
tf.keras.callbacks.Callback()
Колбеки могут быть переданы в методы Keras, такие как fit, evaluate, и predict, для подключения к различным этапам жизненного цикла обучения и вывода модели.
Для создания пользовательского колбека необходимо унаследовать класс keras.callbacks.Callback и переопределить метод, соответствующий интересующей стадии. Дополнительную информацию см. в разделе https://www.tensorflow.org/guide/keras/custom_callback.
Пример:
training_finished = False
class MyCallback(tf.keras.callbacks.Callback):
def on_train_end(self, logs=None):
global training_finished
training_finished = True
model = tf.keras.Sequential([tf.keras.layers.Dense(1, input_shape=(1,))])
model.compile(loss='mean_squared_error')
model.fit(tf.constant([[1.0]]), tf.constant([[1.0]]),
callbacks=[MyCallback()])
assert training_finished == True
Если вы хотите использовать объекты Callback в пользовательской петле обучения:
- Вы должны упаковать все свои колбеки в один
callbacks.CallbackList, чтобы их можно было вызывать вместе. -
Вам нужно будет вручную вызывать все методы
on_*в соответствующих местах вашей петли. Например:callbacks = tf.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 | Экземпляр keras.models.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 в tf.keras.Model установлен в N, этот метод будет вызываться только каждые N пачек.
| Аргументы | |
|---|---|
batch | Целое число, индекс пачки в текущей эпохе. |
logs | Словарь. В данный момент для этого метода не передаются данные, но это может измениться в будущем. |
on_predict_batch_end
on_predict_batch_end(
batch, logs=None
)
Вызывается в конце пачки в методах predict.
Подклассы должны переопределять для выполнения любых действий.
Обратите внимание, что если аргумент steps_per_execution к compile в tf.keras.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 в tf.keras.Model установлен в N, этот метод будет вызываться только каждые N пачек.
| Аргументы | |
|---|---|
batch | Целое число, индекс пачки в текущей эпохе. |
logs | Словарь. В данный момент для этого метода не передаются данные, но это может измениться в будущем. |
on_test_batch_end
on_test_batch_end(
batch, logs=None
)
Вызывается в конце пачки в методах evaluate.
Также вызывается в конце пачки валидации в методах fit при наличии данных валидации.
Подклассы должны переопределять для выполнения любых действий.
Обратите внимание, что если аргумент steps_per_execution к compile в tf.keras.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 в tf.keras.Model установлен в значение N, этот метод будет вызываться только через каждые N пакеты.
| Аргументы | |
|---|---|
batch | Целое число, индекс пакета в текущей эпохе. |
logs | Словарь. В настоящее время для этого метода данные в этом аргументе не передаются, но это может измениться в будущем. |
on_train_batch_end
on_train_batch_end(
batch, logs=None
)
Вызывается в конце пакет обучения в методах fit.
Подклассы должны переопределять для выполнения любых действий.
Обратите внимание, что если аргумент steps_per_execution к compile в tf.keras.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/versions/r2.9/api_docs/python/tf/keras/callbacks/Callback