AllToAll

ประชาชน AllToAll ชั้นสุดท้าย

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

ประชาชน เอาท์พุท <T> เอาท์พุท ()

ผลการแลกเปลี่ยน