Scope

Escopo da aula final pública

Gerencia grupos de propriedades relacionadas ao criar operações do Tensorflow, como um prefixo de nome comum.

Um Scope é um contêiner para propriedades comuns aplicadas ao TensorFlow Ops. O código de usuário normal inicializa um Scope e o fornece às classes de construção de Operação. Por exemplo:

Scope scope = new Scope(graph);
 Constant c = Constant.create(scope, 42);
 

Uma classe de construção Operation adquire um escopo e o usa para definir propriedades nas operações subjacentes do Tensorflow. Por exemplo:

// An operator class that adds a constant.
 public class Constant {
   public static Constant create(Scope scope, ...) {
      scope.graph().opBuilder(
        "Const", scope.makeOpName("Const"))
        .setAttr(...)
        .build()
      ...
   
 }
 }

Hierarquia de escopo:

Um Scope fornece vários métodos with() que criam um novo escopo. O novo escopo normalmente tem uma propriedade alterada enquanto outras propriedades são herdadas do escopo pai.

Um exemplo usando Constant implementado como antes:

Scope root = new Scope(graph);

 // The linear subscope will generate names like linear/...
 Scope linear = Scope.withSubScope("linear");

 // This op name will be "linear/W"
 Constant.create(linear.withName("W"), ...);

 // This op will be "linear/Const", using the default
 // name provided by Constant
 Constant.create(linear, ...);

 // This op will be "linear/Const_1", using the default
 // name provided by Constant and making it unique within
 // this scope
 Constant.create(linear, ...);
 

Os objetos de escopo não são thread-safe.

Construtores Públicos

Escopo (ambiente ExecutionEnvironment )
Crie um novo escopo de nível superior.

Métodos Públicos

OperationBuilder
applyControlDependencies (construtor OperationBuilder )
Adiciona cada operando em controlDependencies como uma entrada de controle ao construtor fornecido.
Ambiente de Execução
env ()
Retorna o ambiente de execução usado por este escopo.
Corda
makeOpName (String nome padrão)
Crie um nome exclusivo para um operador, usando um padrão fornecido, se necessário.
Escopo
withControlDependencies (controles Iterable< Operand <?>>)
Retorna um novo escopo onde as operações adicionadas terão as dependências de controle fornecidas.
Escopo
withName (String opName)
Retorne um novo escopo que use o nome fornecido para uma operação.
Escopo
withSubScope (String childScopeName)
Retorna um novo escopo onde as operações adicionadas terão o prefixo do nome fornecido.

Métodos herdados

Construtores Públicos

Escopo público (ambiente ExecutionEnvironment )

Crie um novo escopo de nível superior.

Parâmetros
ambiente O ambiente de execução usado pelo escopo.

Métodos Públicos

public OperationBuilder applyControlDependencies (construtor OperationBuilder )

Adiciona cada operando em controlDependencies como uma entrada de controle ao construtor fornecido.

Parâmetros
construtor OperationBuilder para adicionar entradas de controle ao

ambiente de execução público ()

Retorna o ambiente de execução usado por este escopo.

String pública makeOpName (String defaultName)

Crie um nome exclusivo para um operador, usando um padrão fornecido, se necessário.

Isso normalmente é chamado apenas por classes de construção de operadores.

Este método gera um nome exclusivo, apropriado para o escopo do nome controlado por esta instância. O código típico de construção de operador pode ser parecido com

scope.env().opBuilder("Const", scope.makeOpName("Const"))...
 

Nota: se você fornecer uma classe de construção de operador composta (ou seja, uma classe que cria um conjunto de operações relacionadas chamando outro código de construção de operador), o nome fornecido atuará como um subescopo para todos os operadores subjacentes.

Parâmetros
nome padrão nome do operador subjacente.
Devoluções
  • nome exclusivo para o operador.
Lança
IllegalArgumentException se o nome padrão for inválido.

Escopo público comControlDependencies (controles Iterable< Operand <?>>)

Retorna um novo escopo onde as operações adicionadas terão as dependências de controle fornecidas.

As operações criadas com este escopo terão uma borda de controle de cada um dos controles fornecidos. Todas as outras propriedades são herdadas do escopo atual.

Parâmetros
controles controlar dependências para operações criadas com o escopo retornado
Devoluções
  • um novo escopo com as dependências de controle fornecidas

Escopo público withName (String opName)

Retorne um novo escopo que use o nome fornecido para uma operação.

As operações criadas neste escopo terão um nome no formato name/opName[_suffix] . Isso permite nomear um operador específico de forma mais significativa.

Os nomes devem corresponder à expressão regular [A-Za-z0-9.][A-Za-z0-9_.\-]*

Parâmetros
opName nome para um operador no escopo retornado
Devoluções
  • um novo escopo que usa opName para operações.
Lança
IllegalArgumentException se o nome for inválido

Escopo público withSubScope (String childScopeName)

Retorna um novo escopo onde as operações adicionadas terão o prefixo do nome fornecido.

As operações criadas com este escopo terão name/childScopeName/ como prefixo. O nome real será exclusivo no escopo retornado. Todas as outras propriedades são herdadas do escopo atual.

O nome do escopo filho deve corresponder à expressão regular [A-Za-z0-9.][A-Za-z0-9_.\-]*

Parâmetros
filhoScopeName nome para o novo escopo filho
Devoluções
  • um novo subescopo
Lança
IllegalArgumentException se o nome for inválido