链式法则解释上游梯度应用

过程。

假设我们有一个计算图:
Code 代码

CodeBlock-module__code--gyjSL 复制代码
<span style="background-color:var(--bgColor-default)"><span style="color:var(--fgColor-default, var(--color-fg-default))"><code>x → x² → L (损失函数)
</code></span></span>

根据链式法则:
Code 代码

CodeBlock-module__code--gyjSL 复制代码
<span style="background-color:var(--bgColor-default)"><span style="color:var(--fgColor-default, var(--color-fg-default))"><code>dL/dx = dL/d(x²) * d(x²)/dx
</code></span></span>

其中:

  • dL/d(x²) 就是 upstream_grad(上游梯度)
  • d(x²)/dx = 2x 是平方函数的导数
  • x 就是 self.data

所以:
Python

CodeBlock-module__code--gyjSL 复制代码
<span style="background-color:var(--bgColor-default)"><span style="color:var(--fgColor-default, var(--color-fg-default))"><code><span style="color:var(--color-prettylights-syntax-keyword)">self</span>.grad += upstream_grad * <span style="color:var(--color-prettylights-syntax-constant)">2</span> * <span style="color:var(--color-prettylights-syntax-keyword)">self</span>.data
<span style="color:var(--color-prettylights-syntax-comment)">#          = dL/d(x²)   * d(x²)/dx</span></code></span></span>
相关推荐
小白64027 小时前
2025年终总结-迷途漫漫,终有一归
前端·程序人生
Jm_洋洋7 小时前
【C++进阶】虚函数、虚表与虚指针:多态底层机制剖析
java·开发语言·c++
老骥伏枥~7 小时前
C# 控制台:Console.ReadLine / WriteLine
开发语言·c#
烟花落o7 小时前
贪吃蛇及相关知识点讲解
c语言·前端·游戏开发·贪吃蛇·编程学习
kgduu7 小时前
js之javascript API
javascript
爱装代码的小瓶子7 小时前
【C++与Linux基础】进程如何打开磁盘文件:从open()到文件描述符的奇妙旅程(更多源码讲解)
linux·开发语言·c++
diediedei7 小时前
嵌入式C++驱动开发
开发语言·c++·算法
晚霞的不甘7 小时前
Flutter for OpenHarmony专注与习惯的完美融合: 打造你的高效生活助手
前端·数据库·经验分享·flutter·前端框架·生活
码云数智-园园7 小时前
深入理解与正确实现 .NET 中的 BackgroundService
java·开发语言
田野追逐星光7 小时前
STL中容器list -- 讲解超详细
开发语言·c++·list