جمع Nd

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

اجمع الشرائح من "المعلمات" في موتر ذي شكل محدد بواسطة "المؤشرات".

"المؤشرات" هي موتر عدد صحيح ذي أبعاد K، ويُعتقد أنه موتر ذو أبعاد (K-1) للمؤشرات في "المعلمات"، حيث يحدد كل عنصر شريحة من "المعاملات":

الإخراج[\\(i_0, ..., i_{K-2}\\)] = المعلمات[indices[\\(i_0, ..., i_{K-2}\\)]]

بينما في `tf.gather` `indices` تحدد الشرائح في بُعد `المحور` لـ `params`، في `tf.gather_nd`، تحدد `indices` الشرائح في أبعاد `N` الأولى لـ `params`، حيث `N = indices.shape[-1]`.

البعد الأخير لـ "المؤشرات" يمكن أن يكون على الأكثر رتبة "params":

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

يتوافق البعد الأخير من "المؤشرات" مع العناصر (إذا كانت "indices.shape[-1] == params.rank") أو الشرائح (إذا كانت "indices.shape[-1] <params.rank") على طول البعد "indices". الشكل [-1]` من `المعلمات`. موتر الإخراج له شكل

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

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

بعض الأمثلة أدناه.

فهرسة بسيطة في مصفوفة:

indices = [[0, 0], [1, 1]]
     params = [['a', 'b'], ['c', 'd']]
     output = ['a', 'd']
 
فهرسة الشريحة في مصفوفة:
indices = [[1], [0]]
     params = [['a', 'b'], ['c', 'd']]
     output = [['c', 'd'], ['a', 'b']]
 
الفهرسة في موتر 3:
indices = [[1]]
     params = [[['a0', 'b0'], ['c0', 'd0']],
               [['a1', 'b1'], ['c1', 'd1']]]
     output = [[['a1', 'b1'], ['c1', 'd1']]]
 
 
     indices = [[0, 1], [1, 0]]
     params = [[['a0', 'b0'], ['c0', 'd0']],
               [['a1', 'b1'], ['c1', 'd1']]]
     output = [['c0', 'd0'], ['a1', 'b1']]
 
 
     indices = [[0, 0, 1], [1, 0, 1]]
     params = [[['a0', 'b0'], ['c0', 'd0']],
               [['a1', 'b1'], ['c1', 'd1']]]
     output = ['b0', 'b1']
 
فهرسة مجمعة في مصفوفة:
indices = [[[0, 0]], [[0, 1]]]
     params = [['a', 'b'], ['c', 'd']]
     output = [['a'], ['b']]
 
فهرسة الشريحة المجمعة في مصفوفة:
indices = [[[1]], [[0]]]
     params = [['a', 'b'], ['c', 'd']]
     output = [[['c', 'd']], [['a', 'b']]]
 
فهرسة مجمعة في مصفوفة موتر ثلاثي:
indices = [[[1]], [[0]]]
     params = [[['a0', 'b0'], ['c0', 'd0']],
               [['a1', 'b1'], ['c1', 'd1']]]
     output = [[[['a1', 'b1'], ['c1', 'd1']]],
               [[['a0', 'b0'], ['c0', 'd0']]]]
 
     indices = [[[0, 1], [1, 0]], [[0, 0], [1, 1]]]
     params = [[['a0', 'b0'], ['c0', 'd0']],
               [['a1', 'b1'], ['c1', 'd1']]]
     output = [[['c0', 'd0'], ['a1', 'b1']],
               [['a0', 'b0'], ['c1', 'd1']]]
 
 
     indices = [[[0, 0, 1], [1, 0, 1]], [[0, 1, 1], [1, 1, 0]]]
     params = [[['a0', 'b0'], ['c0', 'd0']],
               [['a1', 'b1'], ['c1', 'd1']]]
     output = [['b0', 'b1'], ['d0', 'c1']]
 
راجع أيضًا "tf.gather" و"tf.batch_gather".

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

الإخراج <T>
كإخراج ()
إرجاع المقبض الرمزي للموتر.
ثابت <T، U يمتد الرقم> اجمع <T>
إنشاء (نطاق النطاق ، معلمات المعامل <T>، مؤشرات المعامل <U>)
طريقة المصنع لإنشاء فئة تغلف عملية GatherNd جديدة.
الإخراج <T>
انتاج ()
تم جمع القيم من "المعلمات" من الفهارس المقدمة بواسطة "المؤشرات"، بالشكل `indices.shape[:-1] + params.shape[indices.shape[-1]:]`.

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

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

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

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

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

إنشاء GatherNd <T> ثابت عام (نطاق النطاق ، معلمات المعامل <T>، مؤشرات المعامل <U>)

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

حدود
نِطَاق النطاق الحالي
المعلمات الموتر الذي يتم جمع القيم منه.
المؤشرات مؤشر الموتر.
عائدات
  • مثيل جديد لـ GatherNd

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

تم جمع القيم من "المعلمات" من الفهارس المقدمة بواسطة "المؤشرات"، بالشكل `indices.shape[:-1] + params.shape[indices.shape[-1]:]`.