Вы можете разделить b
на 4 с помощью chunk
, а затем использовать чанкированный b
для индексации нужного элемента:
>> a = torch.arange(3*3*3*3).view(3,3,3,3)
>> b = torch.LongTensor([[1,1,1,1], [2,2,2,2], [0, 0, 0, 0]]).t()
>> a[b.chunk(chunks=4, dim=0)] # here's the trick!
Out[24]: tensor([[40, 80, 0]])
Что приятно, так это то, что он может быть легко обобщен для любого измерения a
, вам просто нужно сделать количество патронов равным измерению a
.