當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。