TensorScatterAdd

الطبقة النهائية العامة TensorScatterAdd

يضيف "تحديثات" متفرقة إلى موتر موجود وفقًا لـ "المؤشرات".

تنشئ هذه العملية موترًا جديدًا عن طريق إضافة "تحديثات" متفرقة إلى "الموتر" الذي تم تمريره. هذه العملية مشابهة جدًا للعملية tf.compat.v1.scatter_nd_add ، باستثناء أن التحديثات تُضاف إلى موتر موجود (بدلاً من المتغير). إذا لم يكن من الممكن إعادة استخدام ذاكرة الموتر الموجود، فسيتم عمل نسخة وتحديثها.

"المؤشرات" عبارة عن موتر عدد صحيح يحتوي على مؤشرات في موتر جديد للشكل "tensor.shape". البعد الأخير من "المؤشرات" يمكن أن يكون على الأكثر رتبة "tensor.shape":

indices.shape[-1] <= tensor.shape.rank
 
البعد الأخير من "المؤشرات" يتوافق مع المؤشرات إلى عناصر (إذا كان "indices.shape[-1] = Tensor.shape. rank`) أو شرائح (إذا كان `indices.shape[-1] < Tensor.shape.rank`) على طول البعد `indices.shape[-1]` من `tensor.shape`. "التحديثات" عبارة عن موتر بالشكل
indices.shape[:-1] + tensor.shape[indices.shape[-1]:]
 
إن أبسط أشكال "tensor_scatter_nd_add" هو إضافة عناصر فردية إلى الموتر بواسطة الفهرس. على سبيل المثال، لنفترض أننا نريد إضافة 4 عناصر في موتر من الرتبة 1 يحتوي على 8 عناصر.

في بايثون، تبدو عملية الإضافة المبعثرة كما يلي:

>>> المؤشرات = tf.constant([[4], [3], [1], [7]]) >>> التحديثات = tf.constant([9, 10, 11, 12]) >>> الموتر = tf.ones([8], dtype=tf.int32) >>> محدث = tf.tensor_scatter_nd_add(الموتر، المؤشرات، التحديثات) >>> محدث

يمكننا أيضًا إدراج شرائح كاملة من موتر ذو رتبة أعلى مرة واحدة. على سبيل المثال، إذا أردنا إدراج شريحتين في البعد الأول لموتر من الرتبة 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]، .. .[7, 7, 7, 7], [8, 8, 8, 8]]]) >>> Tensor = tf.ones([4, 4, 4],dtype=tf.int32) >>> محدث = tf.tensor_scatter_nd_add(الموتر، المؤشرات، التحديثات) >>> محدث

ملاحظة: على وحدة المعالجة المركزية، إذا تم العثور على فهرس خارج النطاق، فسيتم إرجاع خطأ. في وحدة معالجة الرسومات، إذا تم العثور على فهرس خارج النطاق، فسيتم تجاهل الفهرس.

الأساليب العامة

الإخراج <T>
كإخراج ()
إرجاع المقبض الرمزي للموتر.
ثابت <T، U يمتد الرقم> TensorScatterAdd <T>
إنشاء (نطاق النطاق ، موتر المعامل <T>، مؤشرات المعامل <U>، تحديثات المعامل <T>)
طريقة المصنع لإنشاء فئة تغلف عملية TensorScatterAdd جديدة.
الإخراج <T>
انتاج ()
Tensor جديد منسوخ من Tensor ويتم إضافة التحديثات حسب المؤشرات.

الطرق الموروثة

الأساليب العامة

الإخراج العام <T> كإخراج ()

إرجاع المقبض الرمزي للموتر.

المدخلات إلى عمليات TensorFlow هي مخرجات عملية TensorFlow أخرى. يتم استخدام هذه الطريقة للحصول على مقبض رمزي يمثل حساب الإدخال.

إنشاء TensorScatterAdd <T> ثابت عام ( نطاق النطاق ، موتر المعامل <T>، مؤشرات المعامل <U>، تحديثات المعامل <T>)

طريقة المصنع لإنشاء فئة تغلف عملية TensorScatterAdd جديدة.

حدود
نِطَاق النطاق الحالي
الموتر الموتر للنسخ/التحديث.
المؤشرات مؤشر الموتر.
التحديثات التحديثات لتنتشر في الإخراج.
عائدات
  • مثيل جديد لـ TensorScatterAdd

الإخراج العام <T> الإخراج ()

Tensor جديد منسوخ من Tensor ويتم إضافة التحديثات حسب المؤشرات.