тензорный поток:: Сфера

#include <scope.h>

Объект Scope представляет собой набор связанных операций TensorFlow, которые имеют одинаковые свойства, например общий префикс имени.

Резюме

Объект Scope — это контейнер для свойств TensorFlow Op. Конструкторы операций получают объект Scope в качестве обязательного первого аргумента, а сконструированная операция получает свойства объекта.

Простой пример:

using namespace ops;
Scope root = Scope::NewRootScope();
auto c1 = Const(root, { {1, 1} });
auto m = MatMul(root, c1, { {41}, {1} });
GraphDef gdef;
Status s = root.ToGraphDef(&gdef);
if (!s.ok()) { ... }

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

Класс Scope предоставляет различные функции With<>, которые создают новую область. В новой области обычно изменяется одно свойство, в то время как другие свойства наследуются от родительской области. Метод NewSubScope(name) добавляет name к префиксу имен операций, созданных в области действия, а WithOpName() изменяет суффикс, который в противном случае по умолчанию соответствует типу операции.

Примеры имен:

Scope root = Scope::NewRootScope();
Scope linear = root.NewSubScope("linear");
// W will be named "linear/W"
auto W = Variable(linear.WithOpName("W"),
                  {2, 2}, DT_FLOAT);
// b will be named "linear/b_3"
int idx = 3;
auto b = Variable(linear.WithOpName("b_", idx),
                  {2}, DT_FLOAT);
auto x = Const(linear, {...});  // name: "linear/Const"
auto m = MatMul(linear, x, W);  // name: "linear/MatMul"
auto r = BiasAdd(linear, m, b); // name: "linear/BiasAdd"

Срок службы области:

Новая область создается путем вызова Scope::NewRootScope . Это создает некоторые ресурсы, которые совместно используются всеми дочерними областями, которые наследуются от этой области, прямо или транзитивно. Например, новая область создает новый объект Graph, к которому добавляются операции, когда новая область или ее дочерние элементы используются конструктором Op. В новой области также есть объект Status , который будет использоваться для индикации ошибок функциями Op-конструктора, вызываемыми в любой дочерней области. Функции Op-конструктора должны проверить состояние области действия, вызвав метод ok() перед тем, как приступить к созданию операции.

Безопасность потока:

Объект Scope НЕ является потокобезопасным. Потоки не могут одновременно вызывать функции op-конструктора для одного и того же объекта Scope .

Конструкторы и деструкторы

Scope (const Scope & other)
~Scope ()

Общественные функции

ClearColocation () const
Снимите все ограничения на совместное размещение.
ColocateWith (const Operation & op) const
Вернуть новую область.
ColocateWith (const Output & out) const
Функция удобства выше.
ExitOnError () const
Вернуть новую область.
GetCompositeOpScopes (const string & composite_op_name) const
GetUniqueNameForOp (const string & default_name) const
string
Возвращает уникальное имя, используя default_name, если имя операции не указано.
NewSubScope (const string & child_scope_name) const
Вернуть новую область.
ToGraphDef (GraphDef *gdef) const
Если status() — это Status::OK(), преобразуйте объект Graph, хранящийся в этой области, в прототип GraphDef и верните Status::OK().
UpdateStatus (const Status s) const
void
Обновите статус в этой области.
WithAssignedDevice (const string & assigned_device) const
Возвращает новую область.
WithControlDependencies (const gtl::ArraySlice< Operation > & control_deps) const
Вернуть новую область.
WithControlDependencies (const Output & control_dep) const
То же, что и выше, но удобно добавить зависимость управления от операции, производящей вывод control_dep.
WithDevice (const string & device) const
Вернуть новую область.
WithKernelLabel (const string & kernel_label) const
Вернуть новую область.
WithNoControlDependencies () const
Вернуть новую область.
WithOpName (Ty... fragments) const
Вернуть новую область.
WithXlaCluster (const string & xla_cluster) const
Возвращает новую область.
control_deps () const
const std::vector< Operation > &
graph () const
Graph *
graph_as_shared_ptr () const
std::shared_ptr< Graph >
ok () const
bool
operator= (const Scope & other)
status () const

