StridedSlice

পাবলিক চূড়ান্ত বর্গ StridedSlice

`ইনপুট` থেকে একটি স্ট্রাইডেড স্লাইস ফেরত দিন।

দ্রষ্টব্য, বেশিরভাগ পাইথন ব্যবহারকারীরা সরাসরি এই অপশনের পরিবর্তে Python `Tensor.__getitem__` বা `variable.__getitem__` ব্যবহার করতে চাইবে।

এই অপের লক্ষ্য হল `n` মাত্রিক `ইনপুট` টেনসর থেকে উপাদানগুলির একটি উপসেট সহ একটি নতুন টেনসর তৈরি করা। এই ফাংশনের আর্গুমেন্টে এনকোড করা `m` স্পার্স রেঞ্জ স্পেসিফিকেশনের একটি ক্রম ব্যবহার করে উপসেটটি বেছে নেওয়া হয়েছে। দ্রষ্টব্য, কিছু ক্ষেত্রে `m` `n` এর সমান হতে পারে, কিন্তু এটির প্রয়োজন নেই। প্রতিটি রেঞ্জ স্পেসিফিকেশন এন্ট্রি নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

- একটি উপবৃত্ত (...)। উপবৃত্তগুলি পূর্ণ-মাত্রা নির্বাচনের শূন্য বা তার বেশি মাত্রা বোঝাতে ব্যবহৃত হয় এবং `উপবৃত্ত_মাস্ক` ব্যবহার করে তৈরি করা হয়। উদাহরণস্বরূপ, `foo[...]` হল আইডেন্টিটি স্লাইস।

- একটি নতুন অক্ষ। এটি একটি নতুন আকৃতি=1 মাত্রা সন্নিবেশ করতে ব্যবহৃত হয় এবং `new_axis_mask` ব্যবহার করে উত্পাদিত হয়। উদাহরণস্বরূপ, `foo[:, ...]` যেখানে `foo` আকারে `(3, 4)` একটি `(1, 3, 4)` টেনসর উৎপন্ন করে।

- একটি পরিসর `শুরু:শেষ:স্ট্রাইড`। একটি প্রদত্ত মাত্রা থেকে কতটা বেছে নিতে হবে তা নির্দিষ্ট করতে এটি ব্যবহার করা হয়। `স্ট্রাইড` যেকোনো পূর্ণসংখ্যা হতে পারে কিন্তু 0। `শুরু` হল একটি পূর্ণসংখ্যা যা নির্বাচন করার জন্য প্রথম মানের সূচককে উপস্থাপন করে যখন `শেষ` নির্বাচন করা শেষ মানের সূচককে উপস্থাপন করে। প্রতিটি মাত্রায় নির্বাচিত মানগুলির সংখ্যা হল `শেষ - শুরু` যদি `স্ট্রাইড > 0` এবং `শুরু - শেষ` যদি `স্ট্রাইড < 0` হয়। `শুরু` এবং `শেষ` ঋণাত্মক হতে পারে যেখানে `-1` শেষ উপাদান, `-2` দ্বিতীয় থেকে শেষ। `begin_mask` নিয়ন্ত্রণ করে যে সুস্পষ্টভাবে প্রদত্ত `begin`-কে `স্ট্রাইড > 0` হলে `0` এবং `স্ট্রাইড <0` হলে `-1` এর একটি অন্তর্নিহিত কার্যকর মান দিয়ে প্রতিস্থাপন করা হবে কিনা। `end_mask` সাদৃশ্যপূর্ণ কিন্তু বৃহত্তম খোলা ব্যবধান তৈরি করতে প্রয়োজনীয় সংখ্যা তৈরি করে। উদাহরণস্বরূপ, `(3,)` টেনসর `foo[:]` আকৃতি দেওয়া হলে, কার্যকর `শুরু` এবং `শেষ` হল `0` এবং `3`। অনুমান করবেন না এটি `foo[0:-1]` এর সমতুল্য যার একটি কার্যকর `শুরু` এবং `0` এবং `2` এর `শেষ` আছে। আরেকটি উদাহরণ হল `foo[-2::-1]` যা শেষ দুটি (মূল ক্রম উপাদানে) ড্রপ করার সময় একটি টেনসরের প্রথম মাত্রাকে বিপরীত করে। যেমন `foo = [1,2,3,4]; foo[-2::-1]` হল `[4,3]`।

