Is there a good open source symbolic Python package with automatic differentiation that can be used to write gradient-based optimization algorithms?
For example:
Sympy is a very nice symbolic package, however it uses symbolic differentiation instead of automatic, and the linear algebra packages i.e. matrix-vector and matrix-matrix multiplication are quite slow.