Операция для обмена данными между репликами TPU.
В каждой реплике входные данные разбиваются на блоки «split_count» по «split_dimension» и отправляются другим репликам с заданным параметром group_assignment. После получения блоков «split_count» — 1 от других реплик мы объединяем блоки по «concat_dimension» в качестве вывода.
Например, предположим, что имеется 2 реплики TPU: реплика 0 получает входные данные: `[[A, B]]` реплика 1 получает входные данные: `[[C, D]]`
group_assignment=`[[0, 1]]` concat_dimension=0 Split_dimension=1 Split_count=2
Вывод реплики 0: `[[A], [C]]` Вывод реплики 1: `[[B], [D]]`
Публичные методы
Выход <Т> | какВывод () Возвращает символический дескриптор тензора. |
статический <T> AllToAll <T> | |
Выход <Т> | выход () Обмененный результат. |
Унаследованные методы
Публичные методы
публичный вывод <T> asOutput ()
Возвращает символический дескриптор тензора.
Входные данные для операций TensorFlow являются выходными данными другой операции TensorFlow. Этот метод используется для получения символического дескриптора, который представляет собой вычисление входных данных.
public static AllToAll <T> create (область действия , ввод операнда <T>, операнд <Integer> groupAssignment, Long concatDimension, Long SplitDimension, Long SplitCount)
Фабричный метод для создания класса, обертывающего новую операцию AllToAll.
Параметры
объем | текущий объем |
---|---|
вход | Локальный вход в сумму. |
группаНазначение | Тензор int32 формы [num_groups, num_replicas_per_group]. `group_assignment[i]` представляет идентификаторы реплик в i-й подгруппе. |
concatDimension | Число измерения для объединения. |
SplitDimension | Число измерения, которое нужно разделить. |
СплитКаунт | Количество разбиений, это число должно равняться размеру подгруппы(group_assignment.get_shape()[1]) |
Возврат
- новый экземпляр AllToAll