Karpathy V1 · Neuron / Layer / MLP

一次 n(x) 调用,四个类怎么接力

MLP(3, [4,4,1]),输入 [2.0, 3.0, -1.0]。看调用怎么一层层往下钻,再一层层往上返。

MLP

—

—

MLP.__call__(x)
把 x 依次喂给每一层,用返回值覆盖 x
—
Layer.__call__(x)
同一个 x 喂给本层每个神经元,收集输出
—
Neuron.__call__(x)
加权求和 + 偏置,再过 tanh
—
Value.__mul__ / __add__ / tanh
每次运算建一个计算图节点,挂上 _backward
—
网络结构 · 当前算到哪里
CODE
调用栈
MLP.__call__
 └ Layer.__call__
  └ Neuron.__call__
   └ Value.__mul__ …

← → 方向键翻步。紫=MLP,绿=Layer,橙=Neuron,红=Value。