Pytorch,Tensorflow Autograd/AutoDiff nutshells: Jacobian,Gradient,Hessian,JVP,VJP,etc

【机器学习基础】Hessian矩阵 本系列为《模式识别与机器学习》的读书笔记。 一,Hessian 矩阵 反向传播也可以⽤来计算误差函数的⼆阶导数,形式为 ∂2E∂wji∂wkl \frac{\partial^{2}{E}}{\partial{w_{ji}}\partial{w_{kl}}} ∂wji​∂wkl​∂2E​ 注意,有时将所有的权值和偏置参数看成⼀个向量(记作 w\boldsymbol{w}w )的元素 wiw_iw... 阅读详情

Pytorch,Tensorflow Autograd/AutoDiff nutshells: Jacobian,Gradient,Hessian,JVP,VJP,etc

Pytorch,MXNet,Tensorflow,JAX框架Auograd实现原理。

1.Jacobian matrix

Jacobian matrix 矩阵,简称Jacobian,简写J,是一阶偏导矩阵。

Jacobian来自德国数学家Carl Jacobi.

Jacobian是本文的核心内容,主要推理和计算都围绕Jacobian展开。

Given:

,f称为vector-vector function,

-

-性质:

1.对于 \vec{y}=W\vec{x},\vec{x},\vec{y}均为列向量,W为矩阵,

有 \frac{d\vec{y}}{d\vec{x}}=W.

即, J=W

2. \vec{x},\vec{y}为行向量时,W为矩阵, 1也成立。

 

特别是:

(1)当m=1,时,f称为 vector-scalar function,Jacobian退化为行向量,也就是gradient向量。

  gradient定义:

-按定义有:

-

-这个标准基向量e在求解VJP会用到。

(2)当m = n = 1, ,f称为 scalar-scalar function ,   Jacobian退化为单一量(single entry),即函数f的导数。

顺便:Hessian matrix 

Hessian matrix 矩阵,简称Hessian,简写H, 是二阶偏导矩阵.

Hessian matrix 来自德国数学家Otto Hesse.

请注意Hessian是Jacobian函数f的m=1的特殊情形。

Hessian函数f是vector-scalar function, Jacobian对应gradient的情形,因此Hessian称为梯度的梯度。

=梯度Gradient和Hessian 关系:

 

=Hessian矩阵与Jacobian矩阵的关系:

 函数f的Hessian矩阵是函数梯度的Jacobian矩阵。

即:H(f(x)) = J(∇f(x))

 

2.深度神经网络,复合函数,Autograd, 计算图CG, forward & reverse mode

深度神经网络求解过程可表示为一系列复合函数的正向传播计算函数值和反向传播计算微分.

In a Nutshell, Gradient-Based Parameter Optimization.

 

重要的,这些复合函数可形式化为DAG形式的计算图(CG,Computational Graph)(F. L. Bauer,1974),由此可以借助计算机自动求解微分,

这就是Automatic Differentiation,简称AutoDiff (请你记住Autograd是AutoDiff的一种流行实现, 由此导致普遍混用 )。

Autograd被今天流行的深度学习框架内核广泛采用,例如Pytorch,MXNet,Tensorflow,JAX,etc.

Autograd通常由机器学习框架实现,在模型训练阶段运行,机器学习框架的用户可以看做黑箱。

为何reverse mode autodiff更常见:

autodiff :事实上,由于矩阵乘法的结合性,计算微分可以选择正向或反向。

对于计算图CG,输入为叶节点,设维度为n;输出为根节点,设维度为m。

当输入维度远大于输出维度,如n>>m,甚至m=1,采用reverse mode高效,遍历CG的次数为m;

否则采用forward mode高效,遍历CG的次数为n。

常规的计算函数,通常满足n>>m,reverse mode更为实用。

另,没有免费午餐,采用reverse mode模式需要申请额外内存存储中间变量。

3.Autograd/AutoDiff算法实现,  JVP ,VJP,HVP

AutoDiff 基于两点认识:

一是无论多复杂的函数,都可以被分解为一系列单自变量或双自变量的基本函数;二是chain rule,微分链式法则。

准备:

