GatherNd

שיעור הגמר הציבורי GatherNd

אסוף פרוסות מ-'params' לתוך Tensor עם הצורה המצוינת על-ידי 'מדדים'.

`מדדים` הוא טנזור שלם K-ממדי, הטוב ביותר לחשוב עליו כ-Tensor ממדי (K-1) של מדדים לתוך `פארמים`, כאשר כל אלמנט מגדיר פרוסה של `פארמים`:

פלט[\\(i_0, ..., i_{K-2}\\)] = params[מדדים[\\(i_0, ..., i_{K-2}\\)]]

בעוד ב-`tf.gather` `מדדים` מגדיר פרוסות לממד `הציר` של `params`, ב`tf.gather_nd`, `מדדים` מגדיר פרוסות לממדים `N` הראשונים של `params`, כאשר `N = indices.shape[-1]`.

הממד האחרון של 'מדדים' יכול להיות לכל היותר את הדרגה של 'פארמים':

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

הממד האחרון של `מדדים` מתאים לאלמנטים (אם `indices.shape[-1] == params.rank`) או לפרוסות (אם `indices.shape[-1] < params.rank`) לאורך `מדדים. צורה[-1]` של `params`. לטנזור הפלט יש צורה

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

שימו לב שב-CPU, אם נמצא אינדקס מחוץ לתחום, מוחזרת שגיאה. ב-GPU, אם נמצא אינדקס מחוץ לתחום, 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-tensor:
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>
ליצור ( היקף היקף , פרמטרים של Operand <T>, מדדי Operand <U>)
שיטת מפעל ליצירת מחלקה העוטפת פעולת GatherNd חדשה.
פלט <T>
פלט ()
ערכים מ-'params' שנאספו ממדדים שניתנו על-ידי 'מדדים', עם הצורה 'indices.shape[:-1] + params.shape[indices.shape[-1]:]'.

שיטות בירושה

שיטות ציבוריות

פלט ציבורי <T> asOutput ()

מחזירה את הידית הסמלית של טנזור.

כניסות לפעולות TensorFlow הן יציאות של פעולת TensorFlow אחרת. שיטה זו משמשת להשגת ידית סמלית המייצגת את חישוב הקלט.

Public static GatherNd <T> create ( היקף היקף , פרמטרים של Operand <T>, מדדי Operand <U>)

שיטת מפעל ליצירת מחלקה העוטפת פעולת GatherNd חדשה.

פרמטרים
תְחוּם ההיקף הנוכחי
params הטנסור שממנו לאסוף ערכים.
מדדים טנסור אינדקס.
החזרות
  • מופע חדש של GatherNd

פלט ציבורי <T> פלט ()

ערכים מ-'params' שנאספו ממדדים שניתנו על-ידי 'מדדים', עם הצורה 'indices.shape[:-1] + params.shape[indices.shape[-1]:]'.