StridedSlice

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

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

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

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

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

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

- একটি ব্যাপ্তি `begin:end:stride`। একটি প্রদত্ত মাত্রা থেকে কতটা বেছে নিতে হবে তা নির্দিষ্ট করতে এটি ব্যবহার করা হয়। `স্ট্রাইড` যেকোনো পূর্ণসংখ্যা হতে পারে কিন্তু 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, None, ..., :-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&lt;&lt;4 | 1&lt;&lt;5 = 48
 end_mask = 1&lt;&lt;5 = 32
 ellipsis_mask = 1&lt;&lt;3 = 8
 new_axis_mask = 1&lt;&lt;2 = 4
 shrink_axis_mask = 1&lt;&lt;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 != strides[i] in i এর জন্য [0, m)` `Elipsis_mask অবশ্যই দুইটির শক্তি হতে হবে (শুধুমাত্র একটি উপবৃত্ত)`

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

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

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

আউটপুট <T>
আউটপুট হিসাবে ()
একটি টেনসরের প্রতীকী হ্যান্ডেল প্রদান করে।
স্ট্যাটিক StridedSlice.Options
beginMask (দীর্ঘ শুরু মাস্ক)
static <T, U প্রসারিত সংখ্যা> StridedSlice <T>
তৈরি করুন ( স্কোপ স্কোপ, অপারেন্ড <T> ইনপুট, অপারেন্ড <U> শুরু, অপারেন্ড <U> শেষ, অপারেন্ড <U> স্ট্রাইডস, বিকল্প... বিকল্প)
একটি নতুন StridedSlice অপারেশন মোড়ানো একটি ক্লাস তৈরি করার কারখানা পদ্ধতি।
স্ট্যাটিক StridedSlice.Options
উপবৃত্তাকার মাস্ক (দীর্ঘ উপবৃত্তাকার মাস্ক)
স্ট্যাটিক StridedSlice.Options
এন্ডমাস্ক (লং এন্ডমাস্ক)
স্ট্যাটিক StridedSlice.Options
newAxisMask (দীর্ঘ নতুনAxisMask)
আউটপুট <T>
স্ট্যাটিক StridedSlice.Options
shrinkAxisMask (দীর্ঘ সঙ্কুচিতAxisMask)

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

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

সর্বজনীন আউটপুট <T> হিসাবে আউটপুট ()

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

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

পাবলিক স্ট্যাটিক StridedSlice.Options beginMask (লং বিগিনমাস্ক)

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

পাবলিক স্ট্যাটিক স্ট্রাইডস্লাইস <T> তৈরি করুন ( স্কোপ স্কোপ, অপারেন্ড <T> ইনপুট, অপারেন্ড <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 এর একটি নতুন উদাহরণ

পাবলিক স্ট্যাটিক স্ট্রাইডেড স্লাইস। অপশন ইলিপসিসমাস্ক (লং এলিপিসিসমাস্ক)

পরামিতি
উপবৃত্তাকার মুখোশ একটি বিটমাস্ক যেখানে বিট `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 (লং এন্ডমাস্ক)

পরামিতি
এন্ডমাস্ক `begin_mask` এর অনুরূপ

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

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

সর্বজনীন আউটপুট <T> আউটপুট ()

পাবলিক স্ট্যাটিক StridedSlice.Options shrinkAxisMask (Long shrinkAxisMask)

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