Spec-Zone.ru › TensorFlow

tf.compat.v1.train.MonitoredSession

Объект, похожий на сессию, который обрабатывает инициализацию, восстановление и хуки.

tf.compat.v1.train.MonitoredSession(
    session_creator=None, hooks=None, stop_grace_period_secs=120
)

Мигрировать на TF2

Внимание: Данный API был разработан для TensorFlow v1. Продолжая чтение, вы узнаете, как мигрировать с этого API на эквивалент в чистом TensorFlow v2. Обратитесь к руководству по миграции TensorFlow v1 в TensorFlow v2 https://www.tensorflow.org/guide/migrate для получения инструкций по миграции остальной части вашего кода.

Этот API несовместим с выполнением в режиме eager и tf.function. Для миграции на TF2 перепишите код, чтобы он был совместим с eager execution. Проверьте руководство по миграции https://www.tensorflow.org/guide/migrate#1_replace_v1sessionrun_calls по замене вызовов Session.run. В Keras хуки сессии могут быть заменены Callbacks, например, заметки по хуку логгирования. Для получения более подробной информации, пожалуйста, прочитайте Улучшение производительности с помощью tf.function.

Описание

Пример использования:

saver_hook = CheckpointSaverHook(...)
summary_hook = SummarySaverHook(...)
with MonitoredSession(session_creator=ChiefSessionCreator(...),
                      hooks=[saver_hook, summary_hook]) as sess:
  while not sess.should_stop():
    sess.run(train_op)

Инициализация: во время создания отслеживаемая сессия выполняет следующие действия в заданном порядке:

  • вызывает hook.begin() для каждого заданного хука
  • окончательно завершает график через scaffold.finalize()
  • создаёт сессию
  • инициализирует модель через операторы инициализации, предоставленные Scaffold
  • восстанавливает переменные, если существует контрольная точка
  • запускает бегунки очереди
  • вызывает hook.after_create_session()

Запуск: при вызове run() отслеживаемая сессия выполняет следующие действия:

  • вызывает hook.before_run()
  • вызывает TensorFlow session.run() с объединёнными загрузками и feed_dict
  • вызывает hook.after_run()
  • возвращает результат session.run(), запрошенный пользователем
  • в случае возникновения AbortedError или UnavailableError, она восстанавливает или повторно инициализирует сессию перед повторным выполнением вызова run()

Выход: в момент close() отслеживаемая сессия выполняет следующие действия в порядке:

  • вызывает hook.end()
  • закрывает бегунки очереди и сессию
  • подавляет ошибку OutOfRange, которая указывает на обработку всех входных данных, если monitored_session используется в качестве контекста

Как установить аргументы tf.compat.v1.Session:

  • В большинстве случаев вы можете установить аргументы сессии следующим образом:
MonitoredSession(
  session_creator=ChiefSessionCreator(master=..., config=...))
  • В распределённой среде для неглавного рабочего узла вы можете использовать следующее:
MonitoredSession(
  session_creator=WorkerSessionCreator(master=..., config=...))

См. MonitoredTrainingSession для примера использования на основе главного или рабочего узла.

Примечание: Это не tf.compat.v1.Session. Например, она не может выполнять следующее:
  • она не может быть установлена в качестве стандартной сессии.
  • она не может быть отправлена в saver.save.
  • она не может быть отправлена в tf.train.start_queue_runners.
Аргументы
session_creator Объект-фабрика для создания сессии. Обычно ChiefSessionCreator, который является стандартным.
hooks Итерируемый набор объектов `SessionRunHook`.
Возвращает
Объект MonitoredSession.
Атрибуты
graph Граф, запущенный в этой сессии.

Подклассы

class StepContext

Методы

close

Просмотреть исходный код

close()

run

Просмотреть исходный код

run(
    fetches, feed_dict=None, options=None, run_metadata=None
)

Выполнить операции в отслеживаемой сессии.

Этот метод полностью совместим с методом tf.Session.run().

Аргументы
fetches Также как и в tf.Session.run().
feed_dict Также как и в tf.Session.run().
options Также как и в tf.Session.run().
run_metadata Также как и в tf.Session.run().
Возвращает
Также как и в tf.Session.run().

run_step_fn

Просмотреть исходный код

run_step_fn(
    step_fn
)

Выполнить операции с помощью функции шага.

Аргументы
step_fn Функция или метод с одним аргументом типа StepContext. Функция может использовать методы аргумента для выполнения вычислений с доступом к исходной сессии. Возвращаемое значение step_fn будет возвращено из run_step_fn, если не запрошено завершение. В этом случае следующий вызов should_stop вернёт True. Пример использования:
```python
with tf.Graph().as_default():
  c = tf.compat.v1.placeholder(dtypes.float32)
  v = tf.add(c, 4.0)
  w = tf.add(c, 0.5)
  def step_fn(step_context):
    a = step_context.session.run(fetches=v, feed_dict={c: 0.5})
    if a <= 4.5:
      step_context.request_stop()
      return step_context.run_with_hooks(fetches=w,
                                         feed_dict={c: 0.1})

  with tf.MonitoredSession() as session:
    while not session.should_stop():
      a = session.run_step_fn(step_fn)
```
Hooks interact with the `run_with_hooks()` call inside the
     `step_fn` as they do with a `MonitoredSession.run` call.
Возвращает
Возвращает возвращаемое значение step_fn.
Возможные исключения
StopIteration если step_fn вызвал request_stop(). Это может быть перехвачено with tf.MonitoredSession() для закрытия сессии.
ValueError если step_fn не имеет одного аргумента, названного step_context. Он также может иметь необязательный self в случаях, когда он принадлежит объекту.

should_stop

Просмотреть исходный код

should_stop()

__enter__

Просмотреть исходный код

__enter__()

__exit__

Просмотреть исходный код

__exit__(
    exception_type, exception_value, traceback
)

© 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/MonitoredSession

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API