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 参考手册