PyTorch torch.linalg.norm 関数
torch.linalg.normは PyTorch の線形代数モジュールで、行列またはベクトルのノルムを計算するための関数です。L1、L2、Frobenius ノルムなど、さまざまなノルムタイプをサポートしています。
関数定義
torch.linalg.norm(A, ord=None, dim=None, keepdim=False, out=None, dtype=None)
引数:
A(Tensor): 入力テンソル。ord(int, float, inf, -inf, オプション): ノルムタイプ。デフォルトは 'fro'。dim(int, tuple, オプション): ノルムを計算する次元。keepdim(bool, オプション): 次元を保持するかどうか。デフォルトは False。dtype(torch.dtype, オプション): 出力データ型。
戻り値:
torch.Tensor: ノルム値を返します。
使用例
例 - Frobenius ノルム
import torch
# 行列を作成
A = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
# Frobenius ノルム
norm_fro = torch.linalg.norm(A)
print("行列 A:")
print(A)
print("Frobenius ノルム:", norm_fro)
# 行列を作成
A = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
# Frobenius ノルム
norm_fro = torch.linalg.norm(A)
print("行列 A:")
print(A)
print("Frobenius ノルム:", norm_fro)
出力結果:
矩阵 A:
tensor([[1., 2.],
[3., 4.]])
Frobenius 范数: tensor(5.4772)
例 - ベクトル L2 ノルム
import torch
# ベクトルを作成
v = torch.tensor([3.0, 4.0])
# L2 ノルム (デフォルト)
norm_l2 = torch.linalg.norm(v)
# L1 ノルム
norm_l1 = torch.linalg.norm(v, ord=1)
print("ベクトル v:", v)
print("L2 ノルム:", norm_l2)
print("L1 ノルム:", norm_l1)
# ベクトルを作成
v = torch.tensor([3.0, 4.0])
# L2 ノルム (デフォルト)
norm_l2 = torch.linalg.norm(v)
# L1 ノルム
norm_l1 = torch.linalg.norm(v, ord=1)
print("ベクトル v:", v)
print("L2 ノルム:", norm_l2)
print("L1 ノルム:", norm_l1)
その他の拡張
Pytorch torch リファレンスマニュアル