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 | Операция, выполняемая сразу после создания сессии. Обычно используется для инициализации таблиц и локальных переменных. |
ready_op | Условие проверки инициализации модели. |
ready_for_local_init_op | Условие проверки готовности модели для выполнения local_init_op. |
graph | Graph, который будет использоваться моделью. |
recovery_wait_secs | Секунды между проверками готовности модели. |
local_init_run_options | RunOptions, передаваемые в session.run при выполнении local_init_op. |
local_init_feed_dict | Необязательный словарь feed для использования при выполнении 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 со значениями feed. Этот словарь feed передаётся в вызов сессии 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