Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Tensorflow :: Umfang

#include <scope.h>

Ein Scope Objekt repräsentiert eine Reihe verwandter TensorFlow-Operationen, die dieselben Eigenschaften haben, z. B. ein gemeinsames Namenspräfix.

Zusammenfassung

Ein Scope- Objekt ist ein Container für TensorFlow Op-Eigenschaften. Op-Konstruktoren erhalten ein Scope- Objekt als obligatorisches erstes Argument, und das konstruierte op erhält die Eigenschaften im Objekt.

Ein einfaches Beispiel:

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

Umfangshierarchie :

Die Scope- Klasse bietet verschiedene With <> -Funktionen, mit denen ein neuer Bereich erstellt wird. Im neuen Bereich wird normalerweise eine Eigenschaft geändert, während andere Eigenschaften vom übergeordneten Bereich geerbt werden. Die NewSubScope (name) -Methode hängt den name an das Präfix der Namen für Operationen an, die innerhalb des Bereichs erstellt wurden, und WithOpName () ändert das Suffix, das ansonsten standardmäßig den Typ der Operation verwendet .

Namensbeispiele:

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"

Anwendungsbereich Lebensdauer:

Ein neuer Bereich wird durch Aufrufen von Scope :: NewRootScope erstellt . Dadurch werden einige Ressourcen erstellt, die von allen untergeordneten Bereichen, die direkt oder transitiv von diesem Bereich erben, gemeinsam genutzt werden. Beispielsweise erstellt ein neuer Bereich ein neues Diagrammobjekt, dem Operationen hinzugefügt werden, wenn der neue Bereich oder seine untergeordneten Elemente von einem Op-Konstruktor verwendet werden. Der neue Bereich verfügt auch über ein Status- Objekt, mit dem Fehler von Op-Konstruktor-Funktionen angezeigt werden, die für einen untergeordneten Bereich aufgerufen werden. Die Op-Konstruktor-Funktionen müssen den Status des Bereichs überprüfen, indem sie die ok () -Methode aufrufen, bevor sie mit der Erstellung des Op fortfahren.

Gewindesicherheit:

Ein Scope Objekt ist NICHT threadsicher. Threads können nicht gleichzeitig Op-Konstruktor-Funktionen für dasselbe Scope Objekt aufrufen.

Konstruktoren und Destruktoren

Scope (const Scope & other)
~Scope ()

Öffentliche Funktionen

ClearColocation () const
Löschen Sie alle Colocation-Einschränkungen.
ColocateWith (const Operation & op) const
Geben Sie einen neuen Bereich zurück.
ColocateWith (const Output & out) const
Komfortfunktion für oben.
ExitOnError () const
Geben Sie einen neuen Bereich zurück.
GetCompositeOpScopes (const string & composite_op_name) const
GetUniqueNameForOp (const string & default_name) const
string
Geben Sie einen eindeutigen Namen mit default_name zurück, wenn kein Op-Name angegeben wurde.
NewSubScope (const string & child_scope_name) const
Geben Sie einen neuen Bereich zurück.
ToGraphDef (GraphDef *gdef) const
Wenn status () Status :: OK () ist, konvertieren Sie das in diesem Bereich gespeicherte Graph-Objekt in ein GraphDef-Proto und geben Sie Status :: OK () zurück.
UpdateStatus (const Status & s) const
void
Aktualisieren Sie den Status dieses Bereichs.
WithAssignedDevice (const string & assigned_device) const
Gibt einen neuen Bereich zurück.
WithControlDependencies (const gtl::ArraySlice< Operation > & control_deps) const
Geben Sie einen neuen Bereich zurück.
WithControlDependencies (const Output & control_dep) const
Wie oben, jedoch praktisch, um die Steuerungsabhängigkeit von der Operation hinzuzufügen, die die Ausgabe control_dep erzeugt.
WithDevice (const string & device) const
Geben Sie einen neuen Bereich zurück.
WithKernelLabel (const string & kernel_label) const
Geben Sie einen neuen Bereich zurück.
WithNoControlDependencies () const
Geben Sie einen neuen Bereich zurück.
WithOpName (Ty... fragments) const
Geben Sie einen neuen Bereich zurück.
WithXlaCluster (const string & xla_cluster) const
Gibt einen neuen Bereich zurück.
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

Öffentliche statische Funktionen

NewRootScope ()
Geben Sie einen neuen Bereich zurück.

Öffentliche Funktionen

ClearColocation

Scope ClearColocation() const 

Löschen Sie alle Colocation-Einschränkungen.

ColocateWith

Scope ColocateWith(
  const Operation & op
) const 

Geben Sie einen neuen Bereich zurück.

Alle im zurückgegebenen Bereich erstellten Operationen befinden sich auf dem Gerät, auf dem die Operation platziert ist. HINWEIS: Diese Funktion dient nur zur Verwendung interner Bibliotheken zur Steuerung der Platzierung von Operationen auf Geräten. Die öffentliche Nutzung wird nicht empfohlen, da sich die Implementierung der Geräteplatzierung ändern kann.

