评价此页

torch.diagonal_scatter#

torch.diagonal_scatter(input, src, offset=0, dim1=0, dim2=1) Tensor#

src 张量的值嵌入到 input 张量沿 input 的对角线元素中,相对于 dim1dim2

此函数返回一个具有新存储的张量;它不返回视图。

参数 offset 控制要考虑的对角线

  • 如果 offset = 0,则为主对角线。

  • 如果 offset > 0,则位于主对角线之上。

  • 如果 offset < 0,则位于主对角线之下。

参数
  • input (Tensor) – 输入张量。必须至少是二维的。

  • src (Tensor) – 要嵌入到 input 中的张量。

  • offset (int, optional) – 要考虑的对角线。默认值:0(主对角线)。

  • dim1 (int, optional) – 第一个维度,相对于其取对角线。默认值:0。

  • dim2 (int, optional) – 第二个维度,相对于其取对角线。默认值:1。

注意

src 必须是适当的大小才能嵌入到 input 中。具体来说,它应该与 torch.diagonal(input, offset, dim1, dim2) 具有相同的形状

示例

>>> a = torch.zeros(3, 3)
>>> a
tensor([[0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.]])

>>> torch.diagonal_scatter(a, torch.ones(3), 0)
tensor([[1., 0., 0.],
        [0., 1., 0.],
        [0., 0., 1.]])

>>> torch.diagonal_scatter(a, torch.ones(2), 1)
tensor([[0., 1., 0.],
        [0., 0., 1.],
        [0., 0., 0.]])