Theano is a Python library that allows you to define, optimize, and efficiently evaluate mathematical expressions involving multi-dimensional arrays. It is built on top of NumPy. Theano features:

tight integration with NumPy: a similar interface to NumPy’s. numpy.ndarrays are also used internally in Theano-compiled functions.

a similar interface to NumPy’s. numpy.ndarrays are also used internally in Theano-compiled functions. transparent use of a GPU: perform data-intensive computations up to 140x faster than on a CPU (support for float32 only).

perform data-intensive computations up to 140x faster than on a CPU (support for float32 only). efficient symbolic differentiation: Theano can compute derivatives for functions of one or many inputs.

Theano can compute derivatives for functions of one or many inputs. speed and stability optimizations: avoid nasty bugs when computing expressions such as log(1 + exp(x)) for large values of x.

avoid nasty bugs when computing expressions such as log(1 + exp(x)) for large values of x. dynamic C code generation: evaluate expressions faster.

evaluate expressions faster. extensive unit-testing and self-verification: includes tools for detecting and diagnosing bugs and/or potential problems.

Theano has been powering large-scale computationally intensive scientific research since 2007, but it is also approachable enough to be used in the classroom (IFT6266 at the University of Montreal).