tf.compat.v1.train.SessionManager
Вспомогательный инструмент для обучения, который восстанавливает состояние из контрольной точки и создает сеанс.
tf.compat.v1.train.SessionManager(
local_init_op: tf.Operation = None,
ready_op: tf.Operation = None,
ready_for_local_init_op: tf.Operation = None,
graph: tf.Graph = None,
recovery_wait_secs=30,
local_init_run_options: 'distribute_lib.RunOptions' = None,
local_init_feed_dict=None
)
Этот класс представляет собой небольшую оболочку, которая отвечает за создание сеанса и восстановление из контрольной точки. Он также предоставляет функции, упрощающие координацию между несколькими потоками или процессами обучения.
- Сохранение обученных переменных в контрольные точки по мере обучения.
- Инициализация переменных при запуске, восстановление из последней контрольной точки после сбоя или ожидание появления контрольных точек.
Использование:
with tf.Graph().as_default():
...add operations to the graph...
# Create a SessionManager that will checkpoint the model in '/tmp/mydir'.
sm = SessionManager()
sess = sm.prepare_session(master, init_op, saver, checkpoint_dir)
# Use the session to train the graph.
while True:
sess.run(<my_train_op>)
prepare_session() инициализирует или восстанавливает модель. В качестве аргументов ему требуются init_op и saver.
Второй процесс может дождаться готовности модели, выполнив следующие действия:
with tf.Graph().as_default():
...add operations to the graph...
# Create a SessionManager that will wait for the model to become ready.
sm = SessionManager()
sess = sm.wait_for_session(master)
# Use the session to train the graph.
while True:
sess.run(<my_train_op>)
wait_for_session() ожидает инициализации модели другими процессами.
| Аргументы | |
|---|---|
local_init_op | Operation, выполняемый сразу после создания сеанса. Обычно используется для инициализации таблиц и локальных переменных. |
ready_op | Operation для проверки инициализации модели. |
ready_for_local_init_op | Operation для проверки готовности модели к выполнению local_init_op. |
graph | Graph, который будет использоваться моделью. |
recovery_wait_secs | Интервал в секундах между проверками готовности модели. |
local_init_run_options | RunOptions, передаваемые в session.run при выполнении local_init_op. |
local_init_feed_dict | Необязательный словарь подачи данных сеанса, используемый при выполнении local_init_op. |
| Исключения | |
|---|---|
ValueError | Если ready_for_local_init_op не равен None, а local_init_op равен None. |
Методы
prepare_session
prepare_session(
master: str,
init_op: tf.Operation = None,
saver: tf.compat.v1.train.Saver = None,
checkpoint_dir: str = None,
checkpoint_filename_with_path: str = None,
wait_for_checkpoint=False,
max_wait_secs=7200,
config=None,
init_feed_dict=None,
init_fn=None
) -> tf.compat.v1.Session
Создает Session. Обеспечивает готовность модели к использованию.
Создает Session на «master». Если передан объект saver, а checkpoint_dir указывает на каталог с допустимыми файлами контрольных точек, будет предпринята попытка восстановить модель из контрольной точки. Если файлы контрольных точек недоступны, а wait_for_checkpoint равно True, процесс будет проверять возможность восстановления каждые recovery_wait_secs в течение периода до max_wait_secs.
Если восстановить модель не удается, она инициализируется путем выполнения init_op и вызова init_fn, если они заданы. local_init_op также выполняется после init_op и init_fn независимо от того, удалось ли восстановить модель, но только если выполняется условие ready_for_local_init_op.
Если модель восстановлена из контрольной точки, предполагается, что все глобальные переменные уже инициализированы; в частности, не будут выполнены ни init_op, ни init_fn.
Возникает ошибка, если восстановить модель не удается и не передан ни один из параметров: init_op, init_fn или local_init_op.
| Аргументы | |
|---|---|
master | String представления главного узла TensorFlow, который следует использовать. |
init_op | Необязательный Operation, используемый для инициализации модели. |
saver | Объект Saver, используемый для восстановления модели. |
checkpoint_dir | Путь к файлам контрольных точек. Для восстановления будет использована последняя контрольная точка в каталоге. |
checkpoint_filename_with_path | Полный путь к файлу контрольной точки. |
wait_for_checkpoint | Следует ли ожидать появления контрольной точки. |
max_wait_secs | Максимальное время ожидания появления контрольных точек. |
config | Необязательный протокол ConfigProto, используемый для настройки сеанса. |
init_feed_dict | Необязательный словарь, сопоставляющий объекты Tensor со значениями подачи данных. Этот словарь передается в вызов run() сеанса при выполнении операции init. |
init_fn | Необязательный вызываемый объект, используемый для инициализации модели. Вызывается после вызова необязательного init_op. Вызываемый объект должен принимать один аргумент — инициализируемый сеанс. |
| Возвращает | |
|---|---|
Объект Session, который можно использовать для управления моделью. |
| Исключения | |
|---|---|
RuntimeError | Если модель не удается инициализировать или восстановить. |
ValueError | Если заданы одновременно checkpoint_dir и checkpoint_filename_with_path. |
recover_session
recover_session(
master: str,
saver: tf.compat.v1.train.Saver = None,
checkpoint_dir: str = None,
checkpoint_filename_with_path: str = None,
wait_for_checkpoint=False,
max_wait_secs=7200,
config=None
) -> Tuple[tf.compat.v1.Session, bool]
Создает Session, по возможности восстанавливая модель.
Создает новый сеанс на «master». Если сеанс не инициализирован и его можно восстановить из контрольной точки, выполняется восстановление.
| Аргументы | |
|---|---|
master | String представления главного узла TensorFlow, который следует использовать. |
saver | Объект Saver, используемый для восстановления модели. |
checkpoint_dir | Путь к файлам контрольных точек. Для восстановления будет использована последняя контрольная точка в каталоге. |
checkpoint_filename_with_path | Полный путь к файлу контрольной точки. |
wait_for_checkpoint | Следует ли ожидать появления контрольной точки. |
max_wait_secs | Максимальное время ожидания появления контрольных точек. |
config | Необязательный протокол ConfigProto, используемый для настройки сеанса. |
| Возвращает | |
|---|---|
Пару (sess, initialized), где initialized равно True, если сеанс удалось восстановить и инициализировать, и False в противном случае. |
| Исключения | |
|---|---|
ValueError | Если заданы одновременно checkpoint_dir и checkpoint_filename_with_path. |
wait_for_session
wait_for_session(
master: str, config=None, max_wait_secs=float('Inf')
) -> Optional[tf.compat.v1.Session]
Создает новый Session и ожидает готовности модели.
Создает новый Session на «master». Ожидает инициализации модели или ее восстановления из контрольной точки. Предполагается, что модель будет подготовлена другим потоком или процессом. Этот метод предназначен для потоков или процессов, участвующих в распределенной конфигурации обучения, где за инициализацию или восстановление обучаемой модели отвечает другой поток или процесс.
Примечание: Время ожидания сеанса этим методом ограничено значением max_wait_secs. По умолчанию функция ожидает бесконечно.
| Аргументы | |
|---|---|
master | String представления главного узла TensorFlow, который следует использовать. |
config | Необязательный протокол ConfigProto, используемый для настройки сеанса. |
max_wait_secs | Максимальное время ожидания доступности сеанса. |
| Возвращает | |
|---|---|
Session. Может иметь значение None, если время выполнения операции превышает тайм-аут, заданный параметром config.operation_timeout_in_ms. |
| Исключения | |
|---|---|
tf.DeadlineExceededError | Если сеанс недоступен по истечении max_wait_secs. |
© 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/SessionManager