Op เพื่อแลกเปลี่ยนข้อมูลระหว่างแบบจำลอง TPU
ในแต่ละเรพลิกา อินพุตจะถูกแบ่งออกเป็นบล็อก `split_count` ตาม 'split_daiment` และส่งไปยังเรพลิกาอื่นๆ ที่กำหนด group_assignment หลังจากได้รับ `split_count` - 1 บล็อกจากแบบจำลองอื่น เราจะต่อบล็อกต่างๆ ตาม `concat_ dimensions` เป็นเอาต์พุต
ตัวอย่างเช่น สมมติว่ามีแบบจำลอง TPU 2 ตัว: แบบจำลอง 0 ได้รับอินพุต: `[[A, B]]` แบบจำลอง 1 ได้รับอินพุต: `[[C, D]]`
group_signment=`[[0, 1]]` concat_size=0 split_ dimensions=1 split_count=2
เอาต์พุตของแบบจำลอง 0: `[[A], [C]]` เอาต์พุตของแบบจำลอง 1: `[[B], [D]]`
ค่าคงที่
| สตริง | OP_NAME | ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow | 
วิธีการสาธารณะ
| เอาท์พุต <T> |  เป็นเอาท์พุต ()  ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์ | 
| คงที่ <T ขยาย TType > AllToAll <T> | |
| เอาท์พุต <T> |  เอาท์พุท ()  ผลการแลกเปลี่ยน.  | 
วิธีการสืบทอด
ค่าคงที่
สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME
ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow
วิธีการสาธารณะ
เอาท์ พุท สาธารณะ <T> asOutput ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต
สร้าง AllToAll <T> แบบคงที่สาธารณะ (ขอบเขต ขอบเขต , ตัวดำเนินการ <T> อินพุต, ตัวดำเนินการ <TInt32> groupAssignment, Long concatDimension, Long splitDimension, Long splitCount)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ AllToAll ใหม่
พารามิเตอร์
| ขอบเขต | ขอบเขตปัจจุบัน | 
|---|---|
| ป้อนข้อมูล | อินพุตท้องถิ่นเพื่อผลรวม | 
| การมอบหมายกลุ่ม | เทนเซอร์ int32 ที่มีรูปร่าง [num_groups, num_replicas_per_group] `group_assignment[i]` แสดงถึงรหัสจำลองในกลุ่มย่อยที่ ith | 
| เชื่อมต่อมิติ | หมายเลขมิติที่จะต่อกัน | 
| แยกมิติ | หมายเลขมิติที่จะแยก | 
| แยกนับ | จำนวนการแยก จำนวนนี้ต้องเท่ากับขนาดกลุ่มย่อย(group_assignment.get_shape()[1]) | 
การส่งคืน
- อินสแตนซ์ใหม่ของ AllToAll