Autograd: Automatic Differentiation (Scalar)
1 / 6
Value stores:
data (float)grad (accumulator)_prev (parents), _op (debug), _backward (local chain rule)Forward pass builds a DAG of Values.
Example:
a + b: da = 1 out.grad, db = 1 out.grada * b: da = b.data out.grad, db = a.data out.gradUse += because a node can be used multiple times.
self.grad = 1.0_backwardGradients accumulate by design:
a + a should give a.grad = 2f = (a * b + c) ** 2