Spec-Zone.ru › TensorFlow 2.3

tf.compat.v1.train.MonitoredSession

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

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

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

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 ошибка, указывающая, что все входные данные обработаны, если наблюдаемая сессия используется как контекст

Как установить аргументы 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.
Аргументы
session_creator Объект-фабрика для создания сессии. Обычно ChiefSessionCreator или WorkerSessionCreator.
hooks Итерируемый список SessionRunHook' objects. </td> </tr><tr> <td> должен восстанавливаться</td> <td> A bool. Indicates whether to recover fromAbortedErrorandUnavailableErroror not. </td> </tr><tr> <td>stop_grace_period_secs</td> <td> Number of seconds given to threads to stop afterclose()` был вызван.
Атрибуты
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. Пример использования:
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)

Хуки взаимодействуют с вызовом run_with_hooks() внутри step_fn так же, как и с вызовом MonitoredSession.run.

Возвращаемые значения
Возвращает возвращаемое значение 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
)

© 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/r2.3/api_docs/python/tf/compat/v1/train/MonitoredSession

Spec-Zone.ru

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