tf.estimator.CheckpointSaverListener
Интерфейс для прослушивателей, которые выполняют действия до или после сохранения контрольной точки.
CheckpointSaverListener срабатывает только на шагах, когда срабатывает CheckpointSaverHook, и предоставляет обратные вызовы в следующих точках:
- перед использованием сессии
- перед каждым вызовом
Saver.save() - после каждого вызова
Saver.save() - в конце сессии
Чтобы использовать прослушиватель, реализуйте класс и передайте прослушиватель в CheckpointSaverHook, как в этом примере:
class ExampleCheckpointSaverListener(CheckpointSaverListener):
def begin(self):
# You can add ops to the graph here.
print('Starting the session.')
self.your_tensor = ...
def before_save(self, session, global_step_value):
print('About to write a checkpoint')
def after_save(self, session, global_step_value):
print('Done writing checkpoint.')
if decided_to_stop_training():
return True
def end(self, session, global_step_value):
print('Done with the session.')
...
listener = ExampleCheckpointSaverListener()
saver_hook = tf.estimator.CheckpointSaverHook(
checkpoint_dir, listeners=[listener])
with
tf.compat.v1.train.MonitoredTrainingSession(chief_only_hooks=[saver_hook]):
...
CheckpointSaverListener может просто выполнить какое-либо действие после каждого сохранения контрольной точки. Прослушиватель также может использовать собственное расписание для менее частого действия, например, на основе значения global_step_value. В этом случае разработчики должны реализовать метод end() для обработки действий, связанных с последним сохранением контрольной точки. Но прослушиватель не должен действовать дважды, если after_save() уже обработал это последнее сохранение контрольной точки.
CheckpointSaverListener может запросить остановку обучения, вернув True в after_save. Обратите внимание, что в настройках реплицированного распределенного обучения только chief должен использовать это поведение. В противном случае каждый рабочий будет выполнять свою собственную оценку, что может быть нерациональным использованием ресурсов.
Методы
after_save
after_save(
session, global_step_value
)
before_save
before_save(
session, global_step_value
)
begin
begin()
end
end(
session, global_step_value
)
© 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/CheckpointSaverListener