Scope

publiczna klasa końcowa Zakres

Zarządza grupami powiązanych właściwości podczas tworzenia operacji Tensorflow, takich jak przedrostek nazwy pospolitej.

Scope to kontener dla typowych właściwości stosowanych w operacjach TensorFlow. Normalny kod użytkownika inicjuje Scope i udostępnia go klasom budowania operacji. Na przykład:

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

Klasa budowania Operacji nabywa zakres i używa go do ustawiania właściwości bazowych operacji Tensorflow. Na przykład:

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

Hierarchia zakresu:

Scope udostępnia różne metody with() , które tworzą nowy zakres. W nowym zakresie zazwyczaj zmieniana jest jedna właściwość, podczas gdy inne właściwości są dziedziczone z zakresu nadrzędnego.

Przykład użycia Constant zaimplementowanego jak poprzednio:

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

Obiekty zakresu nie są bezpieczne dla wątków.

Konstruktorzy publiczni

Zakres ( środowisko wykonania )
Utwórz nowy zakres najwyższego poziomu.

Metody publiczne

Konstruktor operacji
ApplyControlDependency (konstruktor OperationBuilder )
Dodaje każdy operand w controlDependency jako dane wejściowe sterujące do dostarczonego konstruktora.
Środowisko wykonania
środowisko ()
Zwraca środowisko wykonawcze używane przez ten zakres.
Smyczkowy
makeOpName (ciąg domyślna nazwa)
Utwórz unikalną nazwę dla operatora, korzystając w razie potrzeby z podanej wartości domyślnej.
Zakres
withControlDependency (kontrolki Iterable< Operand <?>>)
Zwraca nowy zakres, w którym dodane operacje będą miały podane zależności kontrolne.
Zakres
withName (ciąg znaków opName)
Zwróć nowy zakres, który używa podanej nazwy dla operacji.
Zakres
withSubScope (Ciąg childScopeName)
Zwraca nowy zakres, w którym dodane operacje będą miały podany przedrostek nazwy.

Metody dziedziczone

Konstruktorzy publiczni

Zakres publiczny ( ExecutionEnvironment env)

Utwórz nowy zakres najwyższego poziomu.

Parametry
śr Środowisko wykonawcze używane przez zakres.

Metody publiczne

public OperationBuilder ApplyControlDependency (konstruktor OperationBuilder )

Dodaje każdy operand w controlDependency jako dane wejściowe sterujące do dostarczonego konstruktora.

Parametry
budowniczy OperationBuilder, do którego chcesz dodać wejścia sterujące

public ExecutionEnvironment env ()

Zwraca środowisko wykonawcze używane przez ten zakres.

public String makeOpName (String defaultName)

Utwórz unikalną nazwę dla operatora, korzystając w razie potrzeby z podanej wartości domyślnej.

Jest to zwykle wywoływane tylko przez klasy budujące operatory.

Ta metoda generuje unikalną nazwę, odpowiednią dla zakresu nazw kontrolowanego przez tę instancję. Może wyglądać typowy kod budowania operatora

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

Uwaga: jeśli podasz klasę budowania operatorów złożonych (tzn. klasę, która tworzy zestaw powiązanych operacji poprzez wywołanie kodu budowania innego operatora), podana nazwa będzie działać jako podzakres dla wszystkich operatorów bazowych.

Parametry
nazwa domyślna nazwa operatora bazowego.
Powroty
  • unikalna nazwa operatora.
Rzuca
Wyjątek IllegalArgument jeśli domyślna nazwa jest nieprawidłowa.

zakres publiczny z zależnościami kontrolnymi (kontrolki Iterable< Operand <?>>)

Zwraca nowy zakres, w którym dodane operacje będą miały podane zależności kontrolne.

Operacje utworzone przy użyciu tego zakresu będą miały przewagę kontrolną dzięki każdemu z dostępnych elementów sterujących. Wszystkie pozostałe właściwości są dziedziczone z bieżącego zakresu.

Parametry
sterownica zależności kontrolne dla operacji utworzonych przy użyciu zwróconego zakresu
Powroty
  • nowy zakres z dostarczonymi zależnościami kontrolnymi

Zakres publiczny o nazwie (String opName)

Zwróć nowy zakres, który używa podanej nazwy dla operacji.

Operacje utworzone w tym zakresie będą miały nazwę w postaci name/opName[_suffix] . Dzięki temu możesz nadać konkretnemu operatorowi bardziej znaczącą nazwę.

Nazwy muszą pasować do wyrażenia regularnego [A-Za-z0-9.][A-Za-z0-9_.\-]*

Parametry
nazwa op nazwa operatora w zwróconym zakresie
Powroty
  • nowy zakres, który używa opName do operacji.
Rzuca
Wyjątek IllegalArgument jeśli nazwa jest nieprawidłowa

Zakres publiczny withSubScope (String childScopeName)

Zwraca nowy zakres, w którym dodane operacje będą miały podany przedrostek nazwy.

Operacje utworzone przy użyciu tego zakresu będą miały przedrostek name/childScopeName/ . Rzeczywista nazwa będzie unikalna w zwróconym zakresie. Wszystkie pozostałe właściwości są dziedziczone z bieżącego zakresu.

Nazwa zakresu podrzędnego musi pasować do wyrażenia regularnego [A-Za-z0-9.][A-Za-z0-9_.\-]*

Parametry
nazwazakresu podrzędnego nazwa nowego zakresu podrzędnego
Powroty
  • nowy podzakres
Rzuca
Wyjątek IllegalArgument jeśli nazwa jest nieprawidłowa