TensorScatterUpdate

পাবলিক ফাইনাল ক্লাস TensorScatterUpdate

`সূচক` অনুযায়ী বিদ্যমান টেনসরে `আপডেট` ছড়িয়ে দিন।

এই ক্রিয়াকলাপটি `টেনসর`-এ পাস করা স্পার্স `আপডেট` প্রয়োগ করে একটি নতুন টেনসর তৈরি করে। এই ক্রিয়াকলাপটি `tf.scatter_nd`-এর অনুরূপ, আপডেটগুলি বিদ্যমান টেনসরে ছড়িয়ে ছিটিয়ে আছে (শূন্য-টেনসরের বিপরীতে)। যদি বিদ্যমান টেনসরের মেমরিটি পুনরায় ব্যবহার করা না যায় তবে একটি অনুলিপি তৈরি এবং আপডেট করা হয়।

যদি `সূচক`-এ সদৃশ থাকে, তাহলে তাদের আপডেটগুলি জমা হয় (সংখ্যা)।

সতর্কতা : যে ক্রম অনুসারে আপডেটগুলি প্রয়োগ করা হয় তা অনির্ধারিত, তাই আউটপুট অনির্ধারিত হবে যদি `সূচক`-এ সদৃশ থাকে -- কিছু সংখ্যাগত আনুমানিক সমস্যার কারণে, বিভিন্ন ক্রমে সংকলিত সংখ্যাগুলি ভিন্ন ফলাফল দিতে পারে।

`সূচক` হল একটি পূর্ণসংখ্যার টেনসর যাতে সূচকগুলিকে আকৃতির একটি নতুন টেনসর `আকৃতি`তে পরিণত করে। `সূচক` এর শেষ মাত্রা সর্বাধিক `আকৃতি` র‍্যাঙ্ক হতে পারে:

indices.shape[-1] <= shape.rank

`সূচক` এর শেষ মাত্রা উপাদানগুলির মধ্যে সূচকের সাথে মিলে যায় (যদি `indices.shape[-1] = shape.rank`) অথবা স্লাইস (যদি `indices.shape[-1] < shape.rank`) মাত্রা `সূচকের সাথে .shape[-1]` of `shape`। `আপডেট` হল আকৃতি সহ একটি টেনসর

indices.shape[:-1] + shape[indices.shape[-1]:]

স্ক্যাটারের সহজতম রূপ হল সূচক দ্বারা একটি টেনসরে পৃথক উপাদান সন্নিবেশ করা। উদাহরণস্বরূপ, বলুন আমরা 8টি উপাদান সহ একটি র্যাঙ্ক-1 টেনসরে 4টি বিক্ষিপ্ত উপাদান সন্নিবেশ করতে চাই।

পাইথনে, এই স্ক্যাটার অপারেশনটি দেখতে এরকম হবে:

>>> সূচক = tf.constant([[4], [3], [1], [7]]) >>> আপডেট = tf.constant([9, 10, 11, 12]) >>> টেনসর = tf.ones([8], dtype=tf.int32) >>> print(tf.tensor_scatter_nd_update(tensor, indices, updates)) tf.Tensor([ 1 11 1 10 9 1 12], shape=(8 ,), dtype=int32)

আমরা একই সাথে উচ্চতর র্যাঙ্কের টেনসরের সম্পূর্ণ স্লাইস সন্নিবেশ করতে পারি। উদাহরণস্বরূপ, যদি আমরা একটি র‍্যাঙ্ক-3 টেনসরের প্রথম ডাইমেনশনে দুটি স্লাইস সন্নিবেশ করতে চাই, যেখানে নতুন মানের দুটি ম্যাট্রিস রয়েছে।

পাইথনে, এই স্ক্যাটার অপারেশনটি দেখতে এরকম হবে:

>>> সূচক = tf.constant([[0], [2]]) >>> আপডেট = tf.constant([[[5, 5, 5, 5], [6, 6, 6, 6], ... [7, 7, 7, 7], [8, 8, 8, 8]], ... [[5, 5, 5, 5], [6, 6, 6, 6], .. । (tf.tensor_scatter_nd_update(tensor, indices, updates).numpy()) [[[5 5 5] [6 6 6 6] [7 7 7] [8 8 8 8]] [[1 1 1 1] [1 1 1 1] [1 1 1 1] [1 1 1 1]] [[5 5 5 5] [6 6 6 6] [7 7 7 7] [8 8 8 8]] [[1 1 1 1] [1 1 1 1] [1 1 1 1] [1 1 1 1]]]

মনে রাখবেন যে CPU-তে, আউট অফ বাউন্ড সূচক পাওয়া গেলে, একটি ত্রুটি ফেরত দেওয়া হয়। GPU-তে, আউট অফ বাউন্ড সূচক পাওয়া গেলে, সূচকটি উপেক্ষা করা হয়।

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

আউটপুট <T>
আউটপুট হিসাবে ()
একটি টেনসরের প্রতীকী হ্যান্ডেল প্রদান করে।
static <T, U প্রসারিত সংখ্যা> TensorScatterUpdate <T>
তৈরি করুন ( স্কোপ স্কোপ, Operand <T> টেনসর, Operand <U> সূচক, Operand <T> আপডেট)
একটি নতুন TensorScatterUpdate অপারেশন মোড়ানো একটি ক্লাস তৈরি করার কারখানার পদ্ধতি।
আউটপুট <T>
আউটপুট ()
প্রদত্ত আকার এবং সূচক অনুযায়ী প্রয়োগ করা আপডেট সহ একটি নতুন টেনসর।

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

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

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

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

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

পাবলিক স্ট্যাটিক TensorScatterUpdate <T> তৈরি করুন ( স্কোপ স্কোপ, অপারেন্ড <T> টেনসর, অপারেন্ড <U> সূচক, অপারেন্ড <T> আপডেট)

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

পরামিতি
সুযোগ বর্তমান সুযোগ
টেনসর কপি/আপডেট করতে টেনসর।
সূচক সূচক টেনসর।
আপডেট আউটপুট মধ্যে ছড়িয়ে ছিটিয়ে আপডেট.
রিটার্নস
  • TensorScatterUpdate এর একটি নতুন উদাহরণ

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

প্রদত্ত আকার এবং সূচক অনুযায়ী প্রয়োগ করা আপডেট সহ একটি নতুন টেনসর।