为计算方便,避免直接实例化Jacobian矩阵。

先回忆Jacobin矩阵。

定义 Jacobian-vector product function,JVP

-

定义 vector-Jacobian product function,VJP

-

3.1 forward mode:

前向传播时,采用Jacobian vector products (JVPs)方式计算。

以pytorch Autograd为例:

【图片来源,PyTorch Autograd:Understanding the heart of PyTorch’s magic】

J-Jacobian如前所述,V-vector为Loss损失函数的梯度,

-

则JVP为

-

容易知道,避免直接计算J,V,通常转而计算JVP。

3.2 reverse mode:

reverse mode有另外一个名字,adjoint mode;

变量的微分记作\bar{x},也有另外一个名字adjoint( of x).

反向传播(避免使用后向传播这个词),采用vector Jacobian products (VJPs)方式计算。

 

例子:

函数f及其计算图

-

-求 O w.r.t. X 的梯度

-

-

\mathbf{e}_{i}\in \mathbb{R}^{m} 和J的VJP,Vector Jacobian product ,对应 Jacobian 矩阵的第i行。

这可以看做一个方向导数(梯度/法线,切线均为方向导数),e是标准基向量。

-

因此,O w.r.t. X 梯度 可解。

求解过程可理解为计算图反向传播构造VJP序列的过程。

当m=1时,计算代价为O(n^2).
 

reverse-mode AutoDiff 反向微分算法:

1.Forward/building the graph: 跟踪函数,将输入函数解析为单独的算子(OP),并建立一个计算图,其中每个节点都是一个OP。
2.Topological sort: 根据OP在计算图中的依存关系将其拓扑排序。
3.为每个Op实现VJP: 在计算图的上下文中有效计算op的导数的一种方法是使用它的VJP。
4.Backward: 使用计算图和每个节点/op的VJP,在计算图中反向传播构造VJP序列以获得任意点的导数。

以pytorch Autograd为例:

pytorch在利用计算图CG求导的过程中根节点是一个标量(否则老版本会报错,新版已改进),遍历一次CG即可求出梯度。

当根节点为一个向量的时候,会构建多个计算图CG对该向量中的每一个元素分别进行求导。

pytorch计算框架采用动态计算图DCG,一次backward计算之后DCG立刻被删除,下次重建。

特定情况下,如果3.3双反向传播,框架支持保留CG,在调用backward设置参数retain_graph=True,默认为Flase,CG被保存不会立即释放。

3.3 double backpropagation:  HVP,Hessian Vector Product

双反向传播,采用HVP方式计算。

4.工程实现

HIPS autograd

  https://github.com/hips/autograd

mattjj autodidact 

   https://github.com/mattjj/autodidact

AutoDiff-from-scratch 

   https://github.com/titaneric/AutoDiff-from-scratch

Pytorch

https://github.com/pytorch/pytorch/tree/master/torch/autograd

twitter / torch-autograd

https://github.com/twitter/torch-autograd

google / jax

https://github.com/google/jax/blob/master/jax/core.py

5.实验和验证

参考pytorch autograd的各种使用案例。不赘。

=============================================

Reference:

=========================

HIPS autograd https://github.com/hips/autograd

mattjj autodidact  https://github.com/mattjj/autodidact

AutoDiff-from-scratch  https://github.com/titaneric/AutoDiff-from-scratch

Building A Mental Model for Backpropagation
https://towardsdatascience.com/building-a-mental-model-for-backpropagation-987ac74d1821

Building A Basic Computational Graph Engine

http://alexminnaar.com/2018/07/14/simple-computational-graph-engine.html

 

Pytorch 相关

Autograd source code  pytorch/torch/autograd/

https://github.com/pytorch/pytorch/tree/master/torch/autograd

https://www.pytorchtutorial.com/pytorch-backward/

Understanding Autograd: 5 Pytorch tensor functions

https://medium.com/@namanphy/understanding-autograd-5-pytorch-tensor-functions-8f47c27dc38

 

A Gentle Introduction to torch.autograd

https://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html

PyTorch Autograd:Understanding the heart of PyTorch’s magic

https://towardsdatascience.com/pytorch-autograd-understanding-the-heart-of-pytorchs-magic-2686cd94ec95

中文,https://blog.youkuaiyun.com/OrdinaryMatthew/article/details/113728497

--

wiki, Jacobian matrix

https://math.wikia.org/wiki/Jacobian_matrix

What is the Jacobian matrix?

https://math.stackexchange.com/questions/14952/what-is-the-jacobian-matrix

Difference between gradient and Jacobian

https://math.stackexchange.com/questions/1519367/difference-between-gradient-and-jacobian

==

矩阵求导术(上)(下)

https://zhuanlan.zhihu.com/p/24709748

https://zhuanlan.zhihu.com/p/24863977

如何理解矩阵对矩阵求导?

https://www.zhihu.com/question/39523290

矩阵求导、几种重要的矩阵及常用的矩阵求导公式

https://blog.youkuaiyun.com/daaikuaichuan/article/details/80620518

==

pytorch中 backward 机制理解

https://blog.youkuaiyun.com/baidu_36161077/article/details/81435627

https://blog.youkuaiyun.com/qq_27825451/article/details/89393332

PyTorch中关于backward、grad、autograd的计算原理的深度剖析

https://blog.youkuaiyun.com/weixin_42782150/article/details/106116082

Computational Graph(计算图)

https://blog.youkuaiyun.com/zxl55/article/details/83537144

pytorch中backward()函数详解

https://blog.youkuaiyun.com/sinat_28731575/article/details/90342082

PyTorch 的 backward 为什么有一个 grad_variables 参数?

https://zhuanlan.zhihu.com/p/29923090

 

Ref:

F. L. Bauer,Computational Graphs and Rounding Error, 1974, SIAM J. Numer. Anal., 11(1), 87–96. (10 pages)

 

 

 

使用 Pfam 和 InterProScan 进行蛋白质家族和功能域的分析 本文介绍了使用Pfam和InterProScan进行蛋白质家族与功能域分析的方法。主要内容包括:1) Pfam数据库的本地化使用,通过hmmscan工具比对Pfam-A.hmm数据库,并提供了批量处理Python脚本;2) InterProScan的安装配置与命令行参数详解,支持多数据库整合分析;3) 补充介绍了基于curl的Uniprot在线查询方法。文章提供了从软件安装到实战分析的完整流程,适用于本地化、批量化蛋白质功能注释需求,特别是无网络环境或大规模数据分析场景,适合不同水平的生物信息学用户。 阅读详情

相关推荐

AM243x多核MCU启动流程解析与OSPI Flash烧录实战

嵌入式系统开发中,引导加载器是芯片上电后执行的第一段软件,负责初始化硬件、加载操作系统或应用程序。其工作原理通常遵循多级引导链,从ROM固件到用户可定制的二级引导程序,逐级建立完整的软件运行环境。这一机制的技术价值在于实现可靠的系统启动、支持安全校验,并为多核异构架构提供协同基础。在应用场景上,引导加载器广泛应用于工业控制、汽车电子和物联网设备,确保设备能从非易失性存储器中自主启动。本文聚焦于TI AM243x这类高性能多核MCU,深入剖析其包含RBL和SBL在内的三级启动流程,并详细演示如何通过UART接

weixin_28703451的博客 582

pytorch 高阶导数、雅克比矩阵、海塞矩阵、海塞向量积 (Higher order derivative,Jacobian matrix, Hessian vector product)

主要就是利用torch.autograd.grad或者合理的backward Higher order derivative 求解∂nf∂xn\frac{\partial^n f}{\partial x^n}∂xn∂nf​,不求混合导数。利用∂∑xi∂xj=1\frac{\partial \sum x_i}{\partial x_j} =1∂xj​∂∑xi​​=1,链式求导法则和递推进行求解 de...

kdh的专栏 6812

不到200块!手把手教你用ZYNQ7010和AD9363攒一台自己的开源SDR硬件(附BOM清单)

本文详细介绍了如何用不到200元的预算,基于ZYNQ7010 FPGA和AD9363射频芯片打造一台功能完备的开源SDR硬件平台。从核心组件选型、PCB设计到焊接调试,提供全流程实战指南,特别适合预算有限的硬件爱好者和创客群体探索无线通信世界。

