切片张量的每个原始

时间:2020-03-03 16:10:26

标签: python pytorch

我的张量大小为(1124823 x 13)。我想从每个张量的中心开始,从左边取五个元素,从右边取五个元素。我做了这样的简单代码。它给了我

TypeError:在0维张量上迭代

i = 0
j = 6
base = feat.size(0)//2
for i in feat[i, j]:
    x = feat[base - 5: base:+5]
    i += 1

2 个答案:

答案 0 :(得分:0)

feat[i, j]将从2D张量中提取一个元素-因此,由于它是一个0维张量,因此无法对其进行迭代。

答案 1 :(得分:0)

那呢:

x = torch.rand(100,13) 
center = x.size(1) // 2                                                 
x1 = x[:, center:center+5] # torch.Size([100, 5]) (right)
x2 = x[:, center-5:center] # torch.Size([100, 5]) (left)

这就是你想要的吗?