Scope

Alcance de la 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 construcción de operaciones. Por ejemplo:

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

Una clase de construcción de operaciones adquiere un alcance 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. En el nuevo ámbito normalmente se cambia una propiedad, 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 alcance no son seguros para subprocesos.

Constructores Públicos

Alcance (entorno de entorno de ejecución )
Cree un nuevo ámbito de nivel superior.

Métodos públicos

OperaciónConstructor
aplicar (constructor OperationBuilder )
Aplica la especificación del dispositivo y agrega cada operando en controlDependencies como entrada de control al generador proporcionado.
OperaciónConstructor
applyControlDependencies (constructor OperationBuilder )
Agrega cada operando en controlDependencies como entrada de control al generador proporcionado.
Entorno de ejecución
entorno ()
Devuelve el entorno de ejecución utilizado por este ámbito.
Cadena
getDeviceString ()
Devuelve la cadena del dispositivo del alcance.
Cadena
makeOpName (nombre predeterminado de cadena)
Cree un nombre único para un operador, utilizando un valor predeterminado proporcionado si es necesario.
Alcance
withControlDependencies (controles Iterables< Op >)
Devuelve un nuevo ámbito donde las operaciones agregadas tendrán las dependencias de control proporcionadas.
Alcance
con Dispositivo (Especificación del dispositivo especificación del dispositivo)
Devuelve un nuevo alcance que utiliza la especificación del dispositivo proporcionada para una operación.
Alcance
conNombre (Cadena opName)
Devuelve un nuevo alcance que utiliza el nombre proporcionado para una operación.
Alcance
withNameAsSubScope (Cadena nombre predeterminado)
Devuelve un nuevo ámbito donde las operaciones agregadas tendrán el prefijo del nombre de operación de este ámbito (establecido por withName(String) ), o el valor predeterminado dado si no está configurado.
Alcance
withSubScope (cadena childScopeName)
Devuelve un nuevo ámbito donde las operaciones agregadas tendrán el prefijo de nombre proporcionado.

Métodos heredados

Constructores Públicos

Ámbito público (entorno de entorno de ejecución )

Cree un nuevo ámbito de nivel superior.

Parámetros
ambiente El entorno de ejecución utilizado por el alcance.

Métodos públicos

Aplicar OperationBuilder público (constructor OperationBuilder )

Aplica la especificación del dispositivo y agrega cada operando en controlDependencies como entrada de control al constructor proporcionado.

Parámetros
constructor OperationBuilder para agregar entradas de control y especificaciones de dispositivo a

OperationBuilder público applyControlDependencies (constructor OperationBuilder )

Agrega cada operando en controlDependencies como entrada de control al generador proporcionado.

Parámetros
constructor OperationBuilder para agregar entradas de control a

entorno de ejecución pública env ()

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

cadena pública getDeviceString ()

Devuelve la cadena del dispositivo del alcance.

Cadena pública makeOpName (Cadena nombre predeterminado)

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

Normalmente, esto solo lo llaman las clases de construcción de operadores.

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

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

Nota: si proporciona una clase de creación de operadores compuesta (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
Excepción de argumento ilegal si el nombre predeterminado no es válido.

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

Devuelve un nuevo ámbito donde las operaciones agregadas tendrán las dependencias de control proporcionadas.

Las operaciones creadas con este alcance 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
controles controlar las dependencias para las operaciones creadas con el alcance devuelto
Devoluciones
  • un nuevo alcance con las dependencias de control proporcionadas

Ámbito público con dispositivo ( DeviceSpec deviceSpec)

Devuelve un nuevo alcance que utiliza la especificación del dispositivo proporcionada para una operación.

Las operaciones creadas dentro de este alcance colocarán las operaciones creadas en los dispositivos que coincidan con las especificaciones proporcionadas.

Parámetros
especificaciones del dispositivo especificación del dispositivo para un operador en el alcance devuelto
Devoluciones
  • un nuevo ámbito que utiliza opName para las operaciones.

Ámbito público con nombre (cadena opName)

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

Las operaciones creadas dentro de este alcance tendrán un nombre con el formato 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
nombre de operación nombre de un operador en el alcance devuelto
Devoluciones
  • un nuevo ámbito que utiliza opName para las operaciones.
Lanza
Excepción de argumento ilegal si el nombre no es válido

Ámbito público conNombreAsSubÁmbito (Cadena nombre predeterminado)

Devuelve un nuevo ámbito donde las operaciones agregadas tendrán el prefijo del nombre de operación de este ámbito (establecido por withName(String) ), o el valor predeterminado dado si no está configurado. Está pensado para ser utilizado en operaciones compuestas.

Las operaciones creadas con este alcance tendrán name/opName/ 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 predeterminado debe coincidir con la expresión regular [A-Za-z0-9.][A-Za-z0-9_.\-]*

Parámetros
nombre predeterminado nombre del subámbito si el nombre de este ámbito no se ha establecido.
Devoluciones
  • un nuevo subámbito
Lanza
Excepción de argumento ilegal si el nombre no es válido

Alcance público conSubScope (cadena childScopeName)

Devuelve un nuevo ámbito donde 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
niñoÁmbitoNombre nombre para el nuevo ámbito secundario
Devoluciones
  • un nuevo subámbito
Lanza
Excepción de argumento ilegal si el nombre no es válido