#python #pytorch
#python #pytorch
Вопрос:
У меня есть тензор [[1,2],[4,5],[7,8]] и тензор с индексами [0,1,0].
Я хочу применить их ко второму измерению, чтобы оно возвращало: [1,5,8].
Как мне это сделать?
Спасибо!
Комментарии:
1. Вы имеете в виду, что оно должно возвращаться
[1, 5, 7]
? Кроме того, как вы пытались проиндексировать свой тензор и каков был результат?
Ответ №1:
import torch
arr=torch.tensor([[1,2],[4,5],[7,8]])
indices_arr=torch.tensor([0,1,0])
ret=arr[[0,1,2],indices_arr]
# print(ret)
# tensor([1, 5, 7])
Ответ №2:
Предполагая, что вы имеете в виду [1, 5, 7] для вывода:
Одним из решений было бы объединить тензор всех индексов для измерения 0 и желаемые индексы для измерения 1.
tensor = torch.tensor([[1,2],[4,5],[7,8]])
indices = torch.tensor([0,1,0])
output = tensor[torch.arange(0, tensor.size[0]), indices]
вывод:
tensor([1, 5, 7])