DynamicPartition

パブリック最終クラスDynamicPartition

`partitions` のインデックスを使用して `data` を `num_partitions` テンソルに分割します。

サイズ `partitions.ndim` のインデックス タプル `js` ごとに、スライス `data[js, ...]` が `outputs[partitions[js]]` の一部になります。 `partitions[js] = i` のスライスは、`js` の辞書編集順に `outputs[i]` に配置され、`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」を参照してください。

* 次の場合に `InvalidArgumentError` が発生します: - パーティションが `[0, num_partiions)` の範囲内にない場合 - `partitions.shape` が `data.shape` 引数のプレフィックスと一致しない場合。

パブリックメソッド

静的 <T>動的パーティション<T>
create (スコープスコープ、オペランド<T> データ、オペランド<Integer> パーティション、Long numPartitions)
新しい DynamicPartition 操作をラップするクラスを作成するためのファクトリ メソッド。
イテレータ<オペランド<T>>
リスト<出力<T>>

継承されたメソッド

パブリックメソッド

public static DynamicPartition <T> create (スコープスコープ、オペランド<T> データ、オペランド<Integer> パーティション、Long numPartitions)

新しい DynamicPartition 操作をラップするクラスを作成するためのファクトリ メソッド。

パラメータ
範囲現在のスコープ
パーティションあらゆる形状。 `[0, num_partitions)` の範囲のインデックス。
パーティション数出力するパーティションの数。
返品
  • DynamicPartition の新しいインスタンス

public Iterator<オペランド<T>> iterator ()

public List<出力<T>>出力()