一、自动微分的基础概念—计算图
要理解自动微分,必须先理解计算图:它是用 “节点” 和 “边” 直观表示计算过程的图形。
- 节点:分为两种 ——
- 变量节点(如输入 x、参数 w、中间结果 a、输出 y);
- 操作节点(如加法 \(+\)、乘法 \(\times\)、激活函数 \(\sigma\) 等)。
- 边:表示变量与操作之间的依赖关系(“谁是谁的输入”)

各个节点按照反向传播后,其梯度是否会被自动释放又可以分为:叶子节点和非叶子节点
1. 叶子节点(Leaf Nodes)
- 定义:用户直接创建的输入变量(如训练数据 x、模型参数 \(w, b\)),没有 “父节点”(不是任何操作的输出)。
- 特点:在反向传播中,它们的梯度会被保留(存储在
.grad属性中),因为模型训练需要用这些梯度更新参数
![]()
2. 非叶子节点(Non-leaf Nodes)
- 定义:由操作生成的中间结果(如 a = w * x、输出 y = a + b),有明确的 “父节点”(依赖其他变量)。
- 特点:反向传播后,它们的梯度会被自动释放(默认不保留),以节省内存(中间结果的梯度对参数更新没用)

最低0.47元/天 解锁文章
2452

被折叠的 条评论
为什么被折叠?



