jax可微分编程的笔记

jax可微分编程的笔记

1.1.1 求导的基本概念

所谓的导数是一个从集合F到自身的映射.
有时,我们也将一个从函数到函数的映射称为一个操作,
这里的操作在物理学中也被称作一个算符.
但在计算机中的操作符相当于数学中的一个函数,而非从
函数到函数的映射.

应该指出的是,如果我们将求导(包括偏导数)这样的操作
视一个由程序所定义的操作grad,那么,grad操作的
输入和输出都将是相同的类型的函数。换言之,一个求导
操作应该被视作一个从函数的集合Fmn到其自身的映射;
容易看出,这样的映射是确定并且唯一的。求导作为一种
操作的唯一性,是对其进行程序实现的数学前提。

1.1.2 梯度操作

梯度操作是一个从函数集Fn1到Fnn的映射。
从几何的角度来看,f:Rn->R给出了一个n维空间之中的标量场。
它将n维空间中的一个点对应到一个实数;则grad f 对应着一个
n维空间之中的矢量场,它将n维空间中的一个点对应到一个n维
的矢量。映射的结果 grad f(x) 属于 n 维空间,给出了n维空间
中标量场f在点x=(x1,x2,....xn)上增长最快的方向。有时,我也会
认为梯度操作 grad:Fn1->Fnn本身是n维的。

而从程序实现的角度来看,它等价于对多元函数同时进行了n次偏导数
的操作。

1.1.3 雅可比矩阵

矩阵形式记法,使得诸如链式求导法则,这样的过程,可以被简单的
写成矩阵相乘。

1.2 手动求导

优点是不会引入额外的计算误差,同时程序运行性能有保证。
缺点程序编写易出错,代码难以扩展和复用。

1.3 数值微分

优点:原理简单,程序易于实现
缺点:有误差的引入的可能,输入的函数的参数数量有限制。

1.4.1 计算图

在编译原理中,可能通过计算图的构建,实现中缀表达表,和
前缀表达式,后缀表达式之间的相互转化。
应该指出的是,计算图在符号微分和自动微分中所扮演的地位是
本质性的。

1.4.2 计算图的构建

由于求导操作作用于乘法时,表达式的长度将显著地增长,因此,
在递归深度较大时,我们常常会面临表达式的长度的指数级膨胀,
这是符号微分在实际场景中所面临的困境之一。

1.4.3 SymPy库简介

SymPy库能够为我们保留到精确的分数,根号,及无理数Pi,这是
符号计算在解决实际问题时的一大应用。
不过,符号微分在实现对程序框架的设计提出了过高的要求:
所有的表达式必须是“闭合的”,即表达式中不得有条件语句和
循环语句等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/696765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue小记——this(2)

