TensorScatterAdd

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

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

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

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

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

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

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

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

: পাইথন, এই ছিটান অ্যাড অপারেশন ভালো দেখাবে

indices = tf.constant([[4], [3], [1], [7]])
     updates = tf.constant([9, 10, 11, 12])
     tensor = tf.ones([8], dtype=tf.int32)
     updated = tf.tensor_scatter_nd_add(tensor, indices, updates)
     print(updated)
 
ফলে টেন্সর ভালো দেখাবে:

[1, 12, 1, 11, 10, 1, 1, 13]

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

: পাইথন, এই ছিটান অ্যাড অপারেশন ভালো দেখাবে

indices = tf.constant([[0], [2]])
     updates = 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],
                             [7, 7, 7, 7], [8, 8, 8, 8]]])
     tensor = tf.ones([4, 4, 4],dtype=tf.int32)
     updated = tf.tensor_scatter_nd_add(tensor, indices, updates)
     print(updated)
 
ফলে টেন্সর ভালো দেখাবে:

[[[6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8], [9, 9, 9, 9]], [[1, 1, 1 , 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], [[6, 6, 6, 6], [7, 7 , 7, 7], [8, 8, 8, 8], [9, 9, 9, 9]], [[1, 1, 1, 1], [1, 1, 1, 1], [1 , 1, 1, 1], [1, 1, 1, 1]]]

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

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

আউটপুট <টি>
asOutput ()
একটি টেনসরের প্রতীকী হ্যান্ডেল প্রদান করে।
স্ট্যাটিক <টি, ইউ প্রসারিত number> TensorScatterAdd <টি>
তৈরি ( ব্যাপ্তি সুযোগ প্রতীক <টি> টেন্সর, প্রতীক <u> সূচকের, প্রতীক <টি> আপডেট)
একটি নতুন TensorScatterAdd অপারেশন মোড়ানো একটি ক্লাস তৈরি করার কারখানা পদ্ধতি।
আউটপুট <টি>
আউটপুট ()
একটি নতুন টেনসর টেনসর থেকে কপি করা হয়েছে এবং সূচক অনুযায়ী আপডেট যোগ করা হয়েছে।

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

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

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

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

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

পাবলিক স্ট্যাটিক TensorScatterAdd <টি> তৈরি করুন ( ব্যাপ্তি সুযোগ প্রতীক <টি> টেন্সর, প্রতীক <u> সূচকের, প্রতীক <টি> আপডেট)

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

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

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

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