Aide à protéger la Grande barrière de corail avec tensorflow sur Kaggle Rejoignez Défi

tensorflow :: Portée

#include <scope.h>

Un objet Scope représente un ensemble d'opérations TensorFlow associées qui ont les mêmes propriétés, comme un préfixe de nom commun.

Résumé

Un objet Scope est un conteneur pour les propriétés TensorFlow Op. Les constructeurs op obtiennent un objet Scope comme premier argument obligatoire et l'op construit acquiert les propriétés de l'objet.

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

Hiérarchie des portées :

La classe Scope fournit diverses fonctions With <> qui créent une nouvelle portée. La nouvelle étendue a généralement une propriété modifiée tandis que d'autres propriétés sont héritées de l'étendue parent. La méthode NewSubScope (name) ajoute le name au préfixe des noms pour les opérations créées dans la portée, et WithOpName () modifie le suffixe qui, par défaut, est le type de l'op.

Exemples de noms:

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"

Durée de vie de la portée :

Une nouvelle étendue est créée en appelant Scope :: NewRootScope . Cela crée des ressources qui sont partagées par toutes les étendues enfants qui héritent de cette étendue, directement ou de manière transitoire. Par exemple, une nouvelle étendue crée un nouvel objet Graph auquel des opérations sont ajoutées lorsque la nouvelle étendue ou ses enfants sont utilisés par un constructeur Op. La nouvelle portée a également un objet Status qui sera utilisé pour indiquer les erreurs par les fonctions du constructeur Op appelées sur n'importe quelle portée enfant. Les fonctions du constructeur Op doivent vérifier l'état de la portée en appelant la méthode ok () avant de procéder à la construction de l'op.

Sécurité du fil:

Un objet Scope n'est PAS thread-safe. Les threads ne peuvent pas appeler simultanément des fonctions de constructeur d'opérations sur le même objet Scope .

Constructeurs et destructeurs

Scope (const Scope & other)
~Scope ()

Fonctions publiques

ClearColocation () const
Supprimez toutes les contraintes de colocation.
ColocateWith (const Operation & op) const
Renvoie une nouvelle portée.
ColocateWith (const Output & out) const
Fonction de commodité pour ci-dessus.
ExitOnError () const
Renvoie une nouvelle portée.
GetCompositeOpScopes (const string & composite_op_name) const
GetUniqueNameForOp (const string & default_name) const
string
Renvoie un nom unique, en utilisant default_name si aucun nom d'opération n'a été spécifié.
NewSubScope (const string & child_scope_name) const
Renvoie une nouvelle portée.
ToGraphDef (GraphDef *gdef) const
Si status () est Status :: OK (), convertissez l'objet Graph stocké dans cette étendue en un proto GraphDef et retournez Status :: OK ().
UpdateStatus (const Status & s) const
void
Mettez à jour le statut de cette étendue.
WithAssignedDevice (const string & assigned_device) const
Renvoie une nouvelle portée.
WithControlDependencies (const gtl::ArraySlice< Operation > & control_deps) const
Renvoie une nouvelle portée.
WithControlDependencies (const Output & control_dep) const
Identique à ci-dessus, mais pratique pour ajouter une dépendance de contrôle à l'opération produisant la sortie control_dep.
WithDevice (const string & device) const
Renvoie une nouvelle portée.
WithKernelLabel (const string & kernel_label) const
Renvoie une nouvelle portée.
WithNoControlDependencies () const
Renvoie une nouvelle portée.
WithOpName (Ty... fragments) const
Renvoie une nouvelle portée.
WithXlaCluster (const string & xla_cluster) const
Renvoie une nouvelle portée.
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

Fonctions statiques publiques

NewRootScope ()
Renvoie une nouvelle portée.

Fonctions publiques

ClearColocation

Scope ClearColocation() const 

Supprimez toutes les contraintes de colocation.

Colocate avec

Scope ColocateWith(
  const Operation & op
) const 

Renvoie une nouvelle portée.

Toutes les opérations créées dans la portée renvoyée seront colocalisées sur le périphérique où op est placé. REMARQUE: Cette fonction est destinée à être utilisée uniquement dans les bibliothèques internes pour contrôler le placement des opérations sur les périphériques. L'utilisation publique n'est pas encouragée car la mise en œuvre du placement d'appareils est sujette à changement.

