Scope

публичный финальный класс Scope

Управляет группами связанных свойств при создании операций Tensorflow, таких как префикс общего имени.

Scope — это контейнер для общих свойств, применяемых к TensorFlow Ops. Обычный пользовательский код инициализирует Scope и предоставляет ее классам построения операций. Например:

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

Класс построения операции получает область видимости и использует ее для установки свойств базовых операций Tensorflow. Например:

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

Иерархия областей действия:

Scope предоставляет различные методы with() , которые создают новую область. В новой области обычно изменяется одно свойство, а другие свойства наследуются от родительской области.

Пример использования Constant реализованный, как и раньше:

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

Объекты области не являются потокобезопасными.

Публичные конструкторы

Область действия (окружение ExecutionEnvironment )
Создайте новую область верхнего уровня.

Публичные методы

ОперацияBuilder
applyControlDependency (построитель OperationBuilder )
Добавляет каждый операнд в controlDependency в качестве входных данных управления для предоставленного построителя.
среда выполнения
окружение ()
Возвращает среду выполнения, используемую этой областью.
Нить
makeOpName (строка defaultName)
Создайте уникальное имя для оператора, при необходимости используя предоставленное значение по умолчанию.
Объем
withControlDependency (элементы управления Iterable< Operand <?>>)
Возвращает новую область, в которой добавленные операции будут иметь предоставленные зависимости элементов управления.
Объем
withName (строка opName)
Верните новую область, которая использует указанное имя для операции.
Объем
withSubScope (строка childScopeName)
Возвращает новую область, в которой добавленные операции будут иметь указанный префикс имени.

Унаследованные методы

Публичные конструкторы

общедоступная область (окружение ExecutionEnvironment )

Создайте новую область верхнего уровня.

Параметры
окружение Среда выполнения, используемая областью действия.

Публичные методы

общедоступный OperationBuilder applyControlDependency (построитель OperationBuilder )

Добавляет каждый операнд в controlDependency в качестве входных данных управления для предоставленного построителя.

Параметры
строитель OperationBuilder для добавления управляющих входов в

общедоступная среда выполнения ( )

Возвращает среду выполнения, используемую этой областью.

общедоступная строка makeOpName (строка defaultName)

Создайте уникальное имя для оператора, при необходимости используя предоставленное значение по умолчанию.

Обычно это вызывается только классами построения операторов.

Этот метод генерирует уникальное имя, подходящее для области имен, контролируемой этим экземпляром. Типичный строительный код оператора может выглядеть так:

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

Примечание. Если вы предоставляете составной класс построения операторов (т. е. класс, который создает набор связанных операций путем вызова другого кода построения операторов), предоставленное имя будет действовать как подобласть для всех базовых операторов.

Параметры
имя по умолчанию имя базового оператора.
Возврат
  • уникальное имя оператора.
Броски
IllegalArgumentException если имя по умолчанию неверно.

общедоступная область действия сControlDependency (элементы управления Iterable< Operand <?>>)

Возвращает новую область, в которой добавленные операции будут иметь предоставленные зависимости элементов управления.

Операции, созданные с этой областью, будут иметь преимущество каждого из предоставленных элементов управления. Все остальные свойства наследуются от текущей области.

Параметры
элементы управления зависимости управления для операций, созданных с возвращенной областью
Возврат
  • новая область действия с предоставленными зависимостями управления

общедоступная область с именем (String opName)

Верните новую область, которая использует указанное имя для операции.

Операции, созданные в этой области, будут иметь имя формы name/opName[_suffix] . Это позволяет более осмысленно называть конкретный оператор.

Имена должны соответствовать регулярному выражению [A-Za-z0-9.][A-Za-z0-9_.\-]*

Параметры
имя_оператора имя оператора в возвращаемой области
Возврат
  • новая область, которая использует opName для операций.
Броски
IllegalArgumentException если имя неверно

общедоступная область withSubScope (String childScopeName)

Возвращает новую область, в которой добавленные операции будут иметь указанный префикс имени.

Операции, созданные с этой областью, будут иметь префикс name/childScopeName/ . Фактическое имя будет уникальным в возвращаемой области. Все остальные свойства наследуются от текущей области.

Имя дочерней области должно соответствовать регулярному выражению [A-Za-z0-9.][A-Za-z0-9_.\-]*

Параметры
имя дочерней области имя новой дочерней области
Возврат
  • новая подобласть
Броски
IllegalArgumentException если имя неверно