TalentMe
How To
🗺️
AI Industry Map
NEW
Knowledge ▾
Intro & Usage
Machine Learning Repo
Data Science Repo
Resources ▾
Intro & Usage
AI Tech Vault (Tech Wiki)
Industry News
Tech Blogs
Research Papers
Open Source Projects
Tools Hub ▾
🛠️ Tools & Skills Overview
🌐 Interactive Web Tools
🗺️ AI Industry & Career Map
🧭 AI Career Transition Navigator & Roadmap
📚 AI Multi-Module Practice Hub
🎯 AI Skill Assessment
🧠 AI Skills Library
AI Skills & Prompts Overview
Local Agent Guide
Cloud Skills Templates
⚡ MCP Tools Suite
TalentMe MCP Guide
CLI Tools & Commands
Services ▾
🚀 Services & Plans Suite
🧭 1v1 Coaching & Services
💎 Plans & Pricing
💬 Contact & Consultation
Contact Us
💬 Discord
🌐
中
☀️
🔑
Login / Register
☰
技术知识库
›
复习路线图
›
深度学习 思维导图
›
Autograd 动态图
← 返回 深度学习 思维导图
中文
·
English
🧠 深度学习
ID:
autograd-engine
Autograd 动态图
Autograd Compute Graph
🎯
核心定义
前向传播时框架动态构建计算图 (DAG): 每个需要梯度的张量都记录产生它的算子 grad_fn, 每次前向都按当前控制流重建图 (动态图)。反向传播时把 DAG 拓扑排序并取逆序遍历, 从标量 loss 出发, 每一步用链式法则
∂
L
∂
x
=
∂
L
∂
y
⋅
∂
y
∂
x
\frac{\partial L}{\partial x} = \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial x}
∂
x
∂
L
=
∂
y
∂
L
⋅
∂
x
∂
y
把梯度沿边回传并累加到上游变量 (如
z
=
x
+
y
z = x + y
z
=
x
+
y
时
∂
z
∂
x
=
∂
z
∂
y
=
1
\frac{\partial z}{\partial x} = \frac{\partial z}{\partial y} = 1
∂
x
∂
z
=
∂
y
∂
z
=
1
)。
💡
使用场景
理解任何自动求导框架的 backward 实现、手写 autograd、自定义层时正确实现 forward/backward; 面试必问动态图与静态图的对比。
⚡
解决的核心痛点
免去手工/符号求导, 任意可微程序自动获得梯度。动态图 (PyTorch eager) 边执行边建图, 与 Python 控制流 (if/for) 天然兼容、易调试, 代价是每步重复建图的开销; 静态图 (TensorFlow 1 Graph mode) 先建图后执行, 可做全局算子融合优化、利于部署, 但不灵活、难调试。autograd 的坑: in-place 操作会破坏反向依赖因此需要求梯度的张量禁止原位修改; leaf 张量决定是否保留梯度。
🎯
5 个高频面试考点 (Exam Points)
1
反向传播如何确定梯度计算顺序? 为什么需要拓扑逆序?
2
动态图与静态图的区别与各自优缺点?
3
grad_fn 的作用? 链式法则如何沿 DAG 逐层回传?
4
为什么 in-place 操作在需要梯度时会被禁止或报错?
5
.detach() 与 requires_grad=False 的区别? 什么是 leaf 张量?
📖 关联深度指南:
📄 debugging-and-dl-comp →
更新于 2026-08-12
🎯
检验攻克程度:针对「Autograd 动态图」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题 ➔
← 上一个知识点
训练调试流程
下一个知识点 →
梯度检查
🔗 更多 深度学习 知识点卡片
激活函数演进
Adam/AdamW
BatchNorm 批归一化
经典 CNN 演进