本文簡要介紹python語言中 torch.linalg.norm
的用法。
用法:
torch.linalg.norm(A, ord=None, dim=None, keepdim=False, *, out=None, dtype=None) → Tensor
out(Tensor,可選的) -輸出張量。如果
None
則忽略。默認值:None
。dtype(
torch.dtype
, 可選的) -如果指定,則在執行操作之前輸入張量將轉換為dtype
,並且返回的張量的類型將為dtype
。默認值:None
一個實值張量,即使
A
是複數。計算向量或矩陣範數。
如果
A
是複數值,則計算A
.abs()
的範數支持 float、double、cfloat 和 cdouble dtypes 的輸入。
該函數是計算向量範數還是矩陣範數,其確定如下:
如果
dim
是int
,則將計算矢量範數。如果
dim
是2
-tuple
,則將計算矩陣範數。如果
dim
= None
和ord
= None
,A
將被展平為 1D 並且將計算結果向量的2
範數。如果
dim
= None
和ord
!= None
,A
必須是 1D 或 2D。
ord
定義計算的範數。支持以下規範:ord
矩陣的範數
向量的範數
None
(默認)弗羅貝尼烏斯範數
2
-norm(見下文)‘fro’
弗羅貝尼烏斯範數
- 不支持 -
‘nuc’
核規範
- 不支持 -
inf
max(sum(abs(x), dim=1))
max(abs(x))
-inf
min(sum(abs(x), dim=1))
min(abs(x))
0
- 不支持 -
sum(x != 0)
1
max(sum(abs(x), dim=0))
如下
-1
min(sum(abs(x), dim=0))
如下
2
最大奇異值
如下
-2
最小奇異值
如下
其他
int
或float
- 不支持 -
sum(abs(x)^{ord})^{(1 / ord)}
其中
inf
指的是float(‘inf’)
、NumPy 的inf
對象或任何等效對象。例子:
>>> from torch import linalg as LA >>> a = torch.arange(9, dtype=torch.float) - 4 >>> a tensor([-4., -3., -2., -1., 0., 1., 2., 3., 4.]) >>> B = a.reshape((3, 3)) >>> B tensor([[-4., -3., -2.], [-1., 0., 1.], [ 2., 3., 4.]]) >>> LA.norm(a) tensor(7.7460) >>> LA.norm(B) tensor(7.7460) >>> LA.norm(B, 'fro') tensor(7.7460) >>> LA.norm(a, float('inf')) tensor(4.) >>> LA.norm(B, float('inf')) tensor(9.) >>> LA.norm(a, -float('inf')) tensor(0.) >>> LA.norm(B, -float('inf')) tensor(2.) >>> LA.norm(a, 1) tensor(20.) >>> LA.norm(B, 1) tensor(7.) >>> LA.norm(a, -1) tensor(0.) >>> LA.norm(B, -1) tensor(6.) >>> LA.norm(a, 2) tensor(7.7460) >>> LA.norm(B, 2) tensor(7.3485) >>> LA.norm(a, -2) tensor(0.) >>> LA.norm(B.double(), -2) tensor(1.8570e-16, dtype=torch.float64) >>> LA.norm(a, 3) tensor(5.8480) >>> LA.norm(a, -3) tensor(0.)
使用
dim
參數計算向量範數:>>> c = torch.tensor([[1., 2., 3.], ... [-1, 1, 4]]) >>> LA.norm(c, dim=0) tensor([1.4142, 2.2361, 5.0000]) >>> LA.norm(c, dim=1) tensor([3.7417, 4.2426]) >>> LA.norm(c, ord=1, dim=1) tensor([6., 6.])
使用
dim
參數計算矩陣範數:>>> A = torch.arange(8, dtype=torch.float).reshape(2, 2, 2) >>> LA.norm(A, dim=(1,2)) tensor([ 3.7417, 11.2250]) >>> LA.norm(A[0, :, :]), LA.norm(A[1, :, :]) (tensor(3.7417), tensor(11.2250))
參數:
關鍵字參數:
返回:
相關用法
- Python PyTorch normal_用法及代碼示例
- Python PyTorch norm用法及代碼示例
- Python PyTorch normal用法及代碼示例
- Python PyTorch no_grad用法及代碼示例
- Python PyTorch noop_hook用法及代碼示例
- Python PyTorch nonzero用法及代碼示例
- Python PyTorch nanquantile用法及代碼示例
- Python PyTorch nll_loss用法及代碼示例
- Python PyTorch narrow用法及代碼示例
- Python PyTorch ngrams_iterator用法及代碼示例
- Python PyTorch nansum用法及代碼示例
- Python PyTorch numericalize_tokens_from_iterator用法及代碼示例
- Python PyTorch neg用法及代碼示例
- Python PyTorch nanmedian用法及代碼示例
- Python PyTorch ndtri用法及代碼示例
- Python PyTorch ne用法及代碼示例
- Python PyTorch nextafter用法及代碼示例
- Python PyTorch numel用法及代碼示例
- Python PyTorch nanmean用法及代碼示例
- Python PyTorch ndtr用法及代碼示例
- Python PyTorch nan_to_num用法及代碼示例
- Python PyTorch frexp用法及代碼示例
- Python PyTorch jvp用法及代碼示例
- Python PyTorch cholesky用法及代碼示例
- Python PyTorch vdot用法及代碼示例
注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.linalg.norm。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。