Gestisce gruppi di proprietà correlate durante la creazione di operazioni Tensorflow, come un prefisso di nome comune.
Un Scope
è un contenitore per proprietà comuni applicate a TensorFlow Ops. Il normale codice utente inizializza un Scope
e lo fornisce alle classi di costruzione di operazioni. Ad esempio:
Scope scope = new Scope(graph);
Constant c = Constant.create(scope, 42);
Una classe di costruzione Operazione acquisisce un ambito e lo utilizza per impostare le proprietà sulle operazioni Tensorflow sottostanti. Ad esempio:
// 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()
...
}
}
Gerarchia dell'ambito:
Uno Scope
fornisce vari metodi with()
che creano un nuovo ambito. Il nuovo ambito in genere ha una proprietà modificata mentre altre proprietà vengono ereditate dall'ambito padre.
Un esempio che utilizza Constant
implementato come prima:
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, ...);
Gli oggetti ambito non sono thread-safe.
Costruttori pubblici
Metodi pubblici
OperationBuilder | applyControlDependencies (costruttore OperationBuilder ) Aggiunge ogni operando in controlDependencies come input di controllo al builder fornito. |
ExecutionEnvironment | env () Restituisce l'ambiente di esecuzione utilizzato da questo ambito. |
Corda | makeOpName (stringa defaultName) Creare un nome univoco per un operatore, utilizzando un valore predefinito fornito se necessario. |
Scopo | withControlDependencies (controlli < Operando <? >> iterabili) Restituisce un nuovo ambito in cui le operazioni aggiunte avranno le dipendenze di controllo fornite. |
Scopo | withName (Stringa opName) Restituisce un nuovo ambito che utilizza il nome fornito per un op. |
Scopo | withSubScope (String childScopeName) Restituisce un nuovo ambito in cui le operazioni aggiunte avranno il prefisso del nome fornito. |
Metodi ereditati
Costruttori pubblici
ambito pubblico ( ExecutionEnvironment env)
Crea un nuovo ambito di primo livello.
Parametri
env | L'ambiente di esecuzione utilizzato dall'ambito. |
---|
Metodi pubblici
public OperationBuilder applyControlDependencies ( OperationBuilder builder)
Aggiunge ogni operando in controlDependencies come input di controllo al builder fornito.
Parametri
costruttore | OperationBuilder a cui aggiungere input di controllo |
---|
public ExecutionEnvironment env ()
Restituisce l'ambiente di esecuzione utilizzato da questo ambito.
public String makeOpName (String defaultName)
Creare un nome univoco per un operatore, utilizzando un valore predefinito fornito se necessario.
Normalmente viene chiamato solo dalle classi di creazione di operatori.
Questo metodo genera un nome univoco, appropriato per l'ambito del nome controllato da questa istanza. Il codice edificio tipico dell'operatore potrebbe assomigliare a
scope.env().opBuilder("Const", scope.makeOpName("Const"))...
Nota: se fornisci una classe di costruzione di operatori compositi (cioè una classe che crea un insieme di operazioni correlate chiamando il codice di costruzione di un altro operatore), il nome fornito agirà come ambito secondario per tutti gli operatori sottostanti.
Parametri
defaultName | nome per l'operatore sottostante. |
---|
ritorna
- nome univoco per l'operatore.
Lancia
IllegalArgumentException | se il nome predefinito non è valido. |
---|
public Scope withControlDependencies (Iterable < Operand <? >> controls)
Restituisce un nuovo ambito in cui le operazioni aggiunte avranno le dipendenze di controllo fornite.
Le operazioni create con questo ambito avranno un vantaggio di controllo da ciascuno dei controlli forniti. Tutte le altre proprietà vengono ereditate dall'ambito corrente.
Parametri
controlli | dipendenze di controllo per le operazioni create con l'ambito restituito |
---|
ritorna
- un nuovo ambito con le dipendenze di controllo fornite
ambito pubblico withName (String opName)
Restituisce un nuovo ambito che utilizza il nome fornito per un op.
Le operazioni create in questo ambito avranno un nome nel formato name/opName[_suffix]
. Ciò consente di nominare un operatore specifico in modo più significativo.
I nomi devono corrispondere all'espressione regolare [A-Za-z0-9.][A-Za-z0-9_.\-]*
Parametri
opName | nome per un operatore nell'ambito restituito |
---|
ritorna
- un nuovo ambito che utilizza opName per le operazioni.
Lancia
IllegalArgumentException | se il nome non è valido |
---|
public Scope withSubScope (String childScopeName)
Restituisce un nuovo ambito in cui le operazioni aggiunte avranno il prefisso del nome fornito.
Le operazioni create con questo ambito avranno name/childScopeName/
come prefisso. Il nome effettivo sarà univoco nell'ambito restituito. Tutte le altre proprietà vengono ereditate dall'ambito corrente.
Il nome dell'ambito figlio deve corrispondere all'espressione regolare [A-Za-z0-9.][A-Za-z0-9_.\-]*
Parametri
childScopeName | nome per il nuovo ambito figlio |
---|
ritorna
- un nuovo ambito secondario
Lancia
IllegalArgumentException | se il nome non è valido |
---|