A minimal autogradient engine built in Python as a learning exercise.
Implements auto gradient calculations of a computational graph. The forward pass is stored by having Variable operations produce a new Variable whose children store the Variable/scalar that produced the output Variable. While op stores the operation that produced that output.
Using those stored children, the engine can select a Variable point, call its .backprop() function to initiate the backpropagation of the entire computational graph.