pytorch 如何在torch中用新矩阵替换部分矩阵

nwlls2ji  于 2023-01-30  发布在  其他
关注(0)|答案(1)|浏览(269)

考虑以下矩阵

>>> a = torch.Tensor([[1,2,3],[4,5,6], [7,8,9]])
>>> a
tensor([[1., 2., 3.],
        [4., 5., 6.],
        [7., 8., 9.]])
>>> b = torch.tensor([[1,1],[1,1]])
>>> b
tensor([[1, 1],
        [1, 1]])

我想用B替换a中的4个元素,其中它们的索引指定为X = [0,2]和Y = [0,2]
拥有:

>>>a
tensor([[1., 2., 1.],
        [4., 5., 6.],
        [1., 8., 1.]])

我寻找一些像scatter或put_index这样的操作,以便在几个命令(而不是循环)中更新矩阵。

nimxete2

nimxete21#

如果我们考虑X和Y是水平和垂直指标的两个Tensor,则以下公式可以起作用:

a[X.reshape(-1,1), Y] = b

相关问题