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 TensorFlow Op. Os construtores Op obtêm um objeto Scope como um primeiro argumento obrigatório e o op construído adquire as propriedades do 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 ops criados dentro do escopo, e WithOpName () altera o sufixo que de outra forma é padronizado para o tipo de op.

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 filhos 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 tem um objeto Status que será usado para indicar erros pelas 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 continuar a construir o op.

Segurança da linha:

Um objeto Scope NÃO é seguro para threads. Threads não podem chamar simultaneamente funções de construtor operacional 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
Retorne um novo escopo.
ColocateWith (const Output & out) const
Função de conveniência acima.
ExitOnError () const
Retorne 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
Retorne um novo escopo.
ToGraphDef (GraphDef *gdef) const
Se status () for Status :: OK (), converta o objeto Graph armazenado neste escopo para 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
Retorne um novo escopo.
WithControlDependencies (const Output & control_dep) const
Igual ao anterior, mas conveniente para adicionar dependência de controle na operação que produz a saída control_dep.
WithDevice (const string & device) const
Retorne um novo escopo.
WithKernelLabel (const string & kernel_label) const
Retorne um novo escopo.
WithNoControlDependencies () const
Retorne um novo escopo.
WithOpName (Ty... fragments) const
Retorne 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 ()
Retorne um novo escopo.

Funções públicas

ClearColocation

Scope ClearColocation() const 

Limpe todas as restrições de colocation.

ColocateWith

Scope ColocateWith(
  const Operation & op
) const 

Retorne um novo escopo.

Todos os ops criados dentro do escopo retornado serão colocados no dispositivo onde o op está colocado. NOTA: Esta função deve ser usada apenas para bibliotecas internas para controlar a colocação de ops nos dispositivos. O uso público não é encorajado porque a implementação do posicionamento do dispositivo está sujeita a alterações.

ColocateWith

Scope ColocateWith(
  const Output & out
) const 

Função de conveniência acima.

ExitOnError

Scope ExitOnError() const 

Retorne um novo escopo.

As funções do construtor operacional que tomam o escopo retornado como o argumento do escopo sairão 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.

NewSubScope

Scope NewSubScope(
  const string & child_scope_name
) const 

Retorne um novo escopo.

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

Alcance

 Scope(
  const Scope & other
)

ToGraphDef

Status ToGraphDef(
  GraphDef *gdef
) const 

Se status () for Status :: OK (), converta o objeto Graph armazenado neste escopo para 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.

Nota: O objeto de status é compartilhado entre todos os filhos deste escopo. Se o status resultante não for Status :: OK () e exit_on_error_ for definido neste escopo, esta função sai chamando LOG (FATAL).

WithAssignedDevice

Scope WithAssignedDevice(
  const string & assigned_device
) const 

Retorna um novo escopo.

Todos os ops criados no âmbito retornou terá seu dispositivo atribuído definido para assigned_device .

WithControlDependencies

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

Retorne um novo escopo.

Todos os ops criados dentro do escopo retornado terão como dependências de controle a união de operações no vetor control_deps e as dependências de controle do escopo atual.

WithControlDependencies

Scope WithControlDependencies(
  const Output & control_dep
) const 

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

WithDevice

Scope WithDevice(
  const string & device
) const 

Retorne um novo escopo.

Todos os ops criados dentro do escopo retornado terão o campo do dispositivo definido como 'dispositivo'.

WithKernelLabel

Scope WithKernelLabel(
  const string & kernel_label
) const 

Retorne um novo escopo.

Todos os ops criados com o novo escopo terão kernel_label como valor para seu atributo '_kernel';

WithNoControlDependencies

Scope WithNoControlDependencies() const 

Retorne um novo escopo.

Todos os ops criados dentro do escopo retornado não terão dependências de controle em outras operações.

WithOpName

Scope WithOpName(
  Ty... fragments
) const 

Retorne um novo escopo.

Todos os ops criados 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.

Todos os ops criados dentro do 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 

~ Âmbito

 ~Scope()

Funções estáticas públicas

NewRootScope

Scope NewRootScope()

Retorne um novo escopo.

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