【发布时间】:2021-06-05 04:14:29
【问题描述】:
我什至在互联网上找到有同样问题的人都遇到了一些麻烦,因为它很难简洁地表达......:/
基本上我的问题是我有一个 pytorch 张量,称之为 n:
tensor([[2., 2., 2., 2.],
[2., 2., 2., 2.],
[2., 2., 2., 2.]])
我想以下列方式更改列的值:
tensor([[1., 1., 1., 1.],
[1., 2., 1., 1.],
[2., 2., 1., 2.]])
即对于第一列,我希望索引 0:2 为 1,对于第二列,我希望索引 0:1 为 1,等等。
我尝试以这种方式定义开始和结束张量,但它似乎不起作用:
start = torch.Tensor([0, 0, 0, 0])
end = torch.Tensor([2, 1, 3, 2])
n[start: end] = 1
但这不起作用,我得到一个 typeError:
TypeError:只有单个元素的整数张量可以转换为索引
我不确定这是否可以通过内置的 torch 操作实现,或者我是否必须手动遍历 n 的每一行。
【问题讨论】: