当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PyTorch diagonal用法及代码示例


本文简要介绍python语言中 torch.diagonal 的用法。

用法:

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

参数

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

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

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

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

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

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

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

  • 如果offset > 0,它在主对角线之上。

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

torch.diag_embed() 应用于具有相同参数的此函数的输出会产生一个对角矩阵,其中包含输入的对角线条目。但是, torch.diag_embed() 具有不同的默认尺寸,因此需要明确指定。

注意

要获取批量对角线,请传入 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, 0)
tensor([-1.0854, -0.0905, -0.4945])


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


>>> 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.org大神的英文原创作品 torch.diagonal。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。