У меня та же проблема, что и у агрегированного среднего значения по группам в 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)
Итак, мой ожидаемый результат:
Код: Выделить всё
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