Публичные статические функции

NewRootScope ()
Вернуть новую область.

Общественные функции

ClearColocation

Scope ClearColocation() const 

Снимите все ограничения на совместное размещение.

Совместно с

Scope ColocateWith(
  const Operation & op
) const 

Вернуть новую область.

Все операции, созданные в возвращаемой области, будут размещены на том же устройстве, где находится операция. ПРИМЕЧАНИЕ. Эта функция предназначена для использования внутренних библиотек только для управления размещением операций на устройствах. Публичное использование не рекомендуется, поскольку реализация размещения устройств может быть изменена.

Совместно с

Scope ColocateWith(
  const Output & out
) const 

Функция удобства выше.

Выход при ошибке

Scope ExitOnError() const 

Вернуть новую область.

Функции op-конструктора, принимающие возвращенную область в качестве аргумента области, завершатся, как только будет обнаружена ошибка, вместо того, чтобы устанавливать статус в области.

GetCompositeOpScopes

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 

GetUniqueNameForOp

string GetUniqueNameForOp(
  const string & default_name
) const 

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

NewSubScope

Scope NewSubScope(
  const string & child_scope_name
) const 

Вернуть новую область.

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

Сфера

 Scope(
  const Scope & other
)

ТоГрафДеф

Status ToGraphDef(
  GraphDef *gdef
) const 

Если status() — это Status::OK(), преобразуйте объект Graph, хранящийся в этой области, в прототип GraphDef и верните Status::OK().

В противном случае верните статус ошибки как есть, не выполняя преобразование GraphDef.

Обновить состояние

void UpdateStatus(
  const Status s
) const 

Обновите статус в этой области.

Примечание. Объект состояния является общим для всех дочерних элементов этой области. Если результирующее состояние не равно Status::OK() и для этой области задано значение exit_on_error_, эта функция завершается вызовом LOG(FATAL).

С назначенным устройством

Scope WithAssignedDevice(
  const string & assigned_device
) const 

Возвращает новую область.

Для всех операций, созданных в пределах возвращаемой области, assigned_device устройство будет иметь значениеassign_device .

Витконтролзависимости

Scope WithControlDependencies(
  const gtl::ArraySlice< Operation > & control_deps
) const 

Вернуть новую область.

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

Витконтролзависимости

Scope WithControlDependencies(
  const Output & control_dep
) const 

То же, что и выше, но удобно добавить зависимость управления от операции, производящей вывод control_dep.

с устройством

Scope WithDevice(
  const string & device
) const 

Вернуть новую область.

Для всех операций, созданных в возвращаемой области, в поле устройства будет установлено значение «устройство».

Виткернеллейбл

Scope WithKernelLabel(
  const string & kernel_label
) const 

Вернуть новую область.

Все операции, созданные с новой областью действия, будут иметь kernel_label в качестве значения атрибута _kernel;

Витноконтролзависимости

Scope WithNoControlDependencies() const 

Вернуть новую область.

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

WithOpName

Scope WithOpName(
  Ty... fragments
) const 

Вернуть новую область.

Все операции, созданные в возвращаемой области, будут иметь имена вида name/StrCat(fragments...)[_suffix]

СXlaCluster

Scope WithXlaCluster(
  const string & xla_cluster
) const 

Возвращает новую область.

Для всех операций, созданных в возвращаемой области, атрибут _XlaCluster будет иметь значение xla_cluster .

control_deps

const std::vector< Operation > & control_deps() const 

график

Graph * graph() const 

graph_as_shared_ptr

std::shared_ptr< Graph > graph_as_shared_ptr() const 

Ok

bool ok() const 

оператор=

Scope & operator=(
  const Scope & other
)

статус

Status status() const 

~Область

 ~Scope()

Публичные статические функции

NewRootScope

Scope NewRootScope()

Вернуть новую область.

Это создает новый граф, и все операции, созданные в этом графе, должны использовать возвращенный объект в качестве «корневой» области.