Colocate avec

Scope ColocateWith(
  const Output & out
) const 

Fonction de commodité pour ci-dessus.

ExitOnError

Scope ExitOnError() const 

Renvoie une nouvelle portée.

Les fonctions op-constructor prenant la portée retournée comme argument de portée se termineront dès qu'une erreur est détectée, au lieu de définir le statut sur la portée.

GetCompositeOpScopes

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 

GetUniqueNameForOp

string GetUniqueNameForOp(
  const string & default_name
) const 

Renvoie un nom unique, en utilisant default_name si aucun nom d'opération n'a été spécifié.

NewSubScope

Scope NewSubScope(
  const string & child_scope_name
) const 

Renvoie une nouvelle portée.

Les opérations créées avec cette étendue auront name/child_scope_name comme préfixe. Le nom réel sera unique dans la portée actuelle. Toutes les autres propriétés sont héritées de la portée actuelle. Si child_scope_name est vide, le / est élidé.

Portée

 Scope(
  const Scope & other
)

ToGraphDef

Status ToGraphDef(
  GraphDef *gdef
) const 

Si status () est Status :: OK (), convertissez l'objet Graph stocké dans cette étendue en un proto GraphDef et retournez Status :: OK ().

Sinon, renvoyez l'état d'erreur tel quel sans effectuer la conversion GraphDef.

État de mise à jour

void UpdateStatus(
  const Status & s
) const 

Mettez à jour le statut de cette étendue.

Remarque: l'objet d'état est partagé entre tous les enfants de cette étendue. Si le statut résultant n'est pas Status :: OK () et que exit_on_error_ est défini sur cette étendue, cette fonction se termine en appelant LOG (FATAL).

WithAssignedDevice

Scope WithAssignedDevice(
  const string & assigned_device
) const 

Renvoie une nouvelle portée.

Toutes les opérations créées dans la portée renvoyée verront leur périphérique affecté défini sur assigned_device .

WithControlDependencies

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

Renvoie une nouvelle portée.

Toutes les opérations créées dans la portée retournée auront comme dépendances de contrôle l'union des opérations dans le vecteur control_deps et les dépendances de contrôle de la portée actuelle.

WithControlDependencies

Scope WithControlDependencies(
  const Output & control_dep
) const 

Identique à ci-dessus, mais pratique pour ajouter une dépendance de contrôle à l'opération produisant la sortie control_dep.

WithDevice

Scope WithDevice(
  const string & device
) const 

Renvoie une nouvelle portée.

Toutes les opérations créées dans la portée renvoyée auront le champ de périphérique défini sur `` périphérique ''.

WithKernelLabel

Scope WithKernelLabel(
  const string & kernel_label
) const 

Renvoie une nouvelle portée.

Toutes les opérations créées avec la nouvelle portée auront kernel_label comme valeur pour leur attribut '_kernel';

WithNoControlDependencies

Scope WithNoControlDependencies() const 

Renvoie une nouvelle portée.

Toutes les opérations créées dans la portée renvoyée n'auront aucune dépendance de contrôle sur les autres opérations.

WithOpName

Scope WithOpName(
  Ty... fragments
) const 

Renvoie une nouvelle portée.

Toutes les opérations créées dans la portée renvoyée auront des noms de la forme name/StrCat(fragments...)[_suffix]

AvecXlaCluster

Scope WithXlaCluster(
  const string & xla_cluster
) const 

Renvoie une nouvelle portée.

Toutes les opérations créées dans la portée renvoyée auront leur attribut _XlaCluster défini sur xla_cluster .

control_deps

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

graphique

Graph * graph() const 

graph_as_shared_ptr

std::shared_ptr< Graph > graph_as_shared_ptr() const 

d'accord

bool ok() const 

opérateur =

Scope & operator=(
  const Scope & other
)

statut

Status status() const 

~ Portée

 ~Scope()

Fonctions statiques publiques

NouveauRootScope

Scope NewRootScope()

Renvoie une nouvelle portée.

Cela crée un nouveau graphe et toutes les opérations construites dans ce graphe doivent utiliser l'objet retourné comme portée "racine".