Scope

Ámbito de clase final pública

Administra grupos de propiedades relacionadas al crear operaciones de Tensorflow, como un prefijo de nombre común.

Un Scope es un contenedor de propiedades comunes aplicadas a TensorFlow Ops. El código de usuario normal inicializa un Scope y lo proporciona a las clases de creación de Operaciones. Por ejemplo:

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

Una clase de construcción Operation adquiere un Scope y lo usa para establecer propiedades en las operaciones subyacentes de Tensorflow. Por ejemplo:

// 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()
      ...
   }
 }
 

Jerarquía de alcance:

Un Scope proporciona varios métodos with() que crean un nuevo ámbito. Normalmente, el nuevo ámbito tiene una propiedad cambiada, mientras que otras propiedades se heredan del ámbito principal.

Un ejemplo 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, ...);
 

Los objetos de ámbito no son seguros para subprocesos.

Constructores Públicos

Ámbito ( ExecutionEnvironment env)
Cree un nuevo ámbito de nivel superior.

Métodos públicos

OperationBuilder
applyControlDependencies (constructor OperationBuilder )
Agrega cada Operando en controlDependencies como una entrada de control al constructor proporcionado.
EjecuciónEntorno
env ()
Devuelve el entorno de ejecución utilizado por este ámbito.
Cuerda
makeOpName (String nombre predeterminado)
Cree un nombre único para un operador, utilizando un valor predeterminado proporcionado si es necesario.
Alcance
withControlDependencies (Iterable< Operando <?>> controles)
Devuelve un nuevo ámbito en el que las operaciones agregadas tendrán las dependencias de control proporcionadas.
Alcance
withName (Cadena opName)
Devuelve un nuevo ámbito que utiliza el nombre proporcionado para una operación.
Alcance
withSubScope (String childScopeName)
Devuelve un nuevo ámbito en el que las operaciones agregadas tendrán el prefijo de nombre proporcionado.

Métodos Heredados

Constructores Públicos

Ámbito público ( ExecutionEnvironment env)

Cree un nuevo ámbito de nivel superior.

Parámetros
env El entorno de ejecución utilizado por el ámbito.

Métodos públicos

OperationBuilder público applyControlDependencies (constructor OperationBuilder )

Agrega cada Operando en controlDependencies como una entrada de control al constructor proporcionado.

Parámetros
constructor OperationBuilder para agregar entradas de control a

Entorno de ejecución público env ()

Devuelve el entorno de ejecución utilizado por este ámbito.

public String makeOpName (String defaultName)

Cree un nombre único para un operador, utilizando un valor predeterminado proporcionado si es necesario.

Esto normalmente lo llaman solo las clases de construcción de operadores.

Este método genera un nombre único, apropiado para el ámbito de nombre controlado por esta instancia. El código de construcción de un operador típico podría parecerse a

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

Nota: si proporciona una clase de creación de operadores compuestos (es decir, una clase que crea un conjunto de operaciones relacionadas llamando a otro código de creación de operadores), el nombre proporcionado actuará como un subámbito para todos los operadores subyacentes.

Parámetros
nombre predeterminado nombre del operador subyacente.
Devoluciones
  • nombre único para el operador.
Lanza
Argumento de excepción ilegal si el nombre predeterminado no es válido.

Ámbito público con dependencias de control ( controles iterables < operando <?>>)

Devuelve un nuevo ámbito en el que las operaciones agregadas tendrán las dependencias de control proporcionadas.

Las operaciones creadas con este ámbito tendrán una ventaja de control de cada uno de los controles proporcionados. Todas las demás propiedades se heredan del ámbito actual.

Parámetros
control S dependencias de control para operaciones creadas con el ámbito devuelto
Devoluciones
  • un nuevo ámbito con las dependencias de control proporcionadas

Alcance público con nombre (String opName )

Devuelve un nuevo ámbito que utiliza el nombre proporcionado para una operación.

Las operaciones creadas dentro de este ámbito tendrán un nombre de la forma name/opName[_suffix] . Esto le permite nombrar un operador específico de manera más significativa.

Los nombres deben coincidir con la expresión regular [A-Za-z0-9.][A-Za-z0-9_.\-]*

Parámetros
opName nombre de un operador en el ámbito devuelto
Devoluciones
  • un nuevo Scope que usa opName para operaciones.
Lanza
Argumento de excepción ilegal si el nombre no es válido

Ámbito público con Subámbito (String childScopeName)

Devuelve un nuevo ámbito en el que las operaciones agregadas tendrán el prefijo de nombre proporcionado.

Las operaciones creadas con este alcance tendrán name/childScopeName/ como prefijo. El nombre real será único en el ámbito devuelto. Todas las demás propiedades se heredan del ámbito actual.

El nombre del ámbito secundario debe coincidir con la expresión regular [A-Za-z0-9.][A-Za-z0-9_.\-]*

Parámetros
childScopeName nombre para el nuevo ámbito secundario
Devoluciones
  • un nuevo subámbito
Lanza
Argumento de excepción ilegal si el nombre no es válido