Esta página foi traduzida pela API Cloud Translation.
Switch to English

tf.init_scope

TensorFlow 1 versão Ver fonte no GitHub

Um gerente de contexto que elevadores ops fora de controle de fluxo de escopos e gráficos-construção de função.

Há muitas vezes uma necessidade de levantar ops inicialização variável fora do escopo de controle de fluxo, gráficos-construção de função, e fitas gradiente. Introduzir um init_scope é um mecanismo para satisfazer estes desideratos. Em particular, entrando em uma init_scope tem três efeitos:

(1) Todas as dependências de controlo são compensados ​​o momento em que o alcance é inserido; isto é equivalente a entrar no gestor contexto devolvido do control_dependencies(None) , que tem o efeito colateral de sair âmbitos de controlo de fluxo como tf.cond e tf.while_loop .

(2) Todas as operações que são criadas durante o âmbito é activo são levantadas para o menor contexto no context_stack que não está a construir um gráfico da função. Aqui, um contexto é definida como qualquer um gráfico ou um contexto ansioso. Cada mudança de contexto, ou seja, cada instalação de um gráfico como o gráfico padrão e cada interruptor no modo ansioso, é registrado em uma pilha chamada de segmento local context_switches ; a entrada de registo para uma mudança de contexto é exibido da pilha quando o contexto é encerrado. Introduzir um init_scope é equivalente a subindo context_switches , encontrar o primeiro contexto que não está construindo uma função de gráfico, e entrar nela. A ressalva é que se o modo gráfico está habilitado, mas a pilha de gráfico padrão é vazio, então entrar em um init_scope simplesmente instalar um novo gráfico como o padrão.

(3) A fita gradiente é uma pausa enquanto o alcance é activo.

Quando a execução ansioso está habilitado, o código dentro de um bloco init_scope corre com a execução ansioso habilitado mesmo quando traçando um tf.function . Por exemplo:

 tf.compat.v1.enable_eager_execution()

@tf.function
def func():
  # A 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 se o estado gráfico é incompatível com esta inicialização.