टेंसरफ़्लो:: दायरा

#include <scope.h>

एक Scope ऑब्जेक्ट संबंधित TensorFlow ऑप्स के एक सेट का प्रतिनिधित्व करता है जिसमें समान गुण होते हैं जैसे कि एक सामान्य नाम उपसर्ग।

सारांश

स्कोप ऑब्जेक्ट TensorFlow Op गुणों के लिए एक कंटेनर है। ऑप कंस्ट्रक्टर्स को एक अनिवार्य पहले तर्क के रूप में एक स्कोप ऑब्जेक्ट मिलता है और निर्मित ऑप ऑब्जेक्ट में गुण प्राप्त करता है।

एक साधारण उदाहरण:

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

कार्यक्षेत्र पदानुक्रम:

स्कोप क्लास विभिन्न विथ<> फंक्शन प्रदान करता है जो एक नया स्कोप बनाते हैं। नए दायरे में आम तौर पर एक संपत्ति बदल जाती है जबकि अन्य गुण मूल दायरे से विरासत में मिलते हैं। NewSubScope( name ) मेथड स्कोप के भीतर बनाए गए ops के नामों के उपसर्ग में नाम जोड़ता है, और WithOpName () प्रत्यय को बदल देता है जो अन्यथा op के प्रकार के लिए डिफ़ॉल्ट होता है।

नाम उदाहरण:

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"

दायरा जीवनकाल:

Scope::NewRootScope को कॉल करके एक नया स्कोप बनाया जाता है। यह कुछ ऐसे संसाधन बनाता है जो सभी चाइल्ड स्कोप द्वारा साझा किए जाते हैं जो इस दायरे से सीधे या संक्रमणीय रूप से प्राप्त होते हैं। उदाहरण के लिए, एक नया स्कोप एक नया ग्राफ़ ऑब्जेक्ट बनाता है जिसमें ऑप कंस्ट्रक्टर द्वारा नए स्कोप या उसके बच्चों का उपयोग करने पर ऑपरेशन जोड़े जाते हैं। नए स्कोप में एक स्टेटस ऑब्जेक्ट भी होता है जिसका उपयोग किसी भी चाइल्ड स्कोप पर बुलाए गए ओप-कंस्ट्रक्टर फ़ंक्शंस द्वारा त्रुटियों को इंगित करने के लिए किया जाएगा। ऑप-कंस्ट्रक्टर फ़ंक्शंस को ऑप का निर्माण करने के लिए आगे बढ़ने से पहले ओके () विधि को कॉल करके स्कोप की स्थिति की जाँच करनी होती है।

धागा सुरक्षा:

एक Scope ऑब्जेक्ट थ्रेड-सुरक्षित नहीं है। थ्रेड समवर्ती रूप से एक ही Scope ऑब्जेक्ट पर op-constructor फ़ंक्शन को कॉल नहीं कर सकते हैं।

निर्माता और विनाशक

Scope (const Scope & other)
~Scope ()

सार्वजनिक समारोह

ClearColocation () const
सभी कोलोकेशन बाधाओं को साफ़ करें।
ColocateWith (const Operation & op) const
एक नया दायरा लौटाएं।
ColocateWith (const Output & out) const
ऊपर के लिए सुविधा समारोह।
ExitOnError () const
एक नया दायरा लौटाएं।
GetCompositeOpScopes (const string & composite_op_name) const
GetUniqueNameForOp (const string & default_name) const
string
यदि कोई op नाम निर्दिष्ट नहीं किया गया है, तो default_name का उपयोग करके एक अद्वितीय नाम लौटाएं।
NewSubScope (const string & child_scope_name) const
एक नया दायरा लौटाएं।
ToGraphDef (GraphDef *gdef) const
यदि स्थिति () स्थिति :: ठीक () है, तो इस दायरे में संग्रहीत ग्राफ़ ऑब्जेक्ट को ग्राफ़डिफ़ प्रोटो में परिवर्तित करें और स्थिति :: ठीक () वापस करें।
UpdateStatus (const Status & s) const
void
इस दायरे में स्थिति अपडेट करें।
WithAssignedDevice (const string & assigned_device) const
एक नया दायरा लौटाता है।
WithControlDependencies (const gtl::ArraySlice< Operation > & control_deps) const
एक नया दायरा लौटाएं।
WithControlDependencies (const Output & control_dep) const
ऊपर के समान, लेकिन control_dep आउटपुट उत्पन्न करने वाले ऑपरेशन पर नियंत्रण निर्भरता जोड़ने के लिए सुविधाजनक है।
WithDevice (const string & device) const
एक नया दायरा लौटाएं।
WithKernelLabel (const string & kernel_label) const
एक नया दायरा लौटाएं।
WithNoControlDependencies () const
एक नया दायरा लौटाएं।
WithOpName (Ty... fragments) const
एक नया दायरा लौटाएं।
WithXlaCluster (const string & xla_cluster) const
एक नया दायरा लौटाता है।
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

सार्वजनिक स्थैतिक कार्य

NewRootScope ()
एक नया दायरा लौटाएं।

सार्वजनिक समारोह

क्लियरकोलोकेशन

Scope ClearColocation() const 

सभी कोलोकेशन बाधाओं को साफ़ करें।

कोलोकेटविथ

Scope ColocateWith(
  const Operation & op
) const 

एक नया दायरा लौटाएं।

लौटाए गए दायरे के भीतर बनाए गए सभी ऑप्स उस डिवाइस पर सह-स्थित होंगे जहां सेशन रखा गया है। नोट: इस फ़ंक्शन का उद्देश्य केवल उपकरणों पर ऑप्स की नियुक्ति को नियंत्रित करने के लिए आंतरिक पुस्तकालयों का उपयोग करना है। सार्वजनिक उपयोग को प्रोत्साहित नहीं किया जाता है क्योंकि डिवाइस प्लेसमेंट का कार्यान्वयन परिवर्तन के अधीन है।