weixin_26854829的博客 479

使用python,pytorch求海森Hessian矩阵

  考虑一个函数$y=f(\textbf{x}) (R^n\rightarrow R)$,y的Hessian矩阵定义如下:   考虑一个函数:$$f(x)=b^Tx+\frac{1}{2}x^{T}Ax\\其中b^T=[1,3,5], A在代码中可读,可以自定义$$   求该函数在x = [0,0,0]处海森矩阵值的python代码如下:   本代码需要用到torch.autograd...

思念殇千寻的博客 8153

Cadence Sigrity PowerSI实战:从.brd到S参数提取的完整避坑指南

本文详细介绍了使用Cadence Sigrity PowerSI进行信号完整性分析的完整流程,从.brd文件预处理到S参数提取的关键技巧。通过实战案例和避坑指南,帮助工程师高效解决高速PCB设计中的信号质量问题,提升仿真精度和设计效率。

carrot的博客 694

3D结构光 vs TOF——手机厂商为何选择TOF方案?

3D视觉感知技术路线分析:结构光与TOF对比 3D视觉感知领域存在结构光和TOF两大主流技术。结构光基于三角定位法,精度高(毫米级)但工作距离短(<1.5米),适合人脸识别等近距离场景;TOF通过测量光脉冲飞行时间计算深度,精度中等(厘米级)但工作距离长(0.5-5米+),更适合AR导航等中远距离应用。手机厂商选型时考虑:前置认证选择结构光(如苹果FaceID),后置场景倾向TOF(安卓阵营),因后者更适配全面屏设计、环境适应性强且成本优势明显。两种技术互补共存,共同推动3D感知应用发展。

致力于lidar应用开发 111

pytorch教程之自动求导机制(AUTOGRAD)-从梯度和Jacobian矩阵讲起

文章目录0. Jacobian矩阵 参考资料 https://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html#sphx-glr-beginner-blitz-autograd-tutorial-py https://zhuanlan.zhihu.com/p/29923090 https://zhuanlan.zhihu.com/p/65609544 0. Jacobian矩阵 在pytorch和TensorFlow中,是不支持tens.

lankuohsing的博客 2558

成功解决安装cuda的时候,下载的文件自动消失,并且出现An unknown error has occurred

成功解决安装cuda的时候,下载的文件自动消失,并且出现An unknown error has occurred. 目录 解决问题 解决思路 解决方法 解决问题 安装cuda的时候,下载的文件自动消失,并且出现An unknown error has occurred. 解决思路 发生未知错误。 解决方法 很可能是因为当前电脑下载的cuda版本不适合当前电脑GPU支持的cuda版本! 推荐文章:CV:Win1..

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 7523

深度学习框架中的自动微分及高阶导数

如何求自动微分及高阶导数?

OneFlow深度学习框架 4851

Windows 11 安装 Miniforge,配置国内源

本文详细介绍了在 Windows 11 系统中安装 Miniforge 的完整流程,包括下载、安装选项设置、配置国内镜像源(如清华大学源)以加速包管理,并启用 mamba 提升依赖解析与安装速度。同时涵盖 conda 与 mamba 的基本使用验证、PowerShell 初始化及环境提示符优化,帮助用户快速搭建高效、开源、免费的 Python 科学计算环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 4510

在 FreeStyle SAP UI5 应用里优雅落地 Draft 草稿机制:用 DraftManager 封装 DraftController 的一套实战套路

SAP Fiori应用中,Draft草稿机制是解决业务中断、多人协作和长表单填写等痛点的核心能力。本文提出了一套针对FreeStyle SAP UI5应用的Draft管理方案,通过封装sap.ui.generic.app.transaction.DraftController为DraftManager服务类,将复杂的草稿操作逻辑集中管理。该方案实现了草稿的创建、激活、丢弃等核心功能,使控制器只需调用简单意图式API即可完成操作,同时解决了组件化架构下的上下文切换、统一错误处理等问题。文章还详细介绍了后端Dr

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2751

探索:Hessian逆秩1修正与其他优化方法的比较