ColocateWith

Scope ColocateWith(
  const Output & out
) const 

Komfortfunktion für oben.

ExitOnError

Scope ExitOnError() const 

Geben Sie einen neuen Bereich zurück.

Die op-Konstruktorfunktionen, die den zurückgegebenen Bereich als Bereichsargument verwenden, werden beendet, sobald ein Fehler erkannt wird, anstatt den Status für den Bereich festzulegen.

GetCompositeOpScopes

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 

GetUniqueNameForOp

string GetUniqueNameForOp(
  const string & default_name
) const 

Geben Sie einen eindeutigen Namen mit default_name zurück, wenn kein Op-Name angegeben wurde.

NewSubScope

Scope NewSubScope(
  const string & child_scope_name
) const 

Geben Sie einen neuen Bereich zurück.

Operationen, die mit diesem Bereich erstellt wurden, haben den name/child_scope_name als Präfix. Der tatsächliche Name ist im aktuellen Bereich eindeutig. Alle anderen Eigenschaften werden vom aktuellen Bereich übernommen. Wenn child_scope_name leer ist, wird das / entfernt.

Umfang

 Scope(
  const Scope & other
)

ToGraphDef

Status ToGraphDef(
  GraphDef *gdef
) const 

Wenn status () Status :: OK () ist, konvertieren Sie das in diesem Bereich gespeicherte Graph-Objekt in ein GraphDef-Proto und geben Sie Status :: OK () zurück.

Andernfalls geben Sie den Fehlerstatus unverändert zurück, ohne eine GraphDef-Konvertierung durchzuführen.

Update Status

void UpdateStatus(
  const Status & s
) const 

Aktualisieren Sie den Status dieses Bereichs.

Hinweis: Das Statusobjekt wird von allen untergeordneten Elementen dieses Bereichs gemeinsam genutzt. Wenn der resultierende Status nicht Status :: OK () ist und exit_on_error_ für diesen Bereich festgelegt ist, wird diese Funktion durch Aufrufen von LOG (FATAL) beendet.

WithAssignedDevice

Scope WithAssignedDevice(
  const string & assigned_device
) const 

Gibt einen neuen Bereich zurück.

Alle Ops innerhalb des zurückgegebenen Bereich erstellt wird ihnen zugewiesenen Gerät eingestellt haben assigned_device .

WithControlDependencies

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

Geben Sie einen neuen Bereich zurück.

Alle im zurückgegebenen Bereich erstellten Operationen haben als Steuerungsabhängigkeiten die Vereinigung von Operationen im Vektor control_deps und die Steuerungsabhängigkeiten des aktuellen Bereichs.

WithControlDependencies

Scope WithControlDependencies(
  const Output & control_dep
) const 

Wie oben, jedoch praktisch, um die Steuerungsabhängigkeit von der Operation hinzuzufügen, die die Ausgabe control_dep erzeugt.

WithDevice

Scope WithDevice(
  const string & device
) const 

Geben Sie einen neuen Bereich zurück.

Bei allen im zurückgegebenen Bereich erstellten Operationen wird das Gerätefeld auf "Gerät" gesetzt.

WithKernelLabel

Scope WithKernelLabel(
  const string & kernel_label
) const 

Geben Sie einen neuen Bereich zurück.

Alle mit dem neuen Bereich erstellten Operationen haben kernel_label als Wert für ihr Attribut '_kernel'.

WithNoControlDependencies

Scope WithNoControlDependencies() const 

Geben Sie einen neuen Bereich zurück.

Alle im zurückgegebenen Bereich erstellten Operationen haben keine Kontrollabhängigkeiten von anderen Vorgängen.

WithOpName

Scope WithOpName(
  Ty... fragments
) const 

Geben Sie einen neuen Bereich zurück.

Alle im zurückgegebenen Bereich erstellten name/StrCat(fragments...)[_suffix] haben Namen des Formularnamens name/StrCat(fragments...)[_suffix]

WithXlaCluster

Scope WithXlaCluster(
  const string & xla_cluster
) const 

Gibt einen neuen Bereich zurück.

Für alle im zurückgegebenen Bereich erstellten Operationen wird das Attribut xla_cluster auf xla_cluster .

control_deps

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

Graph

Graph * graph() const 

graph_as_shared_ptr

std::shared_ptr< Graph > graph_as_shared_ptr() const 

OK

bool ok() const 

Operator =

Scope & operator=(
  const Scope & other
)

Status

Status status() const 

~ Geltungsbereich

 ~Scope()

Öffentliche statische Funktionen

NewRootScope

Scope NewRootScope()

Geben Sie einen neuen Bereich zurück.

Dadurch wird ein neues Diagramm erstellt, und alle in diesem Diagramm erstellten Operationen sollten das zurückgegebene Objekt als "Root" -Bereich verwenden.