تحذير: تم إهمال واجهة برمجة التطبيقات هذه وستتم إزالتها في إصدار مستقبلي من TensorFlow بعد استقرار الاستبدال .

GatherNd

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

اجمع الشرائح من "params" في Tensor بالشكل المحدد بواسطة "الفهارس".

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

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

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

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

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

البعد الأخير لـ "الفهارس" يتوافق مع العناصر (إذا كان `الفهارس.شكل [-1] == params.rank`) أو الشرائح (إذا كان` شكل الفهارس [-1] <params.rank`) بطول مؤشرات الأبعاد. شكل [-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']]]
 
a 3-tensor:
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>
asOutput ()
إرجاع المقبض الرمزي للموتر.
ثابت <T ، U يمتد الرقم> GatherNd <T>
إنشاء ( نطاق النطاق ، معاملات <T> ، عوامل التشغيل <U> فهارس)
طريقة المصنع لإنشاء فئة التفاف لعملية GatherNd جديدة.
الإخراج <T>
الإخراج ()
تم جمع القيم من "params" من الفهارس المعطاة بواسطة "الفهارس" ، مع مؤشرات الشكل. الشكل [: - 1] + params.shape [indices.shape [-1]:] `.

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

الطرق العامة

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

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

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

Public static GatherNd <T> إنشاء ( نطاق النطاق ، معاملات <T> ، عامل التشغيل <U> فهارس)

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

المعلمات
مجال النطاق الحالي
بارامز الموتر الذي يتم تجميع القيم منه.
المؤشرات موتر الفهرس.
عائدات
  • مثيل جديد من GatherNd

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

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