tf.estimator.experimental.stop_if_no_increase_hook
| Просмотреть исходный код на GitHub |
Создаёт хук, который останавливает обучение, если метрика не увеличивается в течение заданного максимального количества шагов.
tf.estimator.experimental.stop_if_no_increase_hook(
estimator,
metric_name,
max_steps_without_increase,
eval_dir=None,
min_steps=0,
run_every_secs=60,
run_every_steps=None
)
Пример использования:
estimator = ... # Hook to stop training if accuracy does not increase in over 100000 steps. hook = early_stopping.stop_if_no_increase_hook(estimator, "accuracy", 100000) train_spec = tf.estimator.TrainSpec(..., hooks=[hook]) tf.estimator.train_and_evaluate(estimator, train_spec, ...)
Примечание: текущая реализация поддерживает остановку обучения и оценки как в локальном, так и в распределённом режиме. В распределённом режиме обучение может быть остановлено, но оценка (которая выполняется на отдельном узле) будет бесконечно ожидать новых контрольных точек модели для оценки, поэтому вам потребуется другой способ определения и остановки. Остановка оценки в распределённом режиме требует изменений в train_and_evaluate API и будет реализована в будущей версии.
| Аргументы | |
|---|---|
estimator | Экземпляр tf.estimator.Estimator. |
metric_name | str, отслеживаемая метрика. "loss", "accuracy" и т. д. |
max_steps_without_increase | int, максимальное число шагов обучения без увеличения заданной метрики. |
eval_dir | Если задано, директория, содержащая файлы с метриками оценки. По умолчанию используется estimator.eval_dir(). |
min_steps | int, если значение глобального шага меньше этого значения, остановка никогда не запрашивается. По умолчанию 0. |
run_every_secs | Если указано, вызывает should_stop_fn с интервалом run_every_secs секунд. По умолчанию 60 секунд. Должен быть указан либо этот параметр, либо run_every_steps. |
run_every_steps | Если указано, вызывает should_stop_fn каждые run_every_steps шагов. Должен быть указан либо этот параметр, либо run_every_secs. |
| Возвращаемые значения | |
|---|---|
Хук остановки обучения типа SessionRunHook , который периодически проверяет, не показывает ли заданная метрика никакого увеличения в течение заданного максимального числа шагов обучения, и инициирует остановку обучения, если это так. |
© 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/estimator/experimental/stop_if_no_increase_hook