GatherNd

ชั้นเรียนสุดท้ายสาธารณะ GatherNd

รวบรวมชิ้นส่วนจาก 'params' ลงในเทนเซอร์ที่มีรูปร่างที่ระบุโดย 'ดัชนี'

`indices` คือเทนเซอร์จำนวนเต็มมิติ K ซึ่งคิดได้ดีที่สุดว่าเป็นเทนเซอร์มิติ (K-1) ของดัชนีใน `params` โดยที่แต่ละองค์ประกอบจะกำหนดส่วนของ 'params':

เอาท์พุต[\\(i_0, ..., i_{K-2}\\)] = params[indices[\\(i_0, ..., i_{K-2}\\)]]

ในขณะที่ใน tf.gather `indices` จะกำหนดการแบ่งส่วนเป็นมิติ `axis` ของ `params` ใน tf.gather_nd `indices` จะกำหนดการแบ่งส่วนเป็นมิติ `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']
 
การจัดทำดัชนี Slice ลงในเมทริกซ์:
indices = [[1], [0]]
     params = [['a', 'b'], ['c', 'd']]
     output = [['c', 'd'], ['a', 'b']]
 
การทำดัชนีเป็น 3-tensor: l10n
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']
 
placeholder5 การจัดทำดัชนีเป็นชุดเป็นเมทริกซ์:
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']]]
 
การจัดทำดัชนีเป็นชุดเป็น 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>
เป็นเอาท์พุต ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
คงที่ <T, U ขยายจำนวน> GatherNd <T>
สร้าง (ขอบเขต ขอบเขต , พารามิเตอร์ ตัวดำเนินการ <T>, ดัชนี ตัวดำเนินการ <U>)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ GatherNd ใหม่
เอาท์พุต <T>
เอาท์พุท ()
ค่าจาก `params` ที่รวบรวมจากดัชนีที่กำหนดโดย `indices` ซึ่งมีรูปร่าง `indices.shape[:-1] + params.shape[indices.shape[-1]:]`

วิธีการสืบทอด

วิธีการสาธารณะ

เอาท์ พุท สาธารณะ <T> asOutput ()

ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์

อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต

สร้าง GatherNd <T> คงที่สาธารณะ (ขอบเขต ขอบเขต , พารามิเตอร์ ตัวดำเนินการ <T>, ดัชนี ตัวดำเนินการ <U>)

วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ GatherNd ใหม่

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
พารามิเตอร์ เทนเซอร์ที่ใช้รวบรวมค่าต่างๆ
ดัชนี ดัชนีเทนเซอร์
การส่งคืน
  • ตัวอย่างใหม่ของ GatherNd

เอาท์พุท สาธารณะ <T> เอาท์พุท ()

ค่าจาก `params` ที่รวบรวมจากดัชนีที่กำหนดโดย `indices` ซึ่งมีรูปร่าง `indices.shape[:-1] + params.shape[indices.shape[-1]:]`