टेंसरफ़्लो:: दायरा
#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) | Scope & |
status () const |
सार्वजनिक स्थैतिक कार्य | |
---|---|
NewRootScope () | एक नया दायरा लौटाएं। |
सार्वजनिक समारोह
कोलोकेटविथ
Scope ColocateWith( const Operation & op ) 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
दर्जा
Status status() const
~स्कोप
~Scope()
सार्वजनिक स्थैतिक कार्य
न्यूरूटस्कोप
Scope NewRootScope()
एक नया दायरा लौटाएं।
यह एक नया ग्राफ बनाता है और इस ग्राफ़ में निर्मित सभी कार्यों को लौटाई गई वस्तु को "रूट" स्कोप के रूप में उपयोग करना चाहिए।