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 несовместим с выполнением eager execution и tf.function. Для миграции на TF2 перепишите код, чтобы он был совместим с eager execution. Проверьте руководство по миграции по замене Session.run вызовов. В Keras хуки сессии могут быть заменены Callbacks, например, заметки по хуку ведения журнала. Для получения более подробной информации, пожалуйста, ознакомьтесь с Улучшенная производительность с 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</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</td> <td>Строкаrepresentation of the TensorFlow master to use. </td> </tr><tr> <td>config</td> <td>ConfigProtoproto used to configure the session. </td> </tr><tr> <td>checkpoint_dir</td> <td> A string. Optional path to a directory where to restore variables. </td> </tr><tr> <td>stop_grace_period_secs</td> <td> Number of seconds given to threads to stop afterclose()has been called. </td> </tr><tr> <td>checkpoint_filename_with_path` | Строка. Необязательный путь к файлу контрольной точки для восстановления переменных. |
| Атрибуты | |
|---|---|
graph | Граф, запущенный в этой сессии. |
Подклассы
Методы
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/versions/r2.9/api_docs/python/tf/compat/v1/train/SingularMonitoredSession