Группировать совокупный продукт в PyTorchPython

Программы на Python
Anonymous
 Группировать совокупный продукт в PyTorch

Сообщение Anonymous »

У меня та же проблема, что и у агрегированного среднего значения по группам в pytorch. Однако я хочу создать продукт моих тензоров внутри каждой группы (или меток). К сожалению, мне не удалось найти встроенную функцию PyTorch, которая могла бы решить мою проблему, например гипотетическую scatter_prod_ для продуктов (эквивалентную scatter_add_ для сумм), которая использовалась в одном из ответов.
Перерабатывая пример кода из вопроса @elyase, рассмотрим двумерный тензор:

Код: Выделить всё

samples = torch.Tensor([
[0.1, 0.1],    #-> group / class 1
[0.2, 0.2],    #-> group / class 2
[0.4, 0.4],    #-> group / class 2
[0.0, 0.0]     #-> group / class 0
])
с метками, где верно, что len(samples) == len(labels)

Код: Выделить всё

labels = torch.LongTensor([1, 2, 2, 0])
Итак, мой ожидаемый результат:

Код: Выделить всё

res == torch.Tensor([
[0.0, 0.0],
[0.1, 0.1],
[0.08, 0.08] # -> PRODUCT of [0.2, 0.2] and [0.4, 0.4]
])
Здесь снова возникает вопрос, следуя за вопросом @elyase, как это можно сделать в чистом PyTorch (т. е. без numpy, чтобы я мог автоградировать) и в идеале без циклов for?
Перекрестно размещено на форумах PyTorch.>

Подробнее здесь: https://stackoverflow.com/questions/746 ... in-pytorch

Вернуться в «Python»