tf.keras.callbacks.SwapEMAWeights
Меняет веса модели и EMA-веса до и после оценки.
Наследуется от: Callback
tf.keras.callbacks.SwapEMAWeights(
swap_on_epoch=False
)
Этот колбэк заменяет значения весов модели значениями весов EMA оптимизатора (экспоненциальное скользящее среднее значений весов прошлых моделей, реализующее «усреднение Полиака») перед оценкой модели и восстанавливает предыдущие веса после оценки.
Колбэк SwapEMAWeights следует использовать совместно с оптимизатором, который устанавливает use_ema=True.
Обратите внимание, что веса меняются на месте, чтобы сохранить память. Поведение не определено, если вы изменяете веса EMA или веса модели в других колбэках.
Пример:
# Remember to set `use_ema=True` in the optimizer
optimizer = SGD(use_ema=True)
model.compile(optimizer=optimizer, loss=..., metrics=...)
# Metrics will be computed with EMA weights
model.fit(X_train, Y_train, callbacks=[SwapEMAWeights()])
# If you want to save model checkpoint with EMA weights, you can set
# `swap_on_epoch=True` and place ModelCheckpoint after SwapEMAWeights.
model.fit(
X_train,
Y_train,
callbacks=[SwapEMAWeights(swap_on_epoch=True), ModelCheckpoint(...)]
)
| Аргументы | |
|---|---|
swap_on_epoch | нужно ли выполнять переключение при on_epoch_begin() и on_epoch_end(). Это полезно, если вы хотите использовать EMA-веса для других колбэков, таких как ModelCheckpoint. По умолчанию False. |
| Атрибуты | |
|---|---|
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/SwapEMAWeights