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

pytorch基本运算-范数

引言

前序学习进程中,已经对pytorch基本运算有了详细探索,文章链接有:

基本运算
广播失效
乘除法和幂运算
hadamard积、点积和矩阵乘法

上述计算都是以pytorch张量为运算元素,这些张量基本上也集中在一维向量和二维矩阵,此时也必不可少会涉及到另一个重要概念:范数。

今天的学习目标就是掌握范数的基本定义和计算方法。

范数

本次主要讨论L1和L2范数。

L2范数

欧几里得距离是一个L2范数:假设n维向量x中的元素是x1,…,xn,其L2范数是向量元素平方和的平方根:
∥ x ∥ 2 = ∑ i = 1 n x i 2 \left \| x \right \|_{2}=\sqrt{\sum _{i=1}^{n}x_{i}^{2}} x2=i=1nxi2 代码示例:

# 导入包
import torch
# 生成多维张量
y=torch.tensor([1.0,3.0])
# L2范数计算
z=torch.norm(y)
# 打印
print(z)
# L2平方
t=z*z
# 打印
print(t)

代码运行效果为:
L2范数

L1范数

L1范数:假设n维向量x中的元素是x1,…,xn,其L1范数是向量元素绝对值的和:
∥ x ∥ 1 = ∑ i = 1 n ∣ x i ∣ \left \| x \right \|_{1}=\sum _{i=1}^{n} \left | {x_{i}} \right | x1=i=1nxi代码示例:

# 导入包
import torch
# 生成多维张量
y=torch.tensor([6.0,8.0])
# L2范数计算
z=torch.norm(y)
# 打印
print(z)
# L2平方
t=z*z
# 打印
print(t)
# L1范数计算
p=torch.abs(y).sum()
# 打印
print(p)

代码运行效果为:
L1范数计算

矩阵范数

在已经讨论L1和L2范数的基础上,可以很直接地理解一个n行m列矩阵的范数计算公式应当为:
∥ x ∥ 2 = ∑ i = 1 n ∑ j = 1 m x i j 2 \left \| x \right \|_{2}=\sqrt{\sum _{i=1}^{n}\sum _{j=1}^{m}x_{ij}^{2}} x2=i=1nj=1mxij2 代码示例:

# 导入包
import torch
# 生成多维张量,5x5纯1矩阵
y=torch.ones([5,5])
# 打印
print('矩阵=',y)
# L2范数计算
z=torch.norm(y)
# 打印
print('L2=',z)
# L2平方
t=z*z
# 打印
print('L2*L2=',t)
# L1范数计算
p=torch.abs(y).sum()
# 打印
print('L1',p)

代码运行效果为:
矩阵范数

总结

学习了L1和L2范数的基本定义,对n行m’列矩阵范数的计算进行了探索。

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

相关文章:

  • uefi协议设计目的
  • springcloud openfeign 偶现 Caused by: java.net.UnknownHostException
  • Transformer实战——词嵌入技术详解
  • [pdf、epub]300道《软件方法》强化自测题业务建模需求分析共257页(202505更新)
  • Vue3入门指南:从零到精通的快速上手
  • 前端常见错误
  • 吴恩达MCP课程(5):mcp_chatbot_prompt_resource.py
  • 关于DDOS
  • 云服务器自带的防御可靠吗
  • Java详解LeetCode 热题 100(27):LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)详解
  • 设计模式——抽象工厂设计模式(创建型)
  • 基于LocalAI与cpolar技术协同的本地化AI模型部署与远程访问方案解析
  • Linux 云服务器部署 Flask 项目(含后台运行与 systemd 开机自启)
  • 霍尔效应传感器的革新突破:铟化铟晶体与结构演进驱动汽车点火系统升级
  • 无法运用pytorch环境、改环境路径、隔离环境
  • 从0开始学vue:pnpm怎么安装
  • React从基础入门到高级实战:React 实战项目 - 项目二:电商平台前端
  • Python 网络编程 -- WebSocket编程
  • 微信小程序动态组件加载的应用场景与实现方式
  • 人工智能在智能教育中的创新应用与未来趋势
  • 边缘计算应用实践心得
  • EXCEL如何快速批量给两字姓名中间加空格
  • OD 算法题 B卷【BOSS的收入】
  • Linux共享内存原理及系统调用分析
  • Jenkins | Linux环境部署Jenkins与部署java项目
  • react私有样式处理
  • UDP/TCP协议全解
  • nginx 服务启动失败问题记录
  • Duix.HeyGem:以“离线+开源”重构数字人创作生态
  • ubuntu22.04安装megaton