tf.init_scope
| Просмотреть исходный код на GitHub |
Менеджер контекста, который выносит операции из областей потоков управления и графиков построения функций.
@tf_contextlib.contextmanager tf.init_scope()
Часто требуется вынести операции инициализации переменных из областей потоков управления, графиков построения функций и лент градиентов. Вход в init_scope — это механизм для удовлетворения этих требований. В частности, вход в init_scope имеет три эффекта:
(1) Все зависимости управления очищаются в момент входа в область; это эквивалентно входу в менеджер контекста, возвращаемый из control_dependencies(None), который имеет побочный эффект выхода из областей потоков управления, таких как tf.cond и tf.while_loop.
(2) Все операции, созданные во время активности области, поднимаются в самый нижний контекст на context_stack , который не строит функцию графика. Здесь контекст определяется как граф или контекст ожидания. Каждый переход контекста, т. е. каждая установка графа в качестве стандартного графа и каждый переход в режим ожидания, регистрируется в локальном стеке потока, называемом context_switches; запись в журнале о переходе контекста извлекается из стека при выходе из контекста. Вход в init_scope эквивалентен движению вверх по context_switches, поиску первого контекста, который не строит функцию графика, и входу в него. Особенность состоит в том, что если режим графа включен, но стек стандартных графиков пуст, то вход в init_scope просто установит новый граф в качестве стандартного.
(3) Лента градиентов приостанавливается, пока область активна.
Когда выполнение в режиме ожидания включено, код внутри блока init_scope выполняется с включенным выполнением в режиме ожидания, даже при определении функций графика с помощью tf.contrib.eager.defun. Например:
tf.compat.v1.enable_eager_execution()
@tf.contrib.eager.defun
def func():
# A defun-decorated function constructs TensorFlow graphs,
# it does not execute eagerly.
assert not tf.executing_eagerly()
with tf.init_scope():
# Initialization runs with eager execution enabled
assert tf.executing_eagerly()
| Возбуждает | |
|---|---|
RuntimeError | если состояние графика несовместимо с этой инициализацией. |
© 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/init_scope