Tutorial: micrograd¶
micrograd 是一个极简的自动微分引擎,仅用约 100 行代码就实现了基于动态计算图的反向模式自动求导(reverse-mode autodiff),并在其上构建了一个类似 PyTorch 风格的小型神经网络库(约 50 行代码)。
它的核心是 Value 类——一个包装标量数值并记录梯度的"带记忆的数字",所有数学运算都会自动构建一张有向无环图(DAG),从而支持调用 backward() 自动计算偏导数。
在引擎之上,项目提供了 Module、Neuron、Layer、MLP 四个抽象,让用户能像搭积木一样组装出多层感知机,并完成诸如二分类等真实训练任务。
虽然由于只支持标量运算导致效率不高,但它直观、易读、麻雀虽小五脏俱全,非常适合用于教学和理解深度学习框架的底层原理。
Source Repository: https://github.com/karpathy/micrograd
flowchart TD
A0["标量值与自动微分 (Value)
"]
A1["动态计算图 (DAG)
"]
A2["反向传播与链式法则 (backward)
"]
A3["模块基类 (Module)
"]
A4["神经元 (Neuron)
"]
A5["神经网络层 (Layer)
"]
A6["多层感知机 (MLP)
"]
A0 -- "运算时构建" --> A1
A2 -- "拓扑排序遍历" --> A1
A0 -- "提供 backward 方法" --> A2
A4 -- "继承" --> A3
A5 -- "继承" --> A3
A6 -- "继承" --> A3
A4 -- "用 Value 表示权重" --> A0
A5 -- "聚合多个神经元" --> A4
A6 -- "串联多层" --> A5
Chapters¶
- 标量值与自动微分 (Value)
- 动态计算图 (DAG)
- 反向传播与链式法则 (backward)
- 模块基类 (Module)
- 神经元 (Neuron)
- 神经网络层 (Layer)
- 多层感知机 (MLP)
Generated by AI Codebase Knowledge Builder