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()) { ... }
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"
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) | Scope & |
status () const | Status |
Funzioni statiche pubbliche | |
---|---|
NewRootScope () | Restituire un nuovo ambito. |
Funzioni pubbliche
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.
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
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()) { ... }
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"
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) | Scope & |
status () const | Status |
Funzioni statiche pubbliche | |
---|---|
NewRootScope () | Restituire un nuovo ambito. |
Funzioni pubbliche
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.
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
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".