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