"Verileri", "bölümlerden" gelen dizinleri kullanarak "sayı_bölüm" tensörlerine ayırır.
'partitions.ndim' boyutundaki her bir indeks tuple'ı 'js' için, 'data[js, ...]' dilimi 'outputs[partitions[js]]'in parçası haline gelir. 'partitions[js] = i' olan dilimler, 'outputs[i]' içine sözlükbilimsel olarak 'js' sırasına göre yerleştirilir ve 'outputs[i]'nin ilk boyutu, 'partitions'daki girişlerin sayısıdır. "ben". Ayrıntılı olarak,
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` ile başlamalıdır.Örneğin:
# 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]
Bölümlerin nasıl tekrar birleştirileceğine ilişkin bir örnek için `dynamic_stitch'e bakın. Şu durumlarda: * `InvalidArgumentError` hatası oluşur: - Bölümler `[0, num_partiions)` aralığında değilse - `partitions.shape`, `data.shape` bağımsız değişkeninin önekiyle eşleşmiyorsa.
Genel Yöntemler
statik <T> DynamicPartition <T> | |
Yineleyici< İşlenen <T>> | yineleyici () |
Liste< Çıkış <T>> | çıktılar () |
Kalıtsal Yöntemler
Genel Yöntemler
public static DynamicPartition <T> create ( Kapsam kapsamı, İşlenen <T> verileri, İşlenen <Tamsayı> bölümleri, Uzun numPartitions)
Yeni bir DynamicPartition işlemini saran bir sınıf oluşturmak için fabrika yöntemi.
Parametreler
kapsam | mevcut kapsam |
---|---|
bölümler | Herhangi bir şekil. "[0, num_partitions)" aralığındaki dizinler. |
sayıBölümler | Çıkışı yapılacak bölüm sayısı. |
İadeler
- DynamicPartition'ın yeni bir örneği