首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PyTorch 核心机制参考 · Autograd

PyTorch 核心机制参考 · Autograd

作者头像
用户7511514
发布2026-07-16 19:11:34
发布2026-07-16 19:11:34
570
举报

计算树结构(树根 = loss,向上生长)

图例:

🟡根节点:loss

🔴中间节点:y, z, 合并节点(由运算生成)

🟢叶子节点:x, w1, w2(用户初始化)

流向:

前向:叶子 x, w1, w2 → 中间 z → 中间 y → loss

反向:loss → y → z → 同时分流至 x / w1(上游)及 w2


🔹 核心规则确认(PyTorch 官方文档)

梯度累积对象:“在反向传播 (.backward()) 期间,只有requires_grad=True的叶张量 (leaf tensors)的梯度才会被累积到其 .grad 字段中。” 供优化器使用;中间节点默认不留痕,叶子梯度每轮清零。

“算了不一定存,存了一定算,否则就是 None” 即:.gradNone ⇒ 该梯度一定被计算过;但计算过的梯度不一定被保存(非叶子默认丢弃)


🧩 三个核心属性

① requires_grad

定义:是否参与梯度计算(是否被纳入计算图)

True:参与链式求导,叶子节点梯度存入 .grad

False:不参与反向传播计算


② is_leaf

定义:是否为计算图的终点(叶子)

用户初始化→ is_leaf=True,梯度停留并存入 .grad

运算生成→ is_leaf=False,梯度仅临时回传


③ .grad

唯一用途:供优化器 step() 更新参数

非叶子:默认 None(除非 retain_grad())

叶子:被上游触及则存入,否则为 None


🌐 分布式数据并行 (DDP)

📌 官方设计文档:

https://docs.pytorch.ac.cn/docs/2.13/notes/ddp.html


📷 官方计算图参考

📌 图片引自 PyTorch Autograd Engine 官方文档


📚 参考资料

📄Autograd 机制:https://pytorch.ac.cn/docs/2.7/notes/autograd.html

📄Autograd 引擎概览:https://pytorch.org/blog/overview-of-pytorch-autograd-engine

📄分布式数据并行 (DDP):https://docs.pytorch.ac.cn/docs/2.13/notes/ddp.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 士心AI-志哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 计算树结构(树根 = loss,向上生长)
  • 🔹 核心规则确认(PyTorch 官方文档)
  • 🧩 三个核心属性
    • ① requires_grad
    • ② is_leaf
    • ③ .grad
  • 🌐 分布式数据并行 (DDP)
  • 📷 官方计算图参考
  • 📚 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档