Un'opzione per lo scambio di dati tra le repliche TPU.
Su ogni replica, l'input viene suddiviso in blocchi `split_count` lungo` split_dimension` e inviato alle altre repliche dato group_assignment. Dopo aver ricevuto `split_count` - 1 blocchi da altre repliche, concateniamo i blocchi lungo` concat_dimension` come output.
Ad esempio, supponiamo che ci siano 2 repliche TPU: la replica 0 riceve l'input: `[[A, B]]` la replica 1 riceve l'input: `[[C, D]]`
group_assignment = `[[0, 1]]` concat_dimension = 0 split_dimension = 1 split_count = 2
output della replica 0: `[[A], [C]]` output della replica 1: `[[B], [D]]`
Metodi pubblici
Uscita <T> | asOutput () Restituisce la maniglia simbolica di un tensore. |
statico <T> AllToAll <T> | |
Uscita <T> | uscita () Il risultato scambiato. |
Metodi ereditati
Metodi pubblici
output pubblico <T> asOutput ()
Restituisce la maniglia simbolica di un tensore.
Gli input per le operazioni TensorFlow sono output di un'altra operazione TensorFlow. Questo metodo viene utilizzato per ottenere un handle simbolico che rappresenta il calcolo dell'input.
public static AllToAll <T> create ( ambito ambito, operando <T> input, operando <Integer> groupAssignment, Long concatDimension, Long splitDimension, Long splitCount)
Metodo Factory per creare una classe che racchiude una nuova operazione AllToAll.
Parametri
scopo | ambito attuale |
---|---|
ingresso | L'input locale alla somma. |
groupAssignment | Un tensore int32 con forma [num_groups, num_replicas_per_group]. "group_assignment [i]" rappresenta gli id di replica nel iesimo sottogruppo. |
concatDimension | Il numero di dimensione da concatenare. |
splitDimension | Il numero di dimensione da dividere. |
splitCount | Il numero di divisioni, questo numero deve essere uguale alla dimensione del sottogruppo (group_assignment.get_shape () [1]) |
ritorna
- una nuova istanza di AllToAll