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

jnp.linalg.norm

jnp.linalg.norm 是 JAX 中用于计算向量或矩阵的范数的函数。JAX 是一个用于高性能机器学习研究的 Python 库,它提供了与 NumPy 类似的 API,但支持自动微分和加速计算。jnp 是 JAX 的 NumPy 接口。

jnp.linalg.norm 的基本语法

jnp.linalg.norm(x, ord=None, axis=None, keepdims=False)
参数
  • x:要计算范数的输入数组。可以是向量(1D 数组)或矩阵(2D 数组)。
  • ord:指定要计算的范数的类型。可以是以下值之一:
    • None:默认的欧几里得范数(L2 范数)。
    • 1:L1 范数,向量元素绝对值之和。
    • 2:L2 范数,向量元素平方和的平方根。
    • inf:最大范数,向量元素的最大绝对值。
    • -inf:最小范数,向量元素的最小绝对值。
    • 对于矩阵,ord 可以是以下值之一:
      • 'fro'None:Frobenius 范数(元素平方和的平方根)。
      • 1:列和范数(每列元素绝对值之和的最大值)。
      • inf:行和范数(每行元素绝对值之和的最大值)。
  • axis:指定沿哪个轴计算范数。如果为 None,则计算整个数组的范数。对于向量,可以是一个整数;对于矩阵,可以是一个长度为 2 的元组,指定计算的维度。
  • keepdims:如果为 True,则在结果中保持原数组的维度。这对于保持与输入数组的形状一致性很有用。
返回值

返回计算后的范数值。如果 axisNone,则返回单个值;否则返回按指定轴计算的范数。

示例

计算向量的 L2 范数(默认)
import jax.numpy as jnpx = jnp.array([1, 2, 3])
l2_norm = jnp.linalg.norm(x)
print(l2_norm)  # 输出: 3.7416573867739413
计算向量的 L1 范数
l1_norm = jnp.linalg.norm(x, ord=1)
print(l1_norm)  # 输出: 6.0
计算矩阵的 Frobenius 范数
A = jnp.array([[1, 2, 3], [4, 5, 6]])
frobenius_norm = jnp.linalg.norm(A)
print(frobenius_norm)  # 输出: 9.539392014169456
计算矩阵的列和范数
column_sum_norm = jnp.linalg.norm(A, ord=1)
print(column_sum_norm)  # 输出: 9.0
计算矩阵的行和范数
row_sum_norm = jnp.linalg.norm(A, ord=jnp.inf)
print(row_sum_norm)  # 输出: 15.0
沿指定轴计算范数

计算每列的 L2 范数:

column_l2_norms = jnp.linalg.norm(A, axis=0)
print(column_l2_norms)  # 输出: [4.1231055 5.3851647 6.708204]

计算每行的 L2 范数:

row_l2_norms = jnp.linalg.norm(A, axis=1)
print(row_l2_norms)  # 输出: [ 3.7416575  8.774964 ]

总结

jnp.linalg.norm 是一个强大且灵活的工具,用于计算向量和矩阵的各种范数。通过指定不同的 ordaxis 参数,可以计算出不同类型和不同轴上的范数。

相关文章:

  • 1. C++面向过程
  • 强化安全新篇章:韶关石油化工可燃气体报警器年检解析
  • 收费4980的AI批量混剪,素材技术方法工具配套,详细拆解!
  • Mongodb UPDATE使用$sort将数组重新排序
  • 【嵌入式开发】UART
  • grpc代理服务的实现(一)
  • 硬引用、软引用、弱引用、虚引用和原子引用
  • 架构风格-系统架构师(十五
  • Pipeline知识小记
  • 复分析——第6章—— Γ 函数和 ζ 函数(E.M. Stein R. Shakarchi)
  • PCL 点云RANSAC+SVD提取平面
  • 一文了解HarmonyOSNEXT发布重点内容
  • ubuntu22.04安装onlyoffice社区版
  • React-配置json-server
  • 认识和使用 Vite 环境变量配置,优化定制化开发体验
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • Git学习与使用心得(1)—— 初始化
  • IOS评论框不贴底(ios12新bug)
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Vue 动态创建 component
  • webpack+react项目初体验——记录我的webpack环境配置
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 坑!为什么View.startAnimation不起作用?
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 全栈开发——Linux
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 深度学习中的信息论知识详解
  • 一道面试题引发的“血案”
  • 再谈express与koa的对比
  • # include “ “ 和 # include < >两者的区别
  • #100天计划# 2013年9月29日
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (10)ATF MMU转换表
  • (C语言)fread与fwrite详解
  • (Ruby)Ubuntu12.04安装Rails环境
  • (定时器/计数器)中断系统(详解与使用)
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一)kafka实战——kafka源码编译启动
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)scrum常见工具列表
  • (转)甲方乙方——赵民谈找工作
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .gitignore文件---让git自动忽略指定文件
  • .Net CF下精确的计时器
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET+WPF 桌面快速启动工具 GeekDesk
  • .Net--CLS,CTS,CLI,BCL,FCL
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET命令行(CLI)常用命令