torch.diagonal_scatter

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

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

此函数返回一个具有新存储空间的张量,而不是返回视图。

参数 offset 控制要考虑哪一条对角线:

  • offset = 0 时,表示为主对角线。

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

  • 如果 offset 小于 0,它位于主对角线之下。

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

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

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

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

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

注意

src 必须与 input 具有相同的大小,才能被嵌入。具体来说,src 的形状应与 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.]])
本页目录