当前位置: 首页 > news >正文

pytorch ---- torch.linalg.norm()函数

torch.linalg.norm 是 PyTorch 中用于计算张量范数(Norm)的函数。范数是线性代数中的一个重要概念,用于量化向量或矩阵的大小或长度。这个函数可以处理任意形状的张量,支持多种类型的范数计算。

1.函数签名 

torch.linalg.norm(input, ord=None, dim=None, keepdim=False, dtype=None) -> Tensor

参数说明

  • input:
    要计算范数的张量。

  • ord (可选):
    范数的类型,决定范数的计算公式。常见值:

    • None(默认):计算 Frobenius 范数(矩阵)或 2 范数(向量)。
    • 1: 1 范数(列绝对值之和,或向量绝对值之和)。
    • 2: 2 范数(Euclidean 范数,平方和的平方根)。
    • 'fro': Frobenius 范数(矩阵的元素平方和开方)。
    • inf: 无穷范数(矩阵的行绝对值和最大值)。
    • -inf: 负无穷范数(矩阵的行绝对值和最小值)。
  • dim (可选):
    指定计算范数的维度。

    • 若为 None,计算整个张量的范数。
    • 若指定为单个或多个维度,则按维度计算范数。
  • keepdim (布尔,可选):
    如果为 True,结果会保留被归约的维度,维度的大小为 1

  • dtype (可选):
    指定计算中使用的数据类型,常用于提高数值精度。

返回值

返回计算出的张量范数。结果是一个标量或一个张量(取决于是否指定 dim 参数)。

常见用法示例

(1) 计算向量的 2 范数

计算向量的欧几里得长度(平方和的平方根)。

import torchx = torch.tensor([3.0, 4.0])
norm = torch.linalg.norm(x)
print(norm)  # 输出: 5.0 (因为 sqrt(3^2 + 4^2) = 5)

(2) 计算矩阵的 Frobenius 范数

A = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
norm = torch.linalg.norm(A, ord='fro')
print(norm)  # 输出: 5.4772 (因为 sqrt(1^2 + 2^2 + 3^2 + 4^2) ≈ 5.4772)

 (3) 按维度计算范数

B = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
norm_dim0 = torch.linalg.norm(B, ord=1, dim=0)
print(norm_dim0)  # 输出: tensor([4., 6.]) (列绝对值之和)norm_dim1 = torch.linalg.norm(B, ord=1, dim=1)
print(norm_dim1)  # 输出: tensor([3., 7.]) (行绝对值之和)

 (4) 计算无穷范数

C = torch.tensor([[1.0, -2.0], [3.0, -4.0]])
inf_norm = torch.linalg.norm(C, ord=float('inf'))
print(inf_norm)  # 输出: 7.0 (最大行绝对值和)

 (5) 计算负无穷范数

neg_inf_norm = torch.linalg.norm(C, ord=float('-inf'))
print(neg_inf_norm)  # 输出: 3.0 (最小行绝对值和)

http://www.lryc.cn/news/504726.html

相关文章:

  • 系列1:基于Centos-8.6部署Kubernetes (1.24-1.30)
  • spring学习(spring-bean实例化(无参构造与有参构造方法实现)详解)
  • Arm Cortex-M处理器对比表
  • 【git、gerrit】特性分支合入主分支方法 git rebase 、git cherry-pick、git merge
  • WPF 相比 winform 的优势
  • PYQT5程序框架
  • Linux 中的 mkdir 命令:深入解析
  • 【人工智能解读】神经网络(CNN)的特点及其应用场景器学习(Machine Learning, ML)的基本概念
  • Linux栈帧
  • leetcode刷题——回溯算法(1)
  • 3D相框案例讲解(详细)
  • 制作安装包
  • P8615 拼接平方数 P8699 排列数
  • 【C语言】拆解C语言的编译过程
  • 【C++】青蛙跳跃问题解析与解法
  • 自动驾驶AVM环视算法--python版本的俯视TOP投影模式
  • Go 语言与时间拳击理论下的结对编程:开启高效研发编程之旅
  • Qt+OPC开发笔记(一):OPCUA介绍、open62541介绍、编译与基础环境Demo
  • ElasticSearch 常见故障解析与修复秘籍
  • 序列模型的使用示例
  • 对rust的全局变量使用drop方法
  • Node.js教程入门第一课:环境安装
  • Visual Studio 使用 GitHub Copilot 扩展
  • 【Qualcomm】IPQ5018获取TR069 WiFi 接口Stats状态方法
  • 数字营销咨询,照亮企业营销数字化每一步
  • 修改vscode中emmet中jsx和tsx语法中className的扩展符号从单引号到双引号 - HTML代码补全 - 单引号双引号
  • 【Cmake】
  • Flutter 内嵌 unity3d for android
  • sqlite加密-QtCipherSqlitePlugin 上
  • 正交投影 (Orthographic Projection) 详解