- একটি একক সূচক। এটি একটি প্রদত্ত সূচক আছে শুধুমাত্র উপাদান রাখা ব্যবহার করা হয়. যেমন (`foo[2, :]` একটি আকৃতিতে `(5,6)` টেনসর একটি আকৃতি তৈরি করে `(6,)` টেনসর। এটি `শুরু` এবং `শেষ` এবং `সঙ্কুচিত_অক্ষ_মাস্ক`-এ এনকোড করা আছে।

প্রতিটি ধারণাগত পরিসীমা স্পেসিফিকেশন অপের যুক্তিতে এনকোড করা হয়। এই এনকোডিংটি একটি অ-তুচ্ছ উদাহরণ বিবেচনা করে সবচেয়ে ভালভাবে বোঝা যায়। বিশেষ করে, `foo বিন্যাস [1, 2: 4, কেউ না, ...,: -3: -1,:]` যেমন এনকোড করা হবে

begin = [1, 2, x, x, 0, x] # x denotes don't care (usually 0)
 end = [2, 4, x, x, -3, x]
 strides = [1, 1, x, x, -1, 1]
 begin_mask = 1<<4 | 1<<5 = 48
 end_mask = 1<<5 = 32
 ellipsis_mask = 1<<3 = 8
 new_axis_mask = 1<<2 = 4
 shrink_axis_mask = 1<<0 = 1
 
যদি `foo.shape` হয় এই ক্ষেত্রে (5, 5, 5, 5, 5, 5) স্লাইসের চূড়ান্ত আকৃতি হয়ে যায় (2, 1, 5, 5, 2, 5)। আসুন প্রতিটি আর্গুমেন্ট স্পেসিফিকেশনের মাধ্যমে ধাপে ধাপে চলুন।

1. উদাহরণের স্লাইসের প্রথম আর্গুমেন্টটি `begin = 1` এবং `end = begin + 1 = 2`-এ পরিণত হয়েছে। মূল স্পেসিক `2:4` থেকে দ্ব্যর্থতা প্রকাশ করতে আমরা `সঙ্কুচিত_অক্ষ_মাস্ক`-এ উপযুক্ত বিটও সেট করি।

2. `2:4` হল 2, 4, 1 অবদান শুরু, শেষ এবং অগ্রসর হতে। সমস্ত মুখোশের শূন্য বিট অবদান রয়েছে।

3. কোনটিই `tf.newaxis` এর প্রতিশব্দ নয়। এর মানে চূড়ান্ত আকারে আকার 1 মাত্রার একটি মাত্রা সন্নিবেশ করান। নতুন_axis_mask বিট সেট করার সময় ডামি মানগুলি শুরু, শেষ এবং অগ্রসর হওয়ার জন্য অবদান রাখে।

4. `...` ইনপুট আকৃতির প্রতিটি মাত্রার জন্য একটি স্লাইস সম্পূর্ণরূপে নির্দিষ্ট করতে যতগুলি মাত্রা প্রয়োজন ততগুলি থেকে সম্পূর্ণ রেঞ্জগুলি ধরুন৷

5. `:-3:-1` নেতিবাচক সূচকের ব্যবহার দেখায়। একটি নেতিবাচক সূচক `i` একটি মাত্রার সাথে যুক্ত যার আকার `s` আছে একটি ধনাত্মক সূচক `s + i` এ রূপান্তরিত হয়। তাই `-1` হয়ে যায় `s-1` (অর্থাৎ শেষ উপাদান)। এই রূপান্তরটি অভ্যন্তরীণভাবে করা হয় তাই শুরু, শেষ এবং ধাপগুলি x, -3, এবং -1 পায়। প্রারম্ভিক পরিসরটি সম্পূর্ণ পরিসীমা (x উপেক্ষা করে) নির্দেশ করতে উপযুক্ত begin_mask বিট সেট করা হয়েছে।

6. `:` নির্দেশ করে যে সংশ্লিষ্ট মাত্রার সম্পূর্ণ বিষয়বস্তু নির্বাচন করা হয়েছে। এটি `::` বা `0::1` এর সমতুল্য। শুরু, শেষ এবং অগ্রগতি যথাক্রমে 0, 0 এবং 1 পায়। `begin_mask` এবং `end_mask`-এ উপযুক্ত বিটগুলিও সেট করা আছে।

আবশ্যকতা: `0 = পদক্ষেপ [আমি] আমি [0, এম)` মধ্যে `ellipsis_mask দুটি (শুধুমাত্র এক ঊহ্য শব্দ একটি ক্ষমতা হতে হবে)`

নেস্টেড ক্লাস

ক্লাস StridedSlice.Options জন্য ঐচ্ছিক বৈশিষ্ট্য StridedSlice

পাবলিক পদ্ধতি

আউটপুট <টি>
asOutput ()
একটি টেনসরের প্রতীকী হ্যান্ডেল প্রদান করে।
স্ট্যাটিক StridedSlice.Options
beginMask (দীর্ঘ beginMask)
স্ট্যাটিক <টি, ইউ প্রসারিত number> StridedSlice <টি>
তৈরি ( ব্যাপ্তি সুযোগ প্রতীক <টি> ইনপুট, প্রতীক <u> শুরু প্রতীক <u> শেষ, প্রতীক <u> পদক্ষেপ, বিকল্পসমূহ ... অপশন)
একটি নতুন StridedSlice অপারেশন মোড়ানো একটি ক্লাস তৈরি করার কারখানার পদ্ধতি।
স্ট্যাটিক StridedSlice.Options
ellipsisMask (দীর্ঘ ellipsisMask)
স্ট্যাটিক StridedSlice.Options
endMask (দীর্ঘ endMask)
স্ট্যাটিক StridedSlice.Options
newAxisMask (দীর্ঘ newAxisMask)
আউটপুট <টি>
স্ট্যাটিক StridedSlice.Options
shrinkAxisMask (দীর্ঘ shrinkAxisMask)

উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি

পাবলিক পদ্ধতি

পাবলিক আউটপুট <টি> asOutput ()

একটি টেনসরের প্রতীকী হ্যান্ডেল প্রদান করে।

TensorFlow অপারেশনের ইনপুট হল অন্য TensorFlow অপারেশনের আউটপুট। এই পদ্ধতিটি একটি সিম্বলিক হ্যান্ডেল পেতে ব্যবহৃত হয় যা ইনপুটের গণনার প্রতিনিধিত্ব করে।

পাবলিক স্ট্যাটিক StridedSlice.Options beginMask (দীর্ঘ beginMask)

পরামিতি
শুরু মাস্ক একটি বিটমাস্ক যেখানে একটি বিট আই হচ্ছে 1 মানে শুরুর মানটিকে উপেক্ষা করা এবং তার পরিবর্তে সম্ভাব্য সবচেয়ে বড় ব্যবধান ব্যবহার করা। রানটাইম শুরুতে [i] প্রতিস্থাপিত হবে `[0, n-1)` যদি `stride[i] > 0` অথবা `[-1, n-1]` যদি `stride[i] < 0`

পাবলিক স্ট্যাটিক StridedSlice <টি> তৈরি করুন ( ব্যাপ্তি সুযোগ প্রতীক <টি> ইনপুট, প্রতীক <u> শুরু প্রতীক <u> শেষ, প্রতীক <u> পদক্ষেপ, বিকল্পসমূহ ... অপশন)

একটি নতুন StridedSlice অপারেশন মোড়ানো একটি ক্লাস তৈরি করার কারখানার পদ্ধতি।

পরামিতি
সুযোগ বর্তমান সুযোগ
শুরু `begin[k]` অফসেটটিকে `k`th রেঞ্জ স্পেসিফিকেশনে নির্দিষ্ট করে। এটির সাথে মিলিত সঠিক মাত্রাটি প্রসঙ্গ দ্বারা নির্ধারিত হবে। সীমার বাইরের মানগুলি নিঃশব্দে আটকানো হবে৷ যদি `begin_mask` এর k`th বিট হয় তাহলে `begin[k]` উপেক্ষা করা হয় এবং এর পরিবর্তে উপযুক্ত মাত্রার সম্পূর্ণ পরিসর ব্যবহার করা হয়। নেতিবাচক মান সর্বোচ্চ উপাদান থেকে ইন্ডেক্সিং শুরু করে যেমন যদি `foo==[1,2,3]` তাহলে `foo[-1]==3`।
শেষ `end[i]` হল `begin` এর মতো ব্যতিক্রম যে `end_mask` সম্পূর্ণ ব্যাপ্তি নির্ধারণ করতে ব্যবহৃত হয়।
অগ্রগতি একটি প্রদত্ত উপাদান নিষ্কাশন করার পর `i`th স্পেসিফিকেশনে বৃদ্ধিকে নির্দিষ্ট করে `স্ট্রাইডস[i]`। নেতিবাচক সূচক মূল ক্রম বিপরীত হবে. স্লাইস[i]>0` হলে বা স্লাইস[i] < 0` হলে `[0,ডিম[i]) আউট বা রেঞ্জের মানগুলিকে আটকানো হয়
বিকল্প ঐচ্ছিক বৈশিষ্ট্য মান বহন করে
রিটার্নস
  • StridedSlice এর একটি নতুন উদাহরণ

পাবলিক স্ট্যাটিক StridedSlice.Options ellipsisMask (দীর্ঘ ellipsisMask)

পরামিতি
উপবৃত্তাকার মুখোশ একটি বিটমাস্ক যেখানে বিট `i` 1 মানে `i`ম অবস্থান আসলে একটি উপবৃত্ত। সর্বাধিক এক বিট 1 হতে পারে। যদি `ellipsis_mask == 0` হয়, তাহলে `1 << (m+1)` এর একটি অন্তর্নিহিত উপবৃত্তাকার মাস্ক প্রদান করা হয়। এর মানে হল `foo[3:5] == foo[3:5, ...]`। একটি উপবৃত্তাকার প্রতিটি মাত্রার জন্য কাটা পরিসীমা সম্পূর্ণরূপে নির্দিষ্ট করার জন্য প্রয়োজনীয় যতগুলি পরিসীমা নির্দিষ্টকরণ তৈরি করে। উদাহরণস্বরূপ একটি 4-মাত্রিক টেনসরের জন্য `foo` স্লাইস `foo[2, ..., 5:8]` বোঝায় `foo[2, :, :, 5:8]`।

পাবলিক স্ট্যাটিক StridedSlice.Options endMask (দীর্ঘ endMask)

পরামিতি
এন্ডমাস্ক `begin_mask` এর সাথে সাদৃশ্যপূর্ণ

পাবলিক স্ট্যাটিক StridedSlice.Options newAxisMask (দীর্ঘ newAxisMask)

পরামিতি
নতুন অ্যাক্সিসমাস্ক একটি বিটমাস্ক যেখানে বিট `i` হচ্ছে 1 মানে `i`থ স্পেসিফিকেশন একটি নতুন আকৃতি 1 মাত্রা তৈরি করে। যেমন `foo[:4, tf.newaxis, :2]` একটি আকৃতি তৈরি করবে `(4, 1, 2)` টেনসর।

পাবলিক আউটপুট <টি> আউটপুট ()

পাবলিক স্ট্যাটিক StridedSlice.Options shrinkAxisMask (দীর্ঘ shrinkAxisMask)

পরামিতি
সংকুচিত AxisMask একটি বিটমাস্ক যেখানে বিট `i` বোঝায় যে `i`থ স্পেসিফিকেশনটি মাত্রাকে সঙ্কুচিত করবে। শুরু এবং শেষ অবশ্যই মাত্রায় আকার 1 এর একটি স্লাইস বোঝাতে হবে। উদাহরণস্বরূপ পাইথনে কেউ `foo[:, 3, :]` করতে পারে যার ফলস্বরূপ `সঙ্কুচিত_অক্ষ_মাস্ক` হবে 2।