• 文档 >
  • torch >
  • torch.diagonal
快捷键

torch.diagonal

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

返回 input 的局部视图,其中相对于 dim1dim2 的对角线元素作为形状末尾的一个维度附加。

参数 offset 控制考虑哪个对角线:

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

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

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

torch.diag_embed() 应用于此函数的相同参数的输出,得到一个对角线矩阵,其对角线元素为输入值。然而, torch.diag_embed() 具有不同的默认维度,因此需要显式指定这些维度。

参数:
  • 输入(张量)- 输入张量。必须至少是二维的。

  • 偏移量(整数,可选)- 考虑哪个对角线。默认:0(主对角线)。

  • dim1(整数,可选)- 按照哪个维度取对角线。默认:0。

  • dim2(整数,可选)- 按照哪个维度取对角线。默认:1。

注意

要获取一个批处理对角矩阵,请传入 dim1=-2, dim2=-1。

示例:

>>> a = torch.randn(3, 3)
>>> a
tensor([[-1.0854,  1.1431, -0.1752],
        [ 0.8536, -0.0905,  0.0360],
        [ 0.6927, -0.3735, -0.4945]])


>>> torch.diagonal(a)
tensor([-1.0854, -0.0905, -0.4945])


>>> torch.diagonal(a, 1)
tensor([ 1.1431,  0.0360])

>>> b = torch.randn(2, 5)
>>> b
tensor([[-1.7948, -1.2731, -0.3181,  2.0200, -1.6745],
        [ 1.8262, -1.5049,  0.4114,  1.0704, -1.2607]])

>>> torch.diagonal(b, 1, 1, 0)
tensor([1.8262])

>>> x = torch.randn(2, 5, 4, 2)
>>> torch.diagonal(x, offset=-1, dim1=1, dim2=2)
tensor([[[-1.2631,  0.3755, -1.5977, -1.8172],
         [-1.1065,  1.0401, -0.2235, -0.7938]],

        [[-1.7325, -0.3081,  0.6166,  0.2335],
         [ 1.0500,  0.7336, -0.3836, -1.1015]]])

© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源