Administra grupos de propiedades relacionadas al crear operaciones de Tensorflow, como un prefijo de nombre común.
A Scope
es un contenedor de propiedades comunes aplicadas a TensorFlow ops. Código de usuario normal inicializa un Scope
y proporciona a las clases de construcción de funcionamiento. 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:
A Scope
proporciona diversas with()
métodos que crean un nuevo ámbito de aplicación. El nuevo ámbito normalmente tiene una propiedad cambiada mientras que otras propiedades se heredan del ámbito principal.
Un ejemplo usando Constant
implementa 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, ...);
Objetos alcance no son thread-safe.
Constructores públicos
Métodos públicos
OperationBuilder | applyControlDependencies ( OperationBuilder constructor) Agrega cada operando en controlDependencies como una entrada de control al constructor proporcionado. |
Entorno de ejecución | env () Devuelve el entorno de ejecución utilizado por este ámbito. |
Cuerda | makeOpName (String DEFAULTNAME) Cree un nombre único para un operador, utilizando un valor predeterminado proporcionado si es necesario. |
Alcance | withControlDependencies (Iterable < operando <? >> controles) Devuelve un nuevo ámbito donde las operaciones agregadas tendrán las dependencias de control proporcionadas. |
Alcance | withName (String opname) Devuelve un nuevo ámbito que usa el nombre proporcionado para una operación. |
Alcance | withSubScope (String 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 ( ExecutionEnvironment env)
Cree un nuevo alcance de nivel superior.
Parámetros
env | El entorno de ejecución utilizado por el alcance. |
---|
Métodos públicos
pública OperationBuilder applyControlDependencies ( OperationBuilder constructor)
Agrega cada operando en controlDependencies como una entrada de control al constructor proporcionado.
Parámetros
constructor | OperationBuilder para agregar entradas de control a |
---|
Cadena makeOpName pública (String DEFAULTNAME)
Cree un nombre único para un operador, utilizando un valor predeterminado proporcionado si es necesario.
Normalmente solo lo llaman las clases de construcción del operador.
Este método genera un nombre único, apropiado para el ámbito de nombre controlado por esta instancia. Código de construcción del operador típico podría parecerse a
scope.env().opBuilder("Const", scope.makeOpName("Const"))...
Nota: si se proporciona una clase compuesta construcción de operador (es decir, una clase que crea un conjunto de operaciones relacionadas llamando a otro operador de código de construcción), el nombre proporcionado actuará como un subscope a todos los operadores subyacentes.
Parámetros
defaultName | nombre del operador subyacente. |
---|
Devoluciones
- nombre único para el operador.
Lanza
Argumento de excepción ilegal | si el nombre predeterminado no es válido. |
---|
pública Ámbito withControlDependencies (Iterable < operando <? >> controles)
Devuelve un nuevo ámbito donde las operaciones agregadas tendrán las dependencias de control proporcionadas.
Las operaciones creadas con este alcance tendrán un borde de control de cada uno de los controles proporcionados. Todas las demás propiedades se heredan del ámbito actual.
Parámetros
control S | controlar las dependencias para las operaciones creadas con el alcance devuelto |
---|
Devoluciones
- un nuevo alcance con las dependencias de control proporcionadas
pública Ámbito withName (String opname)
Devuelve un nuevo ámbito que usa el nombre proporcionado para una operación.
Operaciones creados dentro de este alcance 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 ámbito que utiliza opName para las operaciones.
Lanza
Argumento de excepción ilegal | si el nombre no es válido |
---|
pública Ámbito withSubScope (String childScopeName)
Devuelve un nuevo ámbito donde las operaciones agregadas tendrán el prefijo de nombre proporcionado.
Operaciones creadas con este ámbito 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 de ámbito secundario debe coincidir con la expresión regular [A-Za-z0-9.][A-Za-z0-9_.\-]*
Parámetros
childScopeName | nombre para el nuevo alcance secundario |
---|
Devoluciones
- un nuevo subámbito
Lanza
Argumento de excepción ilegal | si el nombre no es válido |
---|