Spec-Zone.ru › TensorFlow

tf.compat.v1.train.SingularMonitoredSession

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

tf.compat.v1.train.SingularMonitoredSession(
    hooks=None,
    scaffold=None,
    master='',
    config=None,
    checkpoint_dir=None,
    stop_grace_period_secs=120,
    checkpoint_filename_with_path=None
)

Переход к TF2

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

Этот API несовместим с выполнением в режиме eager и tf.function. Для миграции в TF2 перепишите код так, чтобы он был совместим с выполнением в режиме eager. Проверьте руководство по миграции https://www.tensorflow.org/guide/migrate#1_replace_v1sessionrun_calls по замене вызовов Session.run. В Keras хуки сессии можно заменить на Callbacks, например, в блокноте с хуком ведения журнала https://github.com/tensorflow/docs/blob/master/site/en/guide/migrate/logging_stop_hook.ipynb. Для получения более подробной информации, пожалуйста, прочтите https://www.tensorflow.org/guide/function (Лучшая производительность с tf.function).

Описание

Обратите внимание, что это утилита не рекомендуется для распределенных сред. Для распределенных сред, пожалуйста, используйте tf.compat.v1.train.MonitoredSession. Различия между MonitoredSession и SingularMonitoredSession:

  • MonitoredSession обрабатывает AbortedError и UnavailableError для распределенных сред, но SingularMonitoredSession этого не делает.
  • MonitoredSession может быть создан в режимах chief или worker. SingularMonitoredSession всегда создаётся как chief.
  • Вы можете получить доступ к объекту исходной сессии tf.compat.v1.Session, используемой SingularMonitoredSession, в то время как в MonitoredSession исходная сессия является закрытой. Это можно использовать для:
    • Выполнения run без хуков.
    • Сохранения и восстановления.
  • Все остальные функции идентичны.

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

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

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

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

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

  • вызывает hook.before_run()
  • вызывает TensorFlow session.run() со слиянными запрашиваемыми данными и feed_dict
  • вызывает hook.after_run()
  • возвращает результат session.run(), запрошенный пользователем

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

  • вызывает hook.end()
  • закрывает исполнителей очереди и сессию
  • подавляет ошибку OutOfRange, которая указывает, что все входные данные обработаны, если SingularMonitoredSession используется как контекст.
Аргументы
hooks Итерируемый объект SessionRunHook' objects. </td> </tr><tr> <td>scaffold<a id="scaffold"></a> </td> <td> AScaffoldused for gathering or building supportive ops. If not specified a default one is created. It's used to finalize the graph. </td> </tr><tr> <td>master<a id="master"></a> </td> <td>Строкаrepresentation of the TensorFlow master to use. </td> </tr><tr> <td>config<a id="config"></a> </td> <td>ConfigProtoproto used to configure the session. </td> </tr><tr> <td>checkpoint_dir<a id="checkpoint_dir"></a> </td> <td> A string. Optional path to a directory where to restore variables. </td> </tr><tr> <td>stop_grace_period_secs<a id="stop_grace_period_secs"></a> </td> <td> Number of seconds given to threads to stop afterclose()has been called. </td> </tr><tr> <td>checkpoint_filename_with_path` Строка. Необязательный путь к файлу контрольной точки, из которого необходимо восстановить переменные.
Атрибуты
graph Граф, запущенный в этой сессии.

Подклассы

class StepContext

Методы

close

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

close()

raw_session

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

raw_session()

Возвращает базовый объект TensorFlow.Session.

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/SingularMonitoredSession

Spec-Zone.ru

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