Управляет группами связанных свойств при создании операций 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, ...);
Объекты области не являются потокобезопасными.
Публичные конструкторы
Публичные методы
ОперацияBuilder | применить (строитель OperationBuilder ) Применяет спецификацию устройства и добавляет каждый операнд в controlDependency в качестве входных управляющих данных в предоставленный построитель. |
ОперацияBuilder | applyControlDependency (построитель OperationBuilder ) Добавляет каждый операнд в controlDependency в качестве входных данных управления для предоставленного построителя. |
среда выполнения | окружение () Возвращает среду выполнения, используемую этой областью. |
Нить | получитьDeviceString () Возвращает строку устройства из области видимости. |
Нить | makeOpName (строка defaultName) Создайте уникальное имя для оператора, при необходимости используя предоставленное значение по умолчанию. |
Объем | withControlDependency (элементы управления Iterable< Op >) Возвращает новую область, в которой добавленные операции будут иметь предоставленные зависимости элементов управления. |
Объем | withDevice ( DeviceSpec устройствоSpec) Верните новую область, которая использует предоставленную спецификацию устройства для операции. |
Объем | withName (строка opName) Верните новую область, которая использует указанное имя для операции. |
Объем | withNameAsSubScope (строка defaultName) Возвращает новую область, в которой добавленные операции будут иметь префикс имени операции этой области (заданного withName(String) ) или заданного значения по умолчанию, если оно не установлено. |
Объем | withSubScope (строка childScopeName) Возвращает новую область, в которой добавленные операции будут иметь указанный префикс имени. |
Унаследованные методы
Публичные конструкторы
общедоступная область (окружение ExecutionEnvironment )
Создайте новую область верхнего уровня.
Параметры
окружение | Среда выполнения, используемая областью действия. |
---|
Публичные методы
общедоступное применение OperationBuilder (построитель OperationBuilder )
Применяет спецификацию устройства и добавляет каждый операнд в controlDependency в качестве входных управляющих данных в предоставленный построитель.
Параметры
строитель | OperationBuilder для добавления управляющих входов и спецификаций устройств в |
---|
общедоступный OperationBuilder applyControlDependency (построитель OperationBuilder )
Добавляет каждый операнд в controlDependency в качестве входных данных управления для предоставленного построителя.
Параметры
строитель | OperationBuilder для добавления управляющих входов в |
---|
публичная строка getDeviceString ()
Возвращает строку устройства из области видимости.
общедоступная строка makeOpName (строка defaultName)
Создайте уникальное имя для оператора, при необходимости используя предоставленное значение по умолчанию.
Обычно это вызывается только классами построения операторов.
Этот метод генерирует уникальное имя, подходящее для области имен, контролируемой этим экземпляром. Типичный строительный код оператора может выглядеть так:
scope.env().opBuilder("Const", scope.makeOpName("Const"))...
Примечание. Если вы предоставляете составной класс построения операторов (т. е. класс, который создает набор связанных операций путем вызова другого кода построения операторов), предоставленное имя будет действовать как подобласть для всех базовых операторов.
Параметры
имя по умолчанию | имя базового оператора. |
---|
Возврат
- уникальное имя оператора.
Броски
IllegalArgumentException | если имя по умолчанию неверно. |
---|
общедоступная область сControlDependency (элементы управления Iterable< Op >)
Возвращает новую область, в которой добавленные операции будут иметь предоставленные зависимости элементов управления.
Операции, созданные с этой областью, будут иметь преимущество каждого из предоставленных элементов управления. Все остальные свойства наследуются от текущей области.
Параметры
элементы управления | зависимости управления для операций, созданных с возвращенной областью |
---|
Возврат
- новая область действия с предоставленными зависимостями управления
общедоступная область действия с устройством ( DeviceSpec deviceSpec)
Верните новую область, которая использует предоставленную спецификацию устройства для операции.
Операции, созданные в этой области, будут размещать созданные операции на устройствах, соответствующих предоставленной спецификации.
Параметры
Спецификация устройства | спецификация устройства для оператора в возвращаемой области |
---|
Возврат
- новая область, которая использует opName для операций.
общедоступная область с именем (String opName)
Верните новую область, которая использует указанное имя для операции.
Операции, созданные в этой области, будут иметь имя формы name/opName[_suffix]
. Это позволяет более осмысленно называть конкретный оператор.
Имена должны соответствовать регулярному выражению [A-Za-z0-9.][A-Za-z0-9_.\-]*
Параметры
имя_оператора | имя оператора в возвращаемой области |
---|
Возврат
- новая область, которая использует opName для операций.
Броски
IllegalArgumentException | если имя неверно |
---|
общедоступная область withNameAsSubScope (строка defaultName)
Возвращает новую область, в которой добавленные операции будут иметь префикс имени операции этой области (заданного withName(String)
) или заданного значения по умолчанию, если оно не установлено. Это предназначено для использования в составных операциях.
Операции, созданные с этой областью, будут иметь префикс name/opName/
. Фактическое имя будет уникальным в возвращаемой области. Все остальные свойства наследуются от текущей области.
Имя дочерней области по умолчанию должно соответствовать регулярному выражению [A-Za-z0-9.][A-Za-z0-9_.\-]*
Параметры
имя по умолчанию | имя подобласти, если имя этой области не было установлено. |
---|
Возврат
- новая подобласть
Броски
IllegalArgumentException | если имя неверно |
---|
общедоступная область withSubScope (String childScopeName)
Возвращает новую область, в которой добавленные операции будут иметь указанный префикс имени.
Операции, созданные с этой областью, будут иметь префикс name/childScopeName/
. Фактическое имя будет уникальным в возвращаемой области. Все остальные свойства наследуются от текущей области.
Имя дочерней области должно соответствовать регулярному выражению [A-Za-z0-9.][A-Za-z0-9_.\-]*
Параметры
имя дочерней области | имя новой дочерней области |
---|
Возврат
- новая подобласть
Броски
IllegalArgumentException | если имя неверно |
---|