1.背景介绍 随着数据量的增加,机器学习和深度学习的模型也越来越大,这导致了优化问题的难度增加。在这种情况下,优化方法的选择和优化技巧成为了关键。Hessian逆秩1(Hessian-vector product)修正是一种常用的优化方法,它通过修正Hessian矩阵来减少计算量,从而提高优化速度。在本文中,我们将对Hessian逆秩1修正与其他优化方法进行比较,分析其优缺点,并探讨其在大规模优...

AI天才研究院 1178

华为 MetaERP 集成盘古大模型、天筹 AI 求解器等生成式 AI 相关技术能力,结合华为云数智融合平台的支撑,在供应链预测中围绕需求预测、物料匹配

华为 MetaERP 集成盘古大模型、天筹 AI 求解器等生成式 AI 相关技术能力,结合华为云数智融合平台的支撑,在供应链预测中围绕需求预测、物料匹配、风险预警等核心场景开展实践,大幅提升了供应链预测的精准度与效率,以下是具体实践内容及成效: 动态需求预测,降低库存偏差华为供应链涉及数万种采购物料,物料清单层级高,且市场需求波动大。MetaERP 集成华为云 ModelArts 等工具构建专属动态需求预测模型,融合深度学习算法,纳入市场趋势、历史销售、产能数据等多维度信息进行综合预测。在华为自身供应链应

金牌架构师 700

python求向量函数的雅可比矩阵_计算方法 python【类方法】 使用雅可比方法(吉文斯变换)Jacobi&Givens Transformation 求实对称矩阵的特征值...

