Umfang

öffentliche Abschlussklasse Geltungsbereich

Verwaltet Gruppen verwandter Eigenschaften beim Erstellen von Tensorflow-Vorgängen, z. B. ein allgemeines Namenspräfix.

Ein Scope ist ein Container für allgemeine Eigenschaften, die auf TensorFlow Ops angewendet werden. Normaler Benutzercode initialisiert einen Scope und stellt ihn Operations-Erstellungsklassen zur Verfügung. Zum Beispiel:

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

Eine Operation-Gebäudeklasse erfasst einen Bereich und verwendet ihn, um Eigenschaften für die zugrunde liegenden Tensorflow-Operationen festzulegen. Zum Beispiel:

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

Umfangshierarchie:

Ein Scope bietet verschiedene Methoden with() , mit denen ein neuer Bereich erstellt wird. Im neuen Bereich wird normalerweise eine Eigenschaft geändert, während andere Eigenschaften vom übergeordneten Bereich geerbt werden.

Ein Beispiel mit Constant das wie zuvor implementiert wurde:

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

Bereichsobjekte sind nicht threadsicher.

Öffentliche Konstrukteure

Geltungsbereich ( ExecutionEnvironment env)
Erstellen Sie einen neuen Bereich der obersten Ebene.

Öffentliche Methoden

OperationBuilder
applyControlDependencies (Builder für OperationBuilder )
Fügt jeden Operanden in controlDependencies als Steuereingabe zum bereitgestellten Builder hinzu.
Ausführungsumgebung
env ()
Gibt die von diesem Bereich verwendete Ausführungsumgebung zurück.
String
makeOpName (String defaultName)
Erstellen Sie einen eindeutigen Namen für einen Operator und verwenden Sie gegebenenfalls einen bereitgestellten Standard.
Umfang
withControlDependencies (Iterable < Operand <? >> Steuerelemente)
Gibt einen neuen Bereich zurück, in dem hinzugefügte Vorgänge die bereitgestellten Steuerelementabhängigkeiten aufweisen.
Umfang
withName (String opName)
Geben Sie einen neuen Bereich zurück, der den angegebenen Namen für eine Operation verwendet.
Umfang
withSubScope (String childScopeName)
Gibt einen neuen Bereich zurück, in dem hinzugefügte Vorgänge das angegebene Namenspräfix haben.

Vererbte Methoden

Öffentliche Konstrukteure

öffentlicher Bereich ( ExecutionEnvironment env)

Erstellen Sie einen neuen Bereich der obersten Ebene.

Parameter
env Die vom Bereich verwendete Ausführungsumgebung.

Öffentliche Methoden

public OperationBuilder applyControlDependencies (Builder für OperationBuilder )

Fügt jeden Operanden in controlDependencies als Steuereingabe zum bereitgestellten Builder hinzu.

Parameter
Baumeister OperationBuilder zum Hinzufügen von Steuereingaben

public ExecutionEnvironment env ()

Gibt die von diesem Bereich verwendete Ausführungsumgebung zurück.

public String makeOpName (String defaultName)

Erstellen Sie einen eindeutigen Namen für einen Operator und verwenden Sie gegebenenfalls einen bereitgestellten Standard.

Dies wird normalerweise nur von Operator-Building-Klassen aufgerufen.

Diese Methode generiert einen eindeutigen Namen, der für den von dieser Instanz gesteuerten Namensbereich geeignet ist. Der typische Code für die Erstellung von Operatoren könnte wie folgt aussehen:

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

Hinweis: Wenn Sie eine zusammengesetzte Operator-Bauklasse angeben (dh eine Klasse, die eine Reihe verwandter Operationen durch Aufrufen eines anderen Operator-Baucodes erstellt), fungiert der angegebene Name als Unterbereich für alle zugrunde liegenden Operatoren.

Parameter
Standardname Name für den zugrunde liegenden Operator.
Kehrt zurück
  • eindeutiger Name für den Bediener.
Würfe
IllegalArgumentException wenn der Standardname ungültig ist.

public Scope withControlDependencies (Iterable < Operand <? >> Steuerelemente)

Gibt einen neuen Bereich zurück, in dem hinzugefügte Vorgänge die bereitgestellten Steuerelementabhängigkeiten aufweisen.

Mit diesem Bereich erstellte Operationen haben eine Steuerkante von jedem der bereitgestellten Steuerelemente. Alle anderen Eigenschaften werden vom aktuellen Bereich übernommen.

Parameter
Kontrollen Kontrollabhängigkeiten für Operationen, die mit dem zurückgegebenen Bereich erstellt wurden
Kehrt zurück
  • einen neuen Bereich mit den bereitgestellten Steuerelementabhängigkeiten

public Scope withName (String opName)

Geben Sie einen neuen Bereich zurück, der den angegebenen Namen für eine Operation verwendet.

In diesem Bereich erstellte Vorgänge haben den Namen des Formularnamens name/opName[_suffix] . Auf diese Weise können Sie einen bestimmten Operator aussagekräftiger benennen.

Namen müssen mit dem regulären Ausdruck [A-Za-z0-9.][A-Za-z0-9_.\-]*

Parameter
opName Name für einen Operator im zurückgegebenen Bereich
Kehrt zurück
  • Ein neuer Bereich, der opName für Vorgänge verwendet.
Würfe
IllegalArgumentException wenn der Name ungültig ist

public Scope withSubScope (String childScopeName)

Gibt einen neuen Bereich zurück, in dem hinzugefügte Vorgänge das angegebene Namenspräfix haben.

Mit diesem Bereich erstellte name/childScopeName/ haben den name/childScopeName/ als Präfix. Der tatsächliche Name ist im zurückgegebenen Bereich eindeutig. Alle anderen Eigenschaften werden vom aktuellen Bereich übernommen.

Der Name des [A-Za-z0-9.][A-Za-z0-9_.\-]* Bereichs muss mit dem regulären Ausdruck [A-Za-z0-9.][A-Za-z0-9_.\-]*

Parameter
childScopeName Name für den neuen untergeordneten Bereich
Kehrt zurück
  • ein neues Subscope
Würfe
IllegalArgumentException wenn der Name ungültig ist