টেনসরফ্লো :: ব্যাপ্তি
#include <scope.h>
একটি Scope
অবজেক্ট সম্পর্কিত টেনসরফ্লো অপের একটি সেটকে প্রতিনিধিত্ব করে যার একই বৈশিষ্ট্য যেমন একটি সাধারণ নামের উপসর্গ রয়েছে।
সারাংশ
একটি স্কোপ অবজেক্ট হল 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()) { ... }
স্কোপ অনুক্রম:
স্কোপ ক্লাস বিভিন্ন With<> ফাংশন প্রদান করে যা একটি নতুন সুযোগ তৈরি করে। নতুন স্কোপে সাধারণত একটি সম্পত্তি পরিবর্তিত হয় যখন অন্যান্য বৈশিষ্ট্যগুলি মূল সুযোগ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়। 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"
সুযোগ জীবনকাল:
Scope::NewRootScope কল করে একটি নতুন সুযোগ তৈরি করা হয়েছে। এটি এমন কিছু সংস্থান তৈরি করে যা সমস্ত চাইল্ড স্কোপের দ্বারা ভাগ করা হয় যা এই সুযোগ থেকে উত্তরাধিকারসূত্রে পাওয়া যায়, সরাসরি বা ট্রানজিটিভভাবে। উদাহরণস্বরূপ, একটি নতুন স্কোপ একটি নতুন গ্রাফ অবজেক্ট তৈরি করে যেখানে অপারেশনগুলি যোগ করা হয় যখন নতুন স্কোপ বা এর বাচ্চাগুলি একটি Op কনস্ট্রাক্টর দ্বারা ব্যবহার করা হয়। নতুন স্কোপে একটি স্ট্যাটাস অবজেক্টও রয়েছে যা যেকোন চাইল্ড স্কোপে কল করা Op-constructor ফাংশন দ্বারা ত্রুটিগুলি নির্দেশ করতে ব্যবহার করা হবে। অপ-কনস্ট্রাক্টর ফাংশনগুলিকে অপ নির্মাণের জন্য এগিয়ে যাওয়ার আগে ok() পদ্ধতিতে কল করে সুযোগের স্থিতি পরীক্ষা করতে হবে।
থ্রেড নিরাপত্তা:
একটি Scope
বস্তু থ্রেড-নিরাপদ নয়। থ্রেড একই সাথে একই Scope
অবজেক্টে অপ-কনস্ট্রাক্টর ফাংশনকে কল করতে পারে না।
কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর | |
---|---|
Scope (const Scope & other) | |
~Scope () |
পাবলিক ফাংশন | |
---|---|
ClearColocation () const | সমস্ত colocation সীমাবদ্ধতা সাফ করুন. |
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 একটি অপের নাম নির্দিষ্ট করা না থাকলে ডিফল্ট_নাম ব্যবহার করে একটি অনন্য নাম ফেরত দিন। |
NewSubScope (const string & child_scope_name) const | একটি নতুন সুযোগ ফিরিয়ে দিন। |
ToGraphDef (GraphDef *gdef) const | Status যদি status() হয় Status::OK(), এই স্কোপে সংরক্ষিত গ্রাফ অবজেক্টটিকে একটি GraphDef প্রোটোতে রূপান্তর করুন এবং স্ট্যাটাস::OK() রিটার্ন করুন। |
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 | Status |
পাবলিক স্ট্যাটিক ফাংশন | |
---|---|
NewRootScope () | একটি নতুন সুযোগ ফিরিয়ে দিন। |
পাবলিক ফাংশন
ColocateWith
Scope ColocateWith( const Operation & op ) const
একটি নতুন সুযোগ ফিরিয়ে দিন।
প্রত্যাবর্তিত স্কোপের মধ্যে তৈরি করা সমস্ত অপগুলি ডিভাইসে সহ-অবস্থান করা হবে যেখানে op স্থাপন করা হয়েছে৷ দ্রষ্টব্য: এই ফাংশনটি অভ্যন্তরীণ লাইব্রেরিগুলি ব্যবহার করার উদ্দেশ্যে করা হয়েছে শুধুমাত্র ডিভাইসে অপ্সের বসানো নিয়ন্ত্রণের জন্য। সর্বজনীন ব্যবহারকে উত্সাহিত করা হয় না কারণ ডিভাইস স্থাপনের বাস্তবায়ন পরিবর্তন সাপেক্ষে।
ExitOnError
Scope ExitOnError() const
একটি নতুন সুযোগ ফিরিয়ে দিন।
অপ-কনস্ট্রাকটর ফাংশন স্কোপ আর্গুমেন্ট হিসাবে রিটার্ন করা সুযোগ গ্রহণ করে স্কোপের উপর স্থিতি সেট করার পরিবর্তে একটি ত্রুটি সনাক্ত হওয়ার সাথে সাথে প্রস্থান করবে।
GetCompositeOpScopes
CompositeOpScopes GetCompositeOpScopes( const string & composite_op_name ) const
GetUniqueNameForOp
string GetUniqueNameForOp( const string & default_name ) const
একটি অপের নাম নির্দিষ্ট করা না থাকলে ডিফল্ট_নাম ব্যবহার করে একটি অনন্য নাম ফেরত দিন।
নিউসাবস্কোপ
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
যদি status() হয় Status::OK(), এই স্কোপে সংরক্ষিত গ্রাফ অবজেক্টটিকে একটি GraphDef প্রোটোতে রূপান্তর করুন এবং স্ট্যাটাস::OK() রিটার্ন করুন।
অন্যথায়, গ্রাফডিফ রূপান্তর না করেই ত্রুটির স্থিতি ফিরিয়ে দিন।
আপডেট স্ট্যাটাস
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
এ সেট করা থাকবে।
কন্ট্রোল_ডিপস
const std::vector< Operation > & control_deps() const
গ্রাফ
Graph * graph() const
graph_as_shared_ptr
std::shared_ptr< Graph > graph_as_shared_ptr() const
ঠিক আছে
bool ok() const
অবস্থা
Status status() const
~ সুযোগ
~Scope()
পাবলিক স্ট্যাটিক ফাংশন
নিউরুটস্কোপ
Scope NewRootScope()
একটি নতুন সুযোগ ফিরিয়ে দিন।
এটি একটি নতুন গ্রাফ তৈরি করে এবং এই গ্রাফে নির্মিত সমস্ত ক্রিয়াকলাপের জন্য প্রত্যাবর্তিত বস্তুটিকে "রুট" স্কোপ হিসাবে ব্যবহার করা উচিত।