Pytorch 如何从张量求列?

Pytorch 如何从张量求列?,pytorch,tensor,Pytorch,Tensor,假设我有一个由1和0组成的张量,如下所示。如何获取特定列的索引以替换为新值?如果我想用[3,4,5,6.]替换第1列的值,我该如何实现 a = torch.tensor([[[1., 0., 0., 0.]], [[0., 1., 0., 0.]], [[1., 0., 0., 0.]], [[0., 0., 0., 1.]], [[1., 0., 0., 0.]], [[0., 0., 0., 1.]],

假设我有一个由1和0组成的张量,如下所示。如何获取特定列的索引以替换为新值?如果我想用[3,4,5,6.]替换第1列的值,我该如何实现

a = torch.tensor([[[1., 0., 0., 0.]],
        [[0., 1., 0., 0.]],
        [[1., 0., 0., 0.]],
        [[0., 0., 0., 1.]],
        [[1., 0., 0., 0.]],
        [[0., 0., 0., 1.]],
        [[1., 0., 0., 0.]]])

鉴于这是一个三维张量,将它们称为“列”有点棘手

这将满足您的需要,将“column”1设置为您给定的值

a = torch.tensor([[[1., 0., 0., 0.]],
        [[0., 1., 0., 0.]],
        [[1., 0., 0., 0.]],
        [[0., 0., 0., 1.]],
        [[1., 0., 0., 0.]],
        [[0., 0., 0., 1.]],
        [[1., 0., 0., 0.]]])

# Change values in 'column' 1 (zero-indexed):
# The 0 is there because of the size-1 second dimension.
a[1, 0, :] = torch.tensor([3., 4., 5., 6.])

print(a)
# tensor([[[1., 0., 0., 0.]],
#         [[3., 4., 5., 6.]],
#         [[1., 0., 0., 0.]],
#         [[0., 0., 0., 1.]],
#         [[1., 0., 0., 0.]],
#         [[0., 0., 0., 1.]],
#         [[1., 0., 0., 0.]]])

还有一件事,如何从列中获取元素?例如,如何从第1列获取元素2,从第2列获取元素3?同样,它们不是列。但是您可以再次使用方括号[]访问单个条目。a[1,0,:]请输入此列表的内容。这是一个三维张量,因此您需要提供3个坐标,例如
a[1,0,2]
。谢谢Arya!!!