import math as mtimport copyclass SquareMatrix():def __init__(self,a):self.A = self.ori = aself.n = len(a)self.trans = []self.Q = [[0]*self.n for i in range(self.n)]for i in range(self.n):self.Q[i][i...

weixin_39757739的博客 669

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

pytorch 要点之雅可比向量积

自动微分是 PyTorch 深度学习框架的核心。既然是核心,就需要敲黑板、划重点学习。同时,带来另外一个重要的数学概念:雅可比向量积。

2401_82469710的博客 2626

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Pytorch中autograd的vector-Jacobian product

autograd是Pytorch的重要部分,vector-Jacobian product更是其中重点 以三维向量值函数为例: 按Tensor, Element-Wise机制运算,但实际上表示的是: Y 对 X的导数不是2X而是一个Jacobian矩阵(因为X,Y是向量,不是一维实数): 其中,它是关于的函数,而不仅仅只是关于 x1 ,这儿的特殊性是由Elem...

kaggle expert,全球排名前1000,清华计算机研究生,兴趣算法工程 1089

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

自动微分库AutoDiff: 深度学习与优化的新引擎

自动微分库AutoDiff: 深度学习与优化的新引擎 去发现同类优质开源项目:https://gitcode.com/ 在当今的数据驱动世界中,自动微分(AutoDiff)已成为机器学习和优化问题的核心技术。它使得我们能够轻松地计算复杂函数的导数,这对于训练神经网络模型至关重要。今天,我将向大家推荐一个高效、易于使用的开源自动微分库——,让我们一起探讨它的特性,应用场景,以及为何你应该考虑在你的项...

gitblog_00027的博客 595

Hessian逆秩1修正与深度学习的结合

1.背景介绍 深度学习是近年来最热门的人工智能领域之一,它主要通过多层神经网络来学习数据的复杂关系,并在大规模数据集上取得了令人印象深刻的成果。然而,深度学习模型的训练过程中,梯度消失和梯度爆炸等问题常常会影响模型的收敛性能。为了解决这些问题,人工智能科学家和计算机科学家们提出了许多优化算法,其中之一是Hessian逆秩1修正(Hessian-vector product)。 在本文中,我们将...

AI天才研究院 1230

Jacobian矩阵和Hessian矩阵

1. Jacobian 转载自:http://jacoxu.com/?p=146 在向量分析中, 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式. 还有, 在代数几何中, 代数曲线的雅可比量表示雅可比簇:伴随该曲线的一个代数群, 曲线可以嵌入其中. 它们全部都以数学家卡尔·雅可比(Carl Jacob, 1804年10月4日-1851年2月18日)命名;英文雅可比

MemRay 2万+

转载知乎上的 pytorch autograd 中vector-Jacobian product的解释

先写一下自己的理解,其实就是说y=f(x),这里的y和x都是向量哈 y对于x的导数J其实是一个雅克比矩阵,而pytorch里其实求的是vector-Jacobian product 即 ,其中是列向量 详解Pytorch 自动微分里的(vector-Jacobian product) mathmad 数学,人工智能,经典文学 是Pytorch的重型武器之一,理解它的核心关键在于理...

gstc123的博客 968

使用PyTorch的自动求导功能 计算雅可比矩阵(细节)

雅可比矩阵是对多元函数的导数进行梯度扩展的一种矩阵表示。对于一个具有m个输入和n个输出的函数,雅可比矩阵的大小为n×m。雅可比矩阵中的每个元素表示了输出分量相对于输入分量的偏导数。自动求导是PyTorch的一项重要功能。在计算过程中,PyTorch会为每个参与计算的张量建立一个计算图,用于记录计算过程中涉及的操作和张量之间的依赖关系,基于这个计算图,PyTorch可以根据链式法则自动计算函数的导数。

weixin_45044014的博客 1747

探索Autodiff:自动微分库的高效解决方案

探索Autodiff:自动微分库的高效解决方案 autodiffautomatic differentiation made easier for C++项目地址:https://gitcode.com/gh_mirrors/au/autodiff 在机器学习和深度学习的世界里,自动微分(Automatic Differentiation, AD)是一个不可或缺的工具,它为梯度计算提供了准确且高...

gitblog_00062的博客 768

自动微分(AutoDiff)的原理

自动微分(AutoDiff)的原理 1/ 各种自动微分的优缺点1 机器学习的一个重要的任务,就是对参数求导得到损失函数对于每个参数的偏导数,然后进行梯度下降。 而求偏微分,可以选择的方法有:手工微分(manual differentiation)、符号微分(symbolic differentiation)、数值微分(numerical differentiation)、前向自动微分(forward-mode autodiff)和反向自动微分(reverse-mode autodiff)。 而在 Julia

强劲九 1926

接口测试系列——AutoDiff流量回放在集成测试中的实践应用

1.1 迭代形态及组织变化迭代加快在当今的互联网行业的形态背景下,产品需求迭代都愈加地追求快速交付流动,大部分公司都采用精益产品研发流程。那么在汽车之家经销商bu内部,我们近2年的平均需求交付时间≈4天。而潜在的问题是,由于原自动化接口测试的开发/维护成本较高已追不上迭代,我们大部分的回归测试是被跳过的,更多要依赖开发人员水平+测试人员经验,所以一旦常规的节奏被打破(紧急需求插入、人员状态、人员变化等),回归缺失的问题就会暴露出来,而这种外来变化其实也越来越频繁。项目/人员变更随着公司内部布局的各种变化,也

2468

【亲测免费】 开源项目 `autodiff` 使用教程

`autodiff` 是一个使用 C++17 编写的自动微分库。以下是其主要目录结构及其功能介绍: - **arquive/benchmarks**: 包含性能基准测试文件。 - **github/workflows**: 包含 GitHub Actions 的工作流配置文件。 - **art**: 可能包含项目相关的艺术资源。 - **autodiff**: 核心库文件。 - **cmake*...

gitblog_00789的博客 1007

python从入门到入土_自动微分从入门到入土(三):实现JVP

上篇文章介绍了如何实现VJP求导,本文则介绍一下如何实现自动微分中的JVP求导。1 注册梯度VJP求导是从后向前求导,实现较为简单,而JVP求导则是从前向后求导,它存在的一个问题在于很难以一种简洁的方法实现高阶求导,因为导数计算时还会注册梯度,而JVP从前向后的计算机制会很容易让程序陷入无限循环。为了解决这一问题,我们需要让每个JVPDiffArray是自完备的,即它要携带所有涉及到它自己的求导所...

weixin_39551993的博客 770
上一篇: Google Cloud Setup and Tutorial
下一篇: tangents, gradients,normals
WorldModel
博客等级 码龄27年 23粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值