कोलोकेटविथ

Scope ColocateWith(
  const Output & out
) const 

ऊपर के लिए सुविधा समारोह।

ExitOnError

Scope ExitOnError() const 

एक नया दायरा लौटाएं।

स्कोप तर्क के रूप में लौटाए गए स्कोप को लेने वाले ऑप-कन्स्ट्रक्टर फ़ंक्शन, जैसे ही त्रुटि का पता चलता है, स्कोप पर स्थिति सेट करने के बजाय बाहर निकल जाएगा।

GetCompositeOpScopes

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 

GetUniqueNameForOp

string GetUniqueNameForOp(
  const string & default_name
) const 

यदि कोई op नाम निर्दिष्ट नहीं किया गया है, तो default_name का उपयोग करके एक अद्वितीय नाम लौटाएं।

न्यूसबस्कोप

Scope NewSubScope(
  const string & child_scope_name
) const 

एक नया दायरा लौटाएं।

इस दायरे से बनाए गए ऑप्स में उपसर्ग के रूप में name/child_scope_name होगा। वर्तमान दायरे में वास्तविक नाम अद्वितीय होगा। अन्य सभी गुण वर्तमान दायरे से विरासत में मिले हैं। यदि child_scope_name खाली है, तो / को हटा दिया जाता है।

दायरा

 Scope(
  const Scope & other
)

ToGraphDef

Status ToGraphDef(
  GraphDef *gdef
) const 

यदि स्थिति () स्थिति :: ठीक () है, तो इस दायरे में संग्रहीत ग्राफ़ ऑब्जेक्ट को ग्राफ़डिफ़ प्रोटो में परिवर्तित करें और स्थिति :: ठीक () वापस करें।

अन्यथा, ग्राफ़डिफ़ रूपांतरण किए बिना त्रुटि स्थिति लौटाएं।

नवीनतम स्थिति

void UpdateStatus(
  const Status & s
) const 

इस दायरे में स्थिति अपडेट करें।

नोट: इस दायरे के सभी बच्चों के बीच स्थिति वस्तु साझा की जाती है। यदि परिणामी स्थिति Status::OK() नहीं है और exit_on_error_ इस दायरे पर सेट है, तो यह फ़ंक्शन LOG(FATAL) को कॉल करके बाहर निकल जाता है।

असाइन किए गए डिवाइस के साथ

Scope WithAssignedDevice(
  const string & assigned_device
) const 

एक नया दायरा लौटाता है।

लौटाए गए दायरे के भीतर बनाए गए सभी ऑप्स में उनका assigned_device किया गया डिवाइस असाइन_डिवाइस पर सेट होगा।

नियंत्रण निर्भरता के साथ

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

एक नया दायरा लौटाएं।

लौटाए गए दायरे के भीतर बनाए गए सभी ऑप्स में नियंत्रण निर्भरता के रूप में control_deps वेक्टर में संचालन का संघ और वर्तमान दायरे की नियंत्रण निर्भरताएं होंगी।

नियंत्रण निर्भरता के साथ

Scope WithControlDependencies(
  const Output & control_dep
) const 

ऊपर के समान, लेकिन control_dep आउटपुट उत्पन्न करने वाले ऑपरेशन पर नियंत्रण निर्भरता जोड़ने के लिए सुविधाजनक है।

डिवाइस के साथ

Scope WithDevice(
  const string & device
) const 

एक नया दायरा लौटाएं।

लौटाए गए दायरे में बनाए गए सभी ऑप्स में डिवाइस फ़ील्ड को 'डिवाइस' पर सेट किया जाएगा।

कर्नेल लेबल के साथ

Scope WithKernelLabel(
  const string & kernel_label
) const 

एक नया दायरा लौटाएं।

नए दायरे के साथ बनाए गए सभी ऑप्स में उनकी '_kernel' विशेषता के मान के रूप में kernel_label होगा;

नो कंट्रोल डिपेंडेंसी के साथ

Scope WithNoControlDependencies() const 

एक नया दायरा लौटाएं।

लौटाए गए दायरे में बनाए गए सभी ऑप्स का अन्य ऑपरेशनों पर कोई नियंत्रण निर्भरता नहीं होगी।

ओपनाम के साथ

Scope WithOpName(
  Ty... fragments
) const 

एक नया दायरा लौटाएं।

लौटाए गए दायरे में बनाए गए सभी ऑप्स में name/StrCat(fragments...)[_suffix] फ़ॉर्म के नाम होंगे

एक्सला क्लस्टर के साथ

Scope WithXlaCluster(
  const string & xla_cluster
) const 

एक नया दायरा लौटाता है।

लौटाए गए दायरे में बनाए गए सभी ऑप्स में उनकी _XlaCluster विशेषता xla_cluster पर सेट होगी।

control_deps

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

ग्राफ

Graph * graph() const 

ग्राफ़_as_shared_ptr

std::shared_ptr< Graph > graph_as_shared_ptr() const 

ठीक है

bool ok() const 

ऑपरेटर =

Scope & operator=(
  const Scope & other
)

दर्जा

Status status() const 

~स्कोप

 ~Scope()

सार्वजनिक स्थैतिक कार्य

न्यूरूटस्कोप

Scope NewRootScope()

एक नया दायरा लौटाएं।

यह एक नया ग्राफ बनाता है और इस ग्राफ़ में निर्मित सभी कार्यों को लौटाई गई वस्तु को "रूट" स्कोप के रूप में उपयोग करना चाहिए।