DynamicPartition

lớp cuối cùng công khai DynamicPartition

Phân vùng `dữ liệu` thành các tenxơ `num_partitions` bằng cách sử dụng các chỉ mục từ `phân vùng`.

Đối với mỗi bộ chỉ mục `js` có kích thước `partitions.ndim`, lát cắt `data[js, ...]` trở thành một phần của `outputs[partitions[js]]`. Các lát cắt có `partitions[js] = i` được đặt trong `outputs[i]` theo thứ tự từ điển của `js`, và chiều thứ nhất của `outputs[i]` là số mục trong `partitions` bằng `tôi`. Cụ thể,

outputs[i].shape = [sum(partitions == i)] + data.shape[partitions.ndim:]
 
     outputs[i] = pack([data[js, ...] for js if partitions[js] == i])
 
`data.shape` phải bắt đầu bằng `partitions.shape`.

Ví dụ:

# 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]
 
Xem `dynamic_stitch` để biết ví dụ về cách hợp nhất lại các phân vùng.

Phương pháp công khai

tĩnh <T> Phân vùng động <T>
tạo ( Phạm vi phạm vi, Dữ liệu toán hạng <T>, Phân vùng toán hạng <Số nguyên>, Phân vùng số dài)
Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác DynamicPartition mới.
Trình vòng lặp< Toán hạng <T>>
Danh sách< Đầu ra <T>>

Phương pháp kế thừa

Phương pháp công khai

public static DynamicPartition <T> tạo (Phạm vi phạm vi, Dữ liệu toán hạng <T>, Phân vùng toán hạng <Integer>, numPartitions dài)

Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác DynamicPartition mới.

Thông số
phạm vi phạm vi hiện tại
phân vùng Bất kỳ hình dạng. Các chỉ số trong phạm vi `[0, num_partitions)`.
số phân vùng Số lượng phân vùng để xuất.
Trả lại
  • một phiên bản mới của DynamicPartition

public Iterator< Toán hạng <T>> iterator ()

Danh sách công khai< Đầu ra <T>> đầu ra ()