GatherNd

คลาสสุดท้ายสาธารณะ GatherNd

รวบรวมสไลซ์จาก "params" ให้เป็น Tensor โดยมีรูปร่างที่ระบุโดย "ดัชนี"

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

เอาต์พุต[\\(i_0, ..., i_{K-2}\\)] = params[ดัชนี[\\(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:
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']]]
 
จัดทำดัชนีแบบแบตช์ 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> params , ดัชนี ตัวถูกดำเนินการ <U>)
วิธีการ Factory เพื่อสร้างคลาสที่ปิดการดำเนินการ GatherNd ใหม่
เอาท์พุต <T>
เอาท์พุท ()
ค่าจาก "params" ที่รวบรวมจากดัชนีที่กำหนดโดย "indices" ที่มีรูปร่าง "indices.shape[:-1] + params.shape[indices.shape[-1]:]`

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

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

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

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

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

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

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

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

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

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