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


Python PyTorch matrix_norm用法及代碼示例


本文簡要介紹python語言中 torch.linalg.matrix_norm 的用法。

用法:

torch.linalg.matrix_norm(A, ord='fro', dim=(- 2, - 1), keepdim=False, *, dtype=None, out=None) → Tensor

參數

  • A(Tensor) -具有兩個或多個維度的張量。默認情況下,它的形狀被解釋為 (*, m, n) 其中 * 是零個或多個批處理維度,但可以使用 dim 控製此行為。

  • ord(int,inf,-inf,'fro','nuc',可選的) - 規範的順序。默認:‘fro’

  • dim(元組[int,int],可選的) - 計算範數的維度。默認:(-2, -1)

  • keepdim(bool,可選的) -如果設置為 True ,則減少的維度將作為大小為 1 的維度保留在結果中。默認值:False

關鍵字參數

  • out(Tensor,可選的) -輸出張量。如果 None 則忽略。默認值:None

  • dtype(torch.dtype, 可選的) -如果指定,則在執行操作之前輸入張量將轉換為 dtype ,並且返回的張量的類型將為 dtype 。默認值:None

返回

一個實值張量,即使 A 是複數。

計算矩陣範數。

如果 A 是複數值,則計算 A .abs() 的範數

支持 float、double、cfloat 和 cdouble 數據類型的輸入。還支持批量矩陣:範數將在 2 元組 dim 指定的維度上計算,其他維度將被視為批量維度。輸出將具有相同的批次尺寸。

ord 定義計算的矩陣範數。支持以下規範:

ord

矩陣範數

‘fro’(默認)

弗羅貝尼烏斯範數

‘nuc’

核規範

inf

max(sum(abs(x), dim=1))

-inf

min(sum(abs(x), dim=1))

1

max(sum(abs(x), dim=0))

-1

min(sum(abs(x), dim=0))

2

最大奇異值

-2

最小奇異值

其中 inf 指的是 float(‘inf’) 、NumPy 的 inf 對象或任何等效對象。

例子:

>>> from torch import linalg as LA
>>> A = torch.arange(9, dtype=torch.float).reshape(3, 3)
>>> A
tensor([[0., 1., 2.],
        [3., 4., 5.],
        [6., 7., 8.]])
>>> LA.matrix_norm(A)
tensor(14.2829)
>>> LA.matrix_norm(A, ord=-1)
tensor(9.)
>>> B = A.expand(2, -1, -1)
>>> B
tensor([[[0., 1., 2.],
        [3., 4., 5.],
        [6., 7., 8.]],

        [[0., 1., 2.],
        [3., 4., 5.],
        [6., 7., 8.]]])
>>> LA.matrix_norm(B)
tensor([14.2829, 14.2829])
>>> LA.matrix_norm(B, dim=(0, 2))
tensor([ 3.1623, 10.0000, 17.2627])

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.linalg.matrix_norm。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。