tf.train.SessionManager
Помощник обучения, который восстанавливает модель из контрольной точки и создаёт сессию.
tf.train.SessionManager(
local_init_op=None, ready_op=None, ready_for_local_init_op=None, graph=None,
recovery_wait_secs=30, local_init_run_options=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. |
| Возможные исключения | |
|---|---|
ValueError | Если ready_for_local_init_op не равно None, а local_init_op равно None |
Методы
prepare_session
prepare_session(
master, init_op=None, saver=None, checkpoint_dir=None,
checkpoint_filename_with_path=None, wait_for_checkpoint=False,
max_wait_secs=7200, config=None, init_feed_dict=None, init_fn=None
)
Создаёт 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 master. |
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_fn | Необязательная функция для инициализации модели. Вызывается после необязательного вызова init_op. Функция должна принимать один аргумент — инициируемую сессию. |
| Возвращаемое значение | |
|---|---|
Объект Session для управления моделью. |
| Возможные исключения | |
|---|---|
RuntimeError | Если модель не может быть инициализирована или восстановлена. |
ValueError | Если установлены и checkpoint_dir, и checkpoint_filename_with_path. |
recover_session
recover_session(
master, saver=None, checkpoint_dir=None, checkpoint_filename_with_path=None,
wait_for_checkpoint=False, max_wait_secs=7200, config=None
)
Создаёт Session, восстанавливая, если возможно.
Создаёт новую сессию в 'master'. Если сессия не инициализирована и может быть восстановлена из контрольной точки, восстанавливает её.
| Аргументы | |
|---|---|
master | Представление String для использования TensorFlow master. |
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, config=None, max_wait_secs=float('Inf')
)
Создаёт новую Session и ждёт готовности модели.
Создаёт новую Session в 'master'. Ожидает инициализации модели или восстановления из контрольной точки. Ожидается, что другой поток или процесс сделают модель готовой, и это предназначено для потоков/процессов, участвующих в распределённой конфигурации обучения, где другой поток/процесс отвечает за инициализацию или восстановление обучаемой модели.
ПРИМЕЧАНИЕ: Время ожидания этого метода ограничено max_wait_secs. По умолчанию эта функция будет ждать бесконечно.
| Аргументы | |
|---|---|
master | Представление String для использования TensorFlow master. |
config | Необязательный протокол ConfigProto для настройки сессии. |
max_wait_secs | Максимальное время ожидания готовности сессии. |
| Возвращаемое значение | |
|---|---|
Объект Session . Может быть None, если операция превышает время ожидания, заданное параметром config.operation_timeout_in_ms. |
| Возможные исключения | |
|---|---|
tf.DeadlineExceededError | Если сессия недоступна после max_wait_secs. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/train/SessionManager