PyTorch torch.linalg.norm 関数


Pytorch torch 参考手册Pytorch torch リファレンスマニュアル

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:
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)

Pytorch torch 参考手册Pytorch torch リファレンスマニュアル

その他の拡張