แบ่งพาร์ติชัน "ข้อมูล" ลงในเทนเซอร์ "num_partitions" โดยใช้ดัชนีจาก "พาร์ติชั่น"
สำหรับแต่ละดัชนี tuple `js` ที่มีขนาด `partitions.nim` สไลซ์ `data[js, ...]` จะกลายเป็นส่วนหนึ่งของ `outputs[partitions[js]]` ชิ้นที่มี `partitions[js] = i` ถูกวางไว้ใน `outputs[i]` ตามลำดับศัพท์ของ `js` และมิติแรกของ `outputs[i]` คือจำนวนรายการใน `partitions' ที่เท่ากับ `ฉัน` ในรายละเอียด
outputs[i].shape = [sum(partitions == i)] + data.shape[partitions.ndim:]
outputs[i] = pack([data[js, ...] for js if partitions[js] == i])
"data.shape" ต้องขึ้นต้นด้วย "partitions.shape"ตัวอย่างเช่น:
# Scalar partitions.
partitions = 1
num_partitions = 2
data = [10, 20]
outputs[0] = [] # Empty with shape [0, 2]
outputs[1] = [[10, 20]]
# Vector partitions.
partitions = [0, 0, 1, 1, 0]
num_partitions = 2
data = [10, 20, 30, 40, 50]
outputs[0] = [10, 20, 50]
outputs[1] = [30, 40]
ดู `dynamic_stitch` สำหรับตัวอย่างเกี่ยวกับวิธีการรวมพาร์ติชั่นกลับ 
วิธีการสาธารณะ
สแตติก <T> DynamicPartition <T> | สร้าง ( ขอบเขต ขอบเขต, ข้อมูลตัวถูกดำเนิน การ <T>, พาร์ติชัน <จำนวนเต็ม> ตัวถูกดำเนินการ, numPartitions แบบยาว) วิธีการจากโรงงานเพื่อสร้างคลาสที่ปิดการดำเนินการ DynamicPartition ใหม่ |
ตัววนซ้ำ< ตัวถูกดำเนินการ < T >> | ตัววนซ้ำ () |
รายการ< เอาท์พุต <T>> | เอาท์พุท () |
วิธีการสืบทอด
วิธีการสาธารณะ
DynamicPartition สาธารณะ <T> สร้าง ( ขอบเขต ขอบเขต, ข้อมูลตัวถูกดำเนิน การ <T>, พาร์ติชัน Operand < Integer>, numPartitions แบบยาว)
วิธีการจากโรงงานเพื่อสร้างคลาสที่ปิดการดำเนินการ DynamicPartition ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
พาร์ทิชัน | รูปร่างใดๆ. ดัชนีในช่วง `[0, num_partitions)` |
numPartitions | จำนวนพาร์ติชันที่จะส่งออก |
คืนสินค้า
- อินสแตนซ์ใหม่ของ DynamicPartition