flusso tensoriale:: Scopo

#include <scope.h>

Un oggetto Scope rappresenta un insieme di operazioni TensorFlow correlate che hanno le stesse proprietà come un prefisso di nome comune.

Riepilogo

Un oggetto Scope è un contenitore per le proprietà TensorFlow Op. I costruttori op ottengono un oggetto Scope come primo argomento obbligatorio e l'op costruito acquisisce le proprietà nell'oggetto.

Un semplice esempio:

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

Gerarchia dell'ambito :

La classe Scope fornisce varie funzioni With<> che creano un nuovo ambito. Il nuovo ambito in genere ha una proprietà modificata mentre altre proprietà vengono ereditate dall'ambito padre. Il metodo NewSubScope(name) aggiunge il name al prefisso dei nomi per le operazioni create all'interno dell'ambito e WithOpName() cambia il suffisso che altrimenti assume per impostazione predefinita il tipo di op.

Esempi di nomi:

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"

Durata dell'ambito :

Viene creato un nuovo ambito chiamando Scope::NewRootScope . Ciò crea alcune risorse condivise da tutti gli ambiti figlio che ereditano da questo ambito, direttamente o transitivamente. Ad esempio, un nuovo ambito crea un nuovo oggetto Graph a cui vengono aggiunte le operazioni quando il nuovo ambito oi suoi figli vengono utilizzati da un costruttore Op. Il nuovo ambito ha anche un oggetto Status che verrà utilizzato per indicare gli errori dalle funzioni Op-constructor richiamate su qualsiasi ambito figlio. Le funzioni del costruttore Op devono controllare lo stato dell'ambito chiamando il metodo ok() prima di procedere alla costruzione dell'op.

Sicurezza del filo:

Un oggetto Scope NON è thread-safe. I thread non possono chiamare contemporaneamente funzioni op-constructor sullo stesso oggetto Scope .

Costruttori e Distruttori

Scope (const Scope & other)
~Scope ()

Funzioni pubbliche

ClearColocation () const
Cancella tutti i vincoli di colocation.
ColocateWith (const Operation & op) const
Restituire un nuovo ambito.
ColocateWith (const Output & out) const
Funzione comfort per sopra.
ExitOnError () const
Restituire un nuovo ambito.
GetCompositeOpScopes (const string & composite_op_name) const
GetUniqueNameForOp (const string & default_name) const
string
Restituisce un nome univoco, utilizzando default_name se non è stato specificato un nome operativo.
NewSubScope (const string & child_scope_name) const
Restituire un nuovo ambito.
ToGraphDef (GraphDef *gdef) const
Status
Se status() è Status::OK(), converti l'oggetto Graph memorizzato in questo ambito in un prototipo GraphDef e restituisce Status::OK().
UpdateStatus (const Status & s) const
void
Aggiorna lo stato su questo ambito.
WithAssignedDevice (const string & assigned_device) const
Restituisce un nuovo ambito.
WithControlDependencies (const gtl::ArraySlice< Operation > & control_deps) const
Restituire un nuovo ambito.
WithControlDependencies (const Output & control_dep) const
Come sopra, ma comodo per aggiungere la dipendenza del controllo dall'operazione che produce l'output control_dep.
WithDevice (const string & device) const
Restituire un nuovo ambito.
WithKernelLabel (const string & kernel_label) const
Restituire un nuovo ambito.
WithNoControlDependencies () const
Restituire un nuovo ambito.
WithOpName (Ty... fragments) const
Restituire un nuovo ambito.
WithXlaCluster (const string & xla_cluster) const
Restituisce un nuovo ambito.
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
Status

Funzioni statiche pubbliche

NewRootScope ()
Restituire un nuovo ambito.

Funzioni pubbliche

ClearColocation

Scope ClearColocation() const 

Cancella tutti i vincoli di colocation.

ColocateWith

Scope ColocateWith(
  const Operation & op
) const 

Restituire un nuovo ambito.

Tutte le operazioni create all'interno dell'ambito restituito saranno co-posizionate sul dispositivo in cui si trova l'operazione. NOTA: questa funzione è concepita per utilizzare le librerie interne solo per controllare il posizionamento delle operazioni sui dispositivi. L'uso pubblico non è incoraggiato perché l'implementazione del posizionamento del dispositivo è soggetta a modifiche.

ColocateWith

Scope ColocateWith(
  const Output & out
) const 

Funzione comfort per sopra.

ExitOnError

Scope ExitOnError() const 

Restituire un nuovo ambito.

Le funzioni op-constructor che prendono l'ambito restituito come argomento dell'ambito usciranno non appena viene rilevato un errore, invece di impostare lo stato sull'ambito.

GetCompositeOpScope

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 

GetUniqueNameForOp

string GetUniqueNameForOp(
  const string & default_name
) const 

Restituisce un nome univoco, utilizzando default_name se non è stato specificato un nome operativo.

Nuovo sottoambito

Scope NewSubScope(
  const string & child_scope_name
) const 

Restituire un nuovo ambito.

Le operazioni create con questo ambito avranno name/child_scope_name come prefisso. Il nome effettivo sarà univoco nell'ambito corrente. Tutte le altre proprietà vengono ereditate dall'ambito corrente. Se child_scope_name è vuoto, / viene eliso.

Scopo

 Scope(
  const Scope & other
)

ToGraphDef

Status ToGraphDef(
  GraphDef *gdef
) const 

Se status() è Status::OK(), converti l'oggetto Graph memorizzato in questo ambito in un prototipo GraphDef e restituisce Status::OK().

In caso contrario, restituire lo stato di errore così com'è senza eseguire la conversione di GraphDef.

Aggiorna stato

void UpdateStatus(
  const Status & s
) const 

Aggiorna lo stato su questo ambito.

Nota: l'oggetto stato è condiviso tra tutti i figli di questo ambito. Se lo stato risultante non è Status::OK() e exit_on_error_ è impostato su questo ambito, questa funzione esce chiamando LOG(FATAL).

ConDispositivo Assegnato

Scope WithAssignedDevice(
  const string & assigned_device
) const 

Restituisce un nuovo ambito.

Tutte le operazioni create nell'ambito restituito avranno il dispositivo assigned_device impostato su dispositivo_assegnato.

Con dipendenze di controllo

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

Restituire un nuovo ambito.

Tutte le operazioni create all'interno dell'ambito restituito avranno come dipendenze di controllo l'unione delle operazioni nel vettore control_deps e le dipendenze di controllo dell'ambito corrente.

Con dipendenze di controllo

Scope WithControlDependencies(
  const Output & control_dep
) const 

Come sopra, ma comodo per aggiungere la dipendenza del controllo dall'operazione che produce l'output control_dep.

ConDispositivo

Scope WithDevice(
  const string & device
) const 

Restituire un nuovo ambito.

Tutte le operazioni create nell'ambito restituito avranno il campo del dispositivo impostato su "dispositivo".

Con etichetta Kernel

Scope WithKernelLabel(
  const string & kernel_label
) const 

Restituire un nuovo ambito.

Tutte le operazioni create con il nuovo ambito avranno kernel_label come valore per il loro attributo '_kernel';

WithNoControlDependencies

Scope WithNoControlDependencies() const 

Restituire un nuovo ambito.

Tutte le operazioni create nell'ambito restituito non avranno dipendenze di controllo su altre operazioni.

ConNomeOp

Scope WithOpName(
  Ty... fragments
) const 

Restituire un nuovo ambito.

Tutte le operazioni create all'interno dell'ambito restituito avranno nomi del nome del modulo name/StrCat(fragments...)[_suffix]

ConXlaCluster

Scope WithXlaCluster(
  const string & xla_cluster
) const 

Restituisce un nuovo ambito.

Tutte le operazioni create all'interno dell'ambito restituito avranno l'attributo _XlaCluster impostato su xla_cluster .

control_deps

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

grafico

Graph * graph() const 

grafico_come_ptr_condiviso

std::shared_ptr< Graph > graph_as_shared_ptr() const 

ok

bool ok() const 

operatore=

Scope & operator=(
  const Scope & other
)

stato

Status status() const 

~ Ambito

 ~Scope()

Funzioni statiche pubbliche

NewRootScope

Scope NewRootScope()

Restituire un nuovo ambito.

Questo crea un nuovo grafico e tutte le operazioni costruite in questo grafico dovrebbero usare l'oggetto restituito come ambito "radice".

,

flusso tensoriale:: Scopo

#include <scope.h>

Un oggetto Scope rappresenta un insieme di operazioni TensorFlow correlate che hanno le stesse proprietà come un prefisso di nome comune.

Riepilogo

Un oggetto Scope è un contenitore per le proprietà TensorFlow Op. I costruttori op ottengono un oggetto Scope come primo argomento obbligatorio e l'op costruito acquisisce le proprietà nell'oggetto.

Un semplice esempio:

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

Gerarchia dell'ambito :

La classe Scope fornisce varie funzioni With<> che creano un nuovo ambito. Il nuovo ambito in genere ha una proprietà modificata mentre altre proprietà vengono ereditate dall'ambito padre. Il metodo NewSubScope(name) aggiunge il name al prefisso dei nomi per le operazioni create all'interno dell'ambito e WithOpName() cambia il suffisso che altrimenti assume per impostazione predefinita il tipo di op.

Esempi di nomi:

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"

Durata dell'ambito :

Viene creato un nuovo ambito chiamando Scope::NewRootScope . Ciò crea alcune risorse condivise da tutti gli ambiti figlio che ereditano da questo ambito, direttamente o transitivamente. Ad esempio, un nuovo ambito crea un nuovo oggetto Graph a cui vengono aggiunte le operazioni quando il nuovo ambito oi suoi figli vengono utilizzati da un costruttore Op. Il nuovo ambito ha anche un oggetto Status che verrà utilizzato per indicare gli errori dalle funzioni Op-constructor richiamate su qualsiasi ambito figlio. Le funzioni del costruttore Op devono controllare lo stato dell'ambito chiamando il metodo ok() prima di procedere alla costruzione dell'op.

Sicurezza del filo:

Un oggetto Scope NON è thread-safe. I thread non possono chiamare contemporaneamente funzioni op-constructor sullo stesso oggetto Scope .

Costruttori e Distruttori

Scope (const Scope & other)
~Scope ()

Funzioni pubbliche

ClearColocation () const
Cancella tutti i vincoli di colocation.
ColocateWith (const Operation & op) const
Restituire un nuovo ambito.
ColocateWith (const Output & out) const
Funzione comfort per sopra.
ExitOnError () const
Restituire un nuovo ambito.
GetCompositeOpScopes (const string & composite_op_name) const
GetUniqueNameForOp (const string & default_name) const
string
Restituisce un nome univoco, utilizzando default_name se non è stato specificato un nome operativo.
NewSubScope (const string & child_scope_name) const
Restituire un nuovo ambito.
ToGraphDef (GraphDef *gdef) const
Status
Se status() è Status::OK(), converti l'oggetto Graph memorizzato in questo ambito in un prototipo GraphDef e restituisce Status::OK().
UpdateStatus (const Status & s) const
void
Aggiorna lo stato su questo ambito.
WithAssignedDevice (const string & assigned_device) const
Restituisce un nuovo ambito.
WithControlDependencies (const gtl::ArraySlice< Operation > & control_deps) const
Restituire un nuovo ambito.
WithControlDependencies (const Output & control_dep) const
Come sopra, ma comodo per aggiungere la dipendenza del controllo dall'operazione che produce l'output control_dep.
WithDevice (const string & device) const
Restituire un nuovo ambito.
WithKernelLabel (const string & kernel_label) const
Restituire un nuovo ambito.
WithNoControlDependencies () const
Restituire un nuovo ambito.
WithOpName (Ty... fragments) const
Restituire un nuovo ambito.
WithXlaCluster (const string & xla_cluster) const
Restituisce un nuovo ambito.
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
Status

Funzioni statiche pubbliche

NewRootScope ()
Restituire un nuovo ambito.

Funzioni pubbliche

ClearColocation

Scope ClearColocation() const 

Cancella tutti i vincoli di colocation.

ColocateWith

Scope ColocateWith(
  const Operation & op
) const 

Restituire un nuovo ambito.

Tutte le operazioni create all'interno dell'ambito restituito saranno co-posizionate sul dispositivo in cui si trova l'operazione. NOTA: questa funzione è concepita per utilizzare le librerie interne solo per controllare il posizionamento delle operazioni sui dispositivi. L'uso pubblico non è incoraggiato perché l'implementazione del posizionamento del dispositivo è soggetta a modifiche.

ColocateWith

Scope ColocateWith(
  const Output & out
) const 

Funzione comfort per sopra.

ExitOnError

Scope ExitOnError() const 

Restituire un nuovo ambito.

Le funzioni op-constructor che prendono l'ambito restituito come argomento dell'ambito usciranno non appena viene rilevato un errore, invece di impostare lo stato sull'ambito.

GetCompositeOpScope

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 

GetUniqueNameForOp

string GetUniqueNameForOp(
  const string & default_name
) const 

Restituisce un nome univoco, utilizzando default_name se non è stato specificato un nome operativo.

Nuovo sottoambito

Scope NewSubScope(
  const string & child_scope_name
) const 

Restituire un nuovo ambito.

Le operazioni create con questo ambito avranno name/child_scope_name come prefisso. Il nome effettivo sarà univoco nell'ambito corrente. Tutte le altre proprietà vengono ereditate dall'ambito corrente. Se child_scope_name è vuoto, / viene eliso.

Scopo

 Scope(
  const Scope & other
)

ToGraphDef

Status ToGraphDef(
  GraphDef *gdef
) const 

Se status() è Status::OK(), converti l'oggetto Graph memorizzato in questo ambito in un prototipo GraphDef e restituisce Status::OK().

In caso contrario, restituire lo stato di errore così com'è senza eseguire la conversione di GraphDef.

Aggiorna stato

void UpdateStatus(
  const Status & s
) const 

Aggiorna lo stato su questo ambito.

Nota: l'oggetto stato è condiviso tra tutti i figli di questo ambito. Se lo stato risultante non è Status::OK() e exit_on_error_ è impostato su questo ambito, questa funzione esce chiamando LOG(FATAL).

ConDispositivo Assegnato

Scope WithAssignedDevice(
  const string & assigned_device
) const 

Restituisce un nuovo ambito.

Tutte le operazioni create nell'ambito restituito avranno il dispositivo assigned_device impostato su dispositivo_assegnato.

Con dipendenze di controllo

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

Restituire un nuovo ambito.

Tutte le operazioni create all'interno dell'ambito restituito avranno come dipendenze di controllo l'unione delle operazioni nel vettore control_deps e le dipendenze di controllo dell'ambito corrente.

Con dipendenze di controllo

Scope WithControlDependencies(
  const Output & control_dep
) const 

Come sopra, ma comodo per aggiungere la dipendenza del controllo dall'operazione che produce l'output control_dep.

ConDispositivo

Scope WithDevice(
  const string & device
) const 

Restituire un nuovo ambito.

Tutte le operazioni create nell'ambito restituito avranno il campo del dispositivo impostato su "dispositivo".

Con etichetta Kernel

Scope WithKernelLabel(
  const string & kernel_label
) const 

Restituire un nuovo ambito.

Tutte le operazioni create con il nuovo ambito avranno kernel_label come valore per il loro attributo '_kernel';

WithNoControlDependencies

Scope WithNoControlDependencies() const 

Restituire un nuovo ambito.

Tutte le operazioni create nell'ambito restituito non avranno dipendenze di controllo su altre operazioni.

ConNomeOp

Scope WithOpName(
  Ty... fragments
) const 

Restituire un nuovo ambito.

Tutte le operazioni create all'interno dell'ambito restituito avranno nomi del nome del modulo name/StrCat(fragments...)[_suffix]

ConXlaCluster

Scope WithXlaCluster(
  const string & xla_cluster
) const 

Restituisce un nuovo ambito.

Tutte le operazioni create all'interno dell'ambito restituito avranno l'attributo _XlaCluster impostato su xla_cluster .

control_deps

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

grafico

Graph * graph() const 

grafico_come_ptr_condiviso

std::shared_ptr< Graph > graph_as_shared_ptr() const 

ok

bool ok() const 

operatore=

Scope & operator=(
  const Scope & other
)

stato

Status status() const 

~ Ambito

 ~Scope()

Funzioni statiche pubbliche

NewRootScope

Scope NewRootScope()

Restituire un nuovo ambito.

Questo crea un nuovo grafico e tutte le operazioni costruite in questo grafico dovrebbero usare l'oggetto restituito come ambito "radice".