Shortcuts

torch.diagonal_scatter

torch.diagonal_scatter(input, src, offset=0, dim1=0, dim2=1) 张量

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

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

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

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

  • 如果 offset 大于 0,则位于主对角线上方。

  • 如果 offset 小于 0,则位于主对角线下方。

Parameters
  • 输入 (张量) – 输入张量。必须至少是二维的。

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

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

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

  • dim2 (int, 可选) – 第二个维度,相对于该维度取对角线。默认值: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.]])
优云智算