在Vue的方法中使用普通函数作为回调函数,那么在该回调函数中,this将不会指向Vue实例,而是指向全局对象(在浏览器中是window)。 错误 : export default { data() { return { message: Hello Vue! }; …

npm 包发布

name publish必填项(version,nameverson构成唯一标识),唯一,所以publish前验证库里是否存在该名称,方式npm info xxx npm ERR! 404 cy_test is not in the npm registry.可以使用。规则:不能以.或者_开头…

maven工程打包引入本地jar包

1、通过maven生成本地区仓库包 mvn install:install-file --settings D:\lkx\download\apache-maven-3.6.3\conf\settings.xml -Dfileaspose-cad-21.8.jar -DartifactIdaspose-cad -DgroupIdsystem.core -Dversion21.8 -Dpackagingjar -DgeneratePomtrue # --settings&#xf…

进程线程间的通信:2024/2/22

作业1&#xff1a;代码实现线程互斥机制 代码&#xff1a; #include <myhead.h>//临界资源 int num10;//创建一个互斥锁 pthread_mutex_t mutex;//任务一 void *task1(void *arg) {//获取锁资源pthread_mutex_lock(&mutex);num123;sleep(3);printf("task1:num…

PacketSender-用于发送/接收 TCP、UDP、SSL、HTTP 的网络实用程序

PacketSender-用于发送/接收 TCP、UDP、SSL、HTTP 的网络实用程序 PacketSender是一款开源的用于发送/接收 TCP、UDP、SSL、HTTP 的网络实用程序&#xff0c;作者为dannagle。 其官网地址为&#xff1a;https://packetsender.com/&#xff0c;Github源代码地址&#xff1a;htt…

【AI绘画工具分别有哪些?】

目前有许多AI绘画工具可供选择&#xff0c;以下列举了一些常见的AI绘画工具&#xff1a; 1. DeepArt.io&#xff1a;该工具使用深度学习算法生成艺术风格的图像&#xff0c;并可以将输入图像与指定的艺术风格进行合并。 2. Prisma&#xff1a;这是一款非常流行的AI绘画应用&a…

SQL Server —— While语句循环

一&#xff1a;简介 while 循环是有条件的循环控制语句。满足条件后&#xff0c;再执行循环体中的SQL语句。 while: break, 如果有多条语句可以在while后面添加begin-end。关于while的语法 while(条件) -- begin -- 语句1 -- 语句2 -- break 根据情况是否添加break -- end 二…

leetcode日记(32)字符串相乘

做了很久很久……真的太繁琐了&#xff01;&#xff01; class Solution { public:string multiply(string num1, string num2) {string s;string str;if (num1 "0" || num2 "0") return "0";for(int inum2.size()-1;i>0;i--){int c2num2[…

Open CASCADE学习|全局属性

目录 1、概念解释 质心&#xff1a; 重心&#xff1a; 惯性矩&#xff1a; 惯性矩阵&#xff1a; 主惯性矩&#xff1a; 静态惯性矩&#xff1a; 2、API 1、概念解释 质心&#xff1a; 质心是质量中心的简称&#xff0c;指物质系统上被认为质量集中于此的一个假想点。…

Qt:tabWidget控件

一、tabWidget用来做什么 tabWidget控件用来进行不同控件页面的跳转&#xff0c; 二、控件的一些函数功能 添加一个页面&#xff0c;返回index int addTab(QWidget *widget, const QString &); int addTab(QWidget *widget, const QIcon& icon, const QString &…

pytest教程-11-初识fixture

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了使用allure生成html测试报告的方法&#xff0c;本小节我们讲解一下pytest fixture测试夹具的使用方法。 前言 在做自动化的过程中&#xff0c;编写用例时候需要用到用例的前置和用例的后置&a…

2024年了,抖店还能做吗?适合新手吗?

我是电商珠珠 现在已经24年了&#xff0c;抖店也已经发展了四年了。其中有很多在门外观望的人&#xff0c;还在犹豫不决。认为抖店发展到今天&#xff0c;所有的红利早已在20年的时候就消失殆尽了&#xff0c;特别是没有经验的如果入驻了&#xff0c;既不能享受平台红利&#…

后端程序员入门react笔记(四)-综合运用,写一个小demo

样式模块化 有时候我们会遇到这样的问题&#xff0c;有两个css对一个class声明了样式&#xff0c;这样的话后引入的css会覆盖前面的css样式&#xff0c;导致样式冲突&#xff0c;那么我们怎么解决这种问题呢&#xff0c;我们可以使用样式的模块化&#xff0c;我们起名一个inde…

全栈笔记_浏览器扩展篇(插件开发 - chrome浏览器proxy代理)

代理类型 常用的包括http、https、socks代理 配置权限 要让扩展使用代理接口,需要声明proxy权限: // manifest.json "permissions": ["proxy" ]设置代理服务器 chrome.proxy.settings.set({ scope: ‘regular’, value: 代理配置},回调函数) 代理配…

【前端面经2】京东一面

题目来源&#xff1a;牛客网 自我介绍 动态参数解析的解决方案 对于动态部分使用…args进行接受&#xff0c;可以把动态部分提取成数组 前端安全问题 CDN劫持 内容安全策略CSP 安全沙箱 Iframe 跨站脚本攻击XSS 攻击者通过在目标网站上注入恶意脚本&#xff0c;使之在…

OpenHarmony驱动框架HDF中设备管理服务构建过程详解

前言 如下图&#xff0c;开源鸿蒙系统驱动框架HDF在内核中的实现&#xff0c;可以分为向用户层提供设备服务的管理模块&#xff08;Manager&#xff09;&#xff0c;和实际管理硬件的Host模块。 Manager分为DeviceManageService和 DeviceServiceManage&#xff0c;前者负责提供…

1.WEB渗透测试-前置基础知识-ip地址

ip地址&#xff1a; ip地址指的是互联网协议地址&#xff0c;是IP协议提供的一种统一的地址格式&#xff0c;以每一台联网的主机都有一个对应的ip地址&#xff0c;ip地址也可以理解为分配给用户上网使用的网际协议的设备的数字标签。通俗的来说就是你打电话时候的每个人都有自己…

AIGC 实战:如何使用 Docker 在 Ollama 上离线运行大模型(LLM)

Ollama简介 Ollama 是一个开源平台&#xff0c;用于管理和运行各种大型语言模型 (LLM)&#xff0c;例如 Llama 2、Mistral 和 Tinyllama。它提供命令行界面 (CLI) 用于安装、模型管理和交互。您可以使用 Ollama 根据您的需求下载、加载和运行不同的 LLM 模型。 Docker简介 D…

在Mac上搭建MongoDB环境

最近工作中需要装MongoDB环境&#xff0c;搭建过程中遇到了一些问题&#xff0c;在这里记录一下安装MongoDB环境的方法以及问题的解决方法。有两种安装MongoDB的方法&#xff1a;brew安装和手动安装。 目录 使用Homebrew安装MongoDB 手动安装MongoDB&#xff08;不使用Homebr…

备战蓝桥杯 Day11(滚动数组优化+完全背包)

01背包的滚动数组优化 【题目描述】 经典0—1背包问题,有n个物品&#xff0c;编号为i的物品的重量为w[i]&#xff0c;价值为c[i]&#xff0c;现在要从这些物品中选一些物品装到一个容量为m的背包中&#xff0c;使得背包内物体在总重量不超过m的前提下价值尽量大。 #include&…