tensorflow:: Alcance

#include <scope.h>

Um objeto Scope representa um conjunto de operações TensorFlow relacionadas que têm as mesmas propriedades, como um prefixo de nome comum.

Resumo

Um objeto Scope é um contêiner para propriedades do TensorFlow Op. Os construtores op obtêm um objeto Scope como um primeiro argumento obrigatório e o op construído adquire as propriedades no objeto.

Um exemplo simples:

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

Hierarquia de escopo :

A classe Scope fornece várias funções With<> que criam um novo escopo. O novo escopo normalmente tem uma propriedade alterada enquanto outras propriedades são herdadas do escopo pai. O método NewSubScope(name) anexa name ao prefixo de nomes para operações criadas dentro do escopo, e WithOpName() altera o sufixo que, de outra forma, é padronizado para o tipo da operação.

Exemplos de nomes:

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"

Vida útil do escopo :

Um novo escopo é criado chamando Scope::NewRootScope . Isso cria alguns recursos que são compartilhados por todos os escopos filho que herdam desse escopo, direta ou transitivamente. Por exemplo, um novo escopo cria um novo objeto Graph ao qual as operações são adicionadas quando o novo escopo ou seus filhos são usados ​​por um construtor Op. O novo escopo também possui um objeto Status que será usado para indicar erros por funções do construtor Op chamadas em qualquer escopo filho. As funções do construtor Op precisam verificar o status do escopo chamando o método ok() antes de prosseguir com a construção do op.

Segurança do fio:

Um objeto Scope NÃO é thread-safe. Threads não podem chamar simultaneamente funções op-constructor no mesmo objeto Scope .

Construtores e Destruidores

Scope (const Scope & other)
~Scope ()

Funções públicas

ClearColocation () const
Limpe todas as restrições de colocation.
ColocateWith (const Operation & op) const
Retornar um novo escopo.
ColocateWith (const Output & out) const
Função de conveniência para acima.
ExitOnError () const
Retornar um novo escopo.
GetCompositeOpScopes (const string & composite_op_name) const
GetUniqueNameForOp (const string & default_name) const
string
Retorne um nome exclusivo, usando default_name se um nome de operação não tiver sido especificado.
NewSubScope (const string & child_scope_name) const
Retornar um novo escopo.
ToGraphDef (GraphDef *gdef) const
Se status() for Status::OK(), converta o objeto Graph armazenado neste escopo em um proto GraphDef e retorne Status::OK().
UpdateStatus (const Status & s) const
void
Atualize o status neste escopo.
WithAssignedDevice (const string & assigned_device) const
Retorna um novo escopo.
WithControlDependencies (const gtl::ArraySlice< Operation > & control_deps) const
Retornar um novo escopo.
WithControlDependencies (const Output & control_dep) const
O mesmo que acima, mas conveniente para adicionar dependência de controle na operação que produz a saída control_dep.
WithDevice (const string & device) const
Retornar um novo escopo.
WithKernelLabel (const string & kernel_label) const
Retornar um novo escopo.
WithNoControlDependencies () const
Retornar um novo escopo.
WithOpName (Ty... fragments) const
Retornar um novo escopo.
WithXlaCluster (const string & xla_cluster) const
Retorna um novo escopo.
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

Funções estáticas públicas

NewRootScope ()
Retornar um novo escopo.

Funções públicas

ClearColocation

Scope ClearColocation() const 

Limpe todas as restrições de colocation.

Colocar com

Scope ColocateWith(
  const Operation & op
) const 

Retornar um novo escopo.

Todas as operações criadas no escopo retornado serão colocadas no dispositivo onde a operação é colocada. NOTA: Esta função destina-se a usar bibliotecas internas apenas para controlar o posicionamento de operações nos dispositivos. O uso público não é incentivado porque a implementação do posicionamento do dispositivo está sujeita a alterações.

Colocar com

Scope ColocateWith(
  const Output & out
) const 

Função de conveniência para acima.

ExitOnError

Scope ExitOnError() const 

Retornar um novo escopo.

As funções op-constructor que recebem o escopo retornado como argumento de escopo serão encerradas assim que um erro for detectado, em vez de definir o status no escopo.

GetCompositeOpScopes

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 

GetUniqueNameForOp

string GetUniqueNameForOp(
  const string & default_name
) const 

Retorne um nome exclusivo, usando default_name se um nome de operação não tiver sido especificado.

NovoSubescopo

Scope NewSubScope(
  const string & child_scope_name
) const 

Retornar um novo escopo.

As operações criadas com este escopo terão name/child_scope_name como prefixo. O nome real será exclusivo no escopo atual. Todas as outras propriedades são herdadas do escopo atual. Se child_scope_name estiver vazio, o / será omitido.

Alcance

 Scope(
  const Scope & other
)

ToGraphDef

Status ToGraphDef(
  GraphDef *gdef
) const 

Se status() for Status::OK(), converta o objeto Graph armazenado neste escopo em um proto GraphDef e retorne Status::OK().

Caso contrário, retorne o status de erro como está sem realizar a conversão GraphDef.

Atualizar o status

void UpdateStatus(
  const Status & s
) const 

Atualize o status neste escopo.

Observação: o objeto de status é compartilhado entre todos os filhos desse escopo. Se o status resultante não for Status::OK() e exit_on_error_ estiver definido neste escopo, essa função será encerrada chamando LOG(FATAL).

Com dispositivo atribuído

Scope WithAssignedDevice(
  const string & assigned_device
) const 

Retorna um novo escopo.

Todas as operações criadas dentro do escopo retornado terão seu dispositivo atribuído definido como assigned_device .

Com dependências de controle

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

Retornar um novo escopo.

Todas as operações criadas dentro do escopo retornado terão como dependências de controle a união das operações no vetor control_deps e as dependências de controle do escopo atual.

Com dependências de controle

Scope WithControlDependencies(
  const Output & control_dep
) const 

O mesmo que acima, mas conveniente para adicionar dependência de controle na operação que produz a saída control_dep.

Com dispositivo

Scope WithDevice(
  const string & device
) const 

Retornar um novo escopo.

Todas as operações criadas no escopo retornado terão o campo de dispositivo definido como 'dispositivo'.

WithKernelLabel

Scope WithKernelLabel(
  const string & kernel_label
) const 

Retornar um novo escopo.

Todas as operações criadas com o novo escopo terão kernel_label como valor para seu atributo '_kernel';

WithNoControlDependências

Scope WithNoControlDependencies() const 

Retornar um novo escopo.

Todas as operações criadas no escopo retornado não terão dependências de controle em outras operações.

WithOpName

Scope WithOpName(
  Ty... fragments
) const 

Retornar um novo escopo.

Todas as operações criadas dentro do escopo retornado terão nomes no formato name/StrCat(fragments...)[_suffix]

WithXlaCluster

Scope WithXlaCluster(
  const string & xla_cluster
) const 

Retorna um novo escopo.

Todas as operações criadas no escopo retornado terão seu atributo _XlaCluster definido como xla_cluster .

control_deps

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

gráfico

Graph * graph() const 

graph_as_shared_ptr

std::shared_ptr< Graph > graph_as_shared_ptr() const 

OK

bool ok() const 

operador=

Scope & operator=(
  const Scope & other
)

status

Status status() const 

~Escopo

 ~Scope()

Funções estáticas públicas

NovoRootScope

Scope NewRootScope()

Retornar um novo escopo.

Isso cria um novo gráfico e todas as operações construídas nesse gráfico devem usar o objeto retornado como escopo "raiz".