Una operación para intercambiar datos entre réplicas de TPU.
En cada réplica, la entrada se divide en bloques `split_count` a lo largo de `split_dimension` y se envía a las otras réplicas dada la asignación_grupo. Después de recibir `split_count` - 1 bloques de otras réplicas, concatenamos los bloques a lo largo de `concat_dimension` como salida.
Por ejemplo, supongamos que hay 2 réplicas de TPU: la réplica 0 recibe la entrada: `[[A, B]]` la réplica 1 recibe la entrada: `[[C, D]]`
group_assignment=`[[0, 1]]` concat_dimension=0 split_dimension=1 split_count=2
Salida de la réplica 0: `[[A], [C]]` Salida de la réplica 1: `[[B], [D]]`
Métodos públicos
Salida <T> | como salida () Devuelve el identificador simbólico de un tensor. |
estático <T> Todos a todos <T> | crear (alcance del alcance , entrada del operando <T>, asignación de grupo del operando <entero>, dimensión concat larga, dimensión dividida larga, cuenta dividida larga) Método de fábrica para crear una clase que envuelve una nueva operación AllToAll. |
Salida <T> | producción () El resultado intercambiado. |
Métodos heredados
Métodos públicos
Salida pública <T> como Salida ()
Devuelve el identificador simbólico de un tensor.
Las entradas a las operaciones de TensorFlow son salidas de otra operación de TensorFlow. Este método se utiliza para obtener un identificador simbólico que representa el cálculo de la entrada.
creación pública estática AllToAll <T> (alcance del alcance , entrada del operando <T>, asignación de grupo del operando <Integer>, dimensión concat larga, dimensión dividida larga, cuenta dividida larga)
Método de fábrica para crear una clase que envuelve una nueva operación AllToAll.
Parámetros
alcance | alcance actual |
---|---|
aporte | La entrada local a la suma. |
asignación grupal | Un tensor int32 con forma [num_groups, num_replicas_per_group]. `group_assignment[i]` representa los identificadores de réplica en el subgrupo i. |
concatDimensión | El número de dimensión que se va a concatenar. |
dimensión dividida | El número de dimensión que se va a dividir. |
dividirContar | El número de divisiones, este número debe ser igual al tamaño del subgrupo (group_assignment.get_shape()[1]) |
Devoluciones
- una nueva instancia de AllToAll