【发布时间】:2020-08-01 01:21:12
【问题描述】:
我有:
inp = torch.randn(4, 1040, 161)
我还有另一个名为 indices 的张量,其值:
tensor([[124, 583, 158, 529],
[172, 631, 206, 577]], device='cuda:0')
我想要相当于:
inp0 = inp[:,124:172,:]
inp1 = inp[:,583:631,:]
inp2 = inp[:,158:206,:]
inp3 = inp[:,529:577,:]
除了全部加在一起,.size 为[4, 48, 161]。我怎样才能做到这一点?
目前,我的解决方案是 for 循环:
left_indices = torch.empty(inp.size(0), self.side_length, inp.size(2))
for batch_index in range(len(inp)):
print(left_indices_start[batch_index].item())
left_indices[batch_index] = inp[batch_index, left_indices_start[batch_index].item():left_indices_end[batch_index].item()]
【问题讨论】:
-
@Shanoon 你是想把所有的
inp_is 都堆起来还是分开? -
我想把它们叠起来
-
我的回答将它们全部叠加起来。最终形状为
(4, 192, 161)
标签: python numpy pytorch tensor