Google I/O एक लपेट है! TensorFlow सत्रों पर पकड़ बनाएं सत्र देखें

टेंसरफ़्लो :: क्षेत्र

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

स्कोप पदानुक्रम:

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

नाम उदाहरण:

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"

स्कोप जीवनकाल:

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

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

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

कंस्ट्रक्टर और डिस्ट्रक्टर्स

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 

सभी उपनिवेश बाधाओं को साफ करें।

ColocateWith

Scope ColocateWith(
  const Operation & op
) const 

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

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

ColocateWith

Scope ColocateWith(
  const Output & out
) const 

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

एक्सिटऑनऑरर

Scope ExitOnError() const 

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

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

GetCompositeOpScopes

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 
है

GetUniqueNameForOp

string GetUniqueNameForOp(
  const string & default_name
) const 

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

NewSubScope

Scope NewSubScope(
  const string & child_scope_name
) const 

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

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

क्षेत्र

 Scope(
  const Scope & other
)

ToGraphDef

Status ToGraphDef(
  GraphDef *gdef
) const 

यदि स्थिति () स्थिति :: OK () है, तो इस क्षेत्र में संग्रहीत ग्राफ़ ऑब्जेक्ट को एक ग्राफ़िफ़ प्रोटो में कनवर्ट करें और स्थिति :: ओके () लौटें।

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

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

void UpdateStatus(
  const Status s
) const 

इस स्कोप पर स्टेटस अपडेट करें।

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

WithAssignedDevice

Scope WithAssignedDevice(
  const string & assigned_device
) const 

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

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

WithControlD dependencies

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

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

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

WithControlD dependencies

Scope WithControlDependencies(
  const Output & control_dep
) const 

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

WithDevice

Scope WithDevice(
  const string & device
) const 

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

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

विथ कर्नेललैब

Scope WithKernelLabel(
  const string & kernel_label
) const 

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

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

WithNoControl पर निर्भरताएँ

Scope WithNoControlDependencies() const 

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

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

WithOpName

Scope WithOpName(
  Ty... fragments
) const 

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

दिए गए दायरे के भीतर बनाए गए सभी ऑप्स में फॉर्म का name/StrCat(fragments...)[_suffix]

WithXlaCluster

Scope WithXlaCluster(
  const string & xla_cluster
) const 

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

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

control_deps

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

ग्राफ

Graph * graph() const 

आलेख

std::shared_ptr< Graph > graph_as_shared_ptr() const 

ठीक है

bool ok() const 

संचालक =

Scope & operator=(
  const Scope & other
)

स्थिति

Status status() const 

~ स्कोप

 ~Scope()

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

NewRootScope

Scope NewRootScope()

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

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