Theano is a Python library that allows you to define, optimize, and evaluate symbolic mathematical expressions involving multi-dimensional arrays efficiently. Theano features:
- tight integration with numpy – Use numpy.ndarray in Theano-compiled functions.
- transparent use of a GPU – Perform data-intensive calculations up to 140x faster than with CPU.
- symbolic differentiation – Let Theano do your derivatives.
- speed and stability optimizations – Get the right answer for log(1+x) even when x is really tiny.
- dynamic C code generation – Evaluate expressions faster.
- extensive testing and self-verification – unit tests and a self-verification mode detect and diagnose many kinds of mistake.
Theano has been powering large-scale computationally intensive scientific investigations since 2007. But it is also approachable enough to be used in the classroom (IFT6266 at the University of Montreal).
We mainly use it for machine learning, but we are interested in broadening the user community. Feel free to join our mailing list, and try it out.
Also, check out the Deep Learning Tutorials that we're writing. They are a more of a "work in progress", but they demonstrate how to implement various sorts of neural networks (e.g. RBMs, DBNs, Convolutional networks, Stacked denoising autoassociators) and do machine learning experiments with them.