tensorflow :: Alcance
#include <scope.h>
Un objeto Scope
representa un conjunto de operaciones de TensorFlow relacionadas que tienen las mismas propiedades, como un prefijo de nombre común.
Resumen
Un objeto Scope es un contenedor de propiedades de TensorFlow Op. Los constructores de operaciones obtienen un objeto Scope como primer argumento obligatorio y la operación construida adquiere las propiedades del objeto.
Un ejemplo simple:
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()) { ... }
Jerarquía de alcance :
La clase Scope proporciona varias funciones With <> que crean un nuevo ámbito. El nuevo ámbito normalmente tiene una propiedad cambiada mientras que otras propiedades se heredan del ámbito principal. El método NewSubScope (name) agrega el name
al prefijo de los nombres de las operaciones creadas dentro del alcance, y WithOpName () cambia el sufijo que, de lo contrario, se establece de forma predeterminada en el tipo de la operación.
Ejemplos de nombres:
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"
Se crea un nuevo ámbito llamando a Scope :: NewRootScope . Esto crea algunos recursos que son compartidos por todos los ámbitos secundarios que heredan de este ámbito, de forma directa o transitiva. Por ejemplo, un nuevo alcance crea un nuevo objeto Graph al que se agregan operaciones cuando un constructor Op utiliza el nuevo alcance o sus hijos. El nuevo alcance también tiene un objeto de estado que se usará para indicar errores por las funciones del constructor de operaciones llamadas en cualquier alcance secundario. Las funciones del constructor de operaciones tienen que verificar el estado del alcance llamando al método ok () antes de proceder a construir la operación.
Seguridad del hilo:
Un objeto Scope
NO es seguro para subprocesos. Los subprocesos no pueden llamar simultáneamente funciones op-constructor en el mismo objeto Scope
.
Constructores y Destructores | |
---|---|
Scope (const Scope & other) | |
~Scope () |
Funciones publicas | |
---|---|
ClearColocation () const | Elimine todas las restricciones de colocación. |
ColocateWith (const Operation & op) const | Devuelve un nuevo alcance. |
ColocateWith (const Output & out) const | Función de conveniencia para arriba. |
ExitOnError () const | Devuelve un nuevo alcance. |
GetCompositeOpScopes (const string & composite_op_name) const | |
GetUniqueNameForOp (const string & default_name) const | string Devuelve un nombre único, utilizando default_name si no se ha especificado un nombre de operación. |
NewSubScope (const string & child_scope_name) const | Devuelve un nuevo alcance. |
ToGraphDef (GraphDef *gdef) const | Si status () es Status :: OK (), convierta el objeto Graph almacenado en este alcance en un proto GraphDef y devuelva Status :: OK (). |
UpdateStatus (const Status & s) const | void Actualice el estado de este ámbito. |
WithAssignedDevice (const string & assigned_device) const | Devuelve un nuevo alcance. |
WithControlDependencies (const gtl::ArraySlice< Operation > & control_deps) const | Devuelve un nuevo alcance. |
WithControlDependencies (const Output & control_dep) const | Igual que el anterior, pero conveniente para agregar dependencia de control en la operación que produce la salida control_dep. |
WithDevice (const string & device) const | Devuelve un nuevo alcance. |
WithKernelLabel (const string & kernel_label) const | Devuelve un nuevo alcance. |
WithNoControlDependencies () const | Devuelve un nuevo alcance. |
WithOpName (Ty... fragments) const | Devuelve un nuevo alcance. |
WithXlaCluster (const string & xla_cluster) const | Devuelve un nuevo alcance. |
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 |
Funciones estáticas públicas | |
---|---|
NewRootScope () | Devuelve un nuevo alcance. |
Funciones publicas
Colocate con
Scope ColocateWith( const Operation & op ) const
Devuelve un nuevo alcance.
Todas las operaciones creadas dentro del alcance devuelto se ubicarán en el dispositivo donde se coloca la operación. NOTA: Esta función está destinada a utilizar bibliotecas internas solo para controlar la ubicación de operaciones en dispositivos. No se recomienda el uso público porque la implementación de la ubicación del dispositivo está sujeta a cambios.
ExitOnError
Scope ExitOnError() const
Devuelve un nuevo alcance.
Las funciones del constructor de operaciones que toman el alcance devuelto como argumento del alcance saldrán tan pronto como se detecte un error, en lugar de establecer el estado en el alcance.
GetCompositeOpScopes
CompositeOpScopes GetCompositeOpScopes( const string & composite_op_name ) const
GetUniqueNameForOp
string GetUniqueNameForOp( const string & default_name ) const
Devuelve un nombre único, utilizando default_name si no se ha especificado un nombre de operación.
NewSubScope
Scope NewSubScope( const string & child_scope_name ) const
Devuelve un nuevo alcance.
Las operaciones creadas con este alcance tendrán name/child_scope_name
como prefijo. El nombre real será único en el ámbito actual. Todas las demás propiedades se heredan del ámbito actual. Si child_scope_name
está vacío, /
se elimina.
Alcance
Scope( const Scope & other )
ToGraphDef
Status ToGraphDef( GraphDef *gdef ) const
Si status () es Status :: OK (), convierta el objeto Graph almacenado en este alcance en un proto GraphDef y devuelva Status :: OK ().
De lo contrario, devuelva el estado de error tal cual sin realizar la conversión GraphDef.
Estado de actualización
void UpdateStatus( const Status & s ) const
Actualice el estado de este ámbito.
Nota: El objeto de estado se comparte entre todos los elementos secundarios de este ámbito. Si el estado resultante no es Status :: OK () y exit_on_error_ está configurado en este ámbito, esta función sale llamando a LOG (FATAL).
WithAssignedDevice
Scope WithAssignedDevice( const string & assigned_device ) const
Devuelve un nuevo alcance.
Todas las operaciones creadas dentro del alcance devuelto tendrán su dispositivo asignado configurado como dispositivo assigned_device
.
WithControlDependencies
Scope WithControlDependencies( const gtl::ArraySlice< Operation > & control_deps ) const
Devuelve un nuevo alcance.
Todas las operaciones creadas dentro del alcance devuelto tendrán como dependencias de control la unión de operaciones en el vector control_deps y las dependencias de control del alcance actual.
WithControlDependencies
Scope WithControlDependencies( const Output & control_dep ) const
Igual que el anterior, pero conveniente para agregar dependencia de control en la operación que produce la salida control_dep.
WithDevice
Scope WithDevice( const string & device ) const
Devuelve un nuevo alcance.
Todas las operaciones creadas dentro del alcance devuelto tendrán el campo del dispositivo configurado como 'dispositivo'.
WithKernelLabel
Scope WithKernelLabel( const string & kernel_label ) const
Devuelve un nuevo alcance.
Todas las operaciones creadas con el nuevo alcance tendrán kernel_label como valor para su atributo '_kernel';
WithNoControlDependencies
Scope WithNoControlDependencies() const
Devuelve un nuevo alcance.
Todas las operaciones creadas dentro del alcance devuelto no tendrán dependencias de control en otras operaciones.
WithOpName
Scope WithOpName( Ty... fragments ) const
Devuelve un nuevo alcance.
Todas las operaciones creadas dentro del alcance devuelto tendrán nombres del formulario name/StrCat(fragments...)[_suffix]
WithXlaCluster
Scope WithXlaCluster( const string & xla_cluster ) const
Devuelve un nuevo alcance.
Todas las operaciones creadas dentro del alcance devuelto tendrán su atributo _XlaCluster establecido en xla_cluster
.
control_deps
const std::vector< Operation > & control_deps() const
grafico
Graph * graph() const
graph_as_shared_ptr
std::shared_ptr< Graph > graph_as_shared_ptr() const
Okay
bool ok() const
estado
Status status() const
~ Alcance
~Scope()
Funciones estáticas públicas
NewRootScope
Scope NewRootScope()
Devuelve un nuevo alcance.
Esto crea un nuevo gráfico y todas las operaciones construidas en este gráfico deben usar el objeto devuelto como alcance "raíz".