[Numpy-discussion] automatic differentiation with PyAutoDiff
bergstrj at iro.umontreal.ca
Wed Jun 13 13:42:22 EDT 2012
Further to the recent discussion on lazy evaluation & numba, I moved
what I was doing into a new project:
It currently works by executing CPython bytecode with a numpy-aware
engine that builds a symbolic expression graph with Theano... so you
can do for example:
>>> import autodiff, numpy as np
>>> autodiff.fmin_l_bfgs_b(lambda x: (x + 1) ** 2, [np.zeros(())])
... and you'll see `[array(-1.0)]` printed out.
In the future, I think it should be able to export the
gradient-computing function as bytecode, which could then be optimized
by e.g. numba or a theano bytecode front-end. For now it just compiles
and runs the Theano graph that it built.
It's still pretty rough (you'll see if you look at the code!) but I'm
excited about it.
More information about the NumPy-Discussion