GatherNd

الطبقة النهائية العامة 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]:]`.