Particiona `data` em tensores `num_partitions` usando índices de `partitions`.
Para cada tupla de índice `js` de tamanho `partitions.ndim`, a fatia `data[js, ...]` torna-se parte de `outputs[partitions[js]]`. As fatias com `partições[js] = i` são colocadas em `saídas[i]` na ordem lexicográfica de `js`, e a primeira dimensão de `saídas[i]` é o número de entradas em `partições` igual a `eu`. Em detalhes,
outputs[i].shape = [sum(partitions == i)] + data.shape[partitions.ndim:]
outputs[i] = pack([data[js, ...] for js if partitions[js] == i])
`data.shape` deve começar com `partitions.shape`.Por exemplo:
# 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]
Veja `dynamic_stitch` para um exemplo de como mesclar partições de volta. Gera: * `InvalidArgumentError` nos seguintes casos: - Se as partições não estiverem no intervalo `[0, num_partiions)` - Se `partitions.shape` não corresponder ao prefixo do argumento `data.shape`.
Métodos Públicos
estática <T> Partição Dinâmica <T> | create (escopo do escopo , dados do operando <T>, partições do operando <inteiro>, numPartitions longas) Método de fábrica para criar uma classe que agrupa uma nova operação DynamicPartition. |
Iterador< Operando <T>> | iterador () |
Lista< Saída <T>> | saídas () |
Métodos herdados
Métodos Públicos
public static DynamicPartition <T> create (escopo do escopo , dados do operando <T>, partições do operando <inteiro>, numPartitions longas)
Método de fábrica para criar uma classe que agrupa uma nova operação DynamicPartition.
Parâmetros
escopo | escopo atual |
---|---|
partições | Qualquer formato. Índices no intervalo `[0, num_partitions)`. |
numPartições | O número de partições para saída. |
Devoluções
- uma nova instância de DynamicPartition