tf.compat.v1.train.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/api_docs/python/tf/compat/v1/train/CheckpointSaverListener