Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently
Deep Learning Software
• tight integration with NumPy – Use numpy.ndarray in Theano-compiled functions.
• transparent use of a GPU – Perform data-intensive computations much faster than on a CPU.
• efficient symbolic differentiation – Theano does your derivatives for functions with one or many inputs.
• 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 unit-testing and self-verification – Detect and diagnose many types of errors.
Small (<50 employees), Medium (50 to 1000 Enterprise (>1001 employees)
Theano is a Python library that lets users define, optimize, and evaluate mathematical expressions, especially ones with multi-dimensional arrays (numpy.ndarray). It is possible to attain speeds rivaling hand-crafted C implementations for problems involving large amounts of data using Theano. It can also surpass C on a CPU by many orders of magnitude by taking advantage of recent GPUs. Theano combines aspects of a computer algebra system (CAS) with aspects of an optimizing compiler. It can also generate customized C code for many mathematical operations. This combination of CAS with optimizing compilation is particularly useful for tasks in which complicated mathematical expressions are evaluated repeatedly and evaluation speed is critical. For situations where many different expressions are each evaluated once, Theano can minimize the amount of compilation/analysis overhead, but still provide symbolic features such as automatic differentiation. Theano’s compiler applies many optimizations of varying complexity to these symbolic expressions. Theano is not a programming language in the normal sense because users write a program in Python that builds expressions for Theano. It is good to think of theano.function as the interface to a compiler which builds a callable object from a purely symbolic graph. One of Theano’s most important features is that theano.function can optimize a graph and even compile some or all of it into native machine instructions. Theano focuses more on tensor expressions than Sympy, and has more machinery for compilation. If numpy is to be compared to MATLAB and sympy to Mathematica, Theano is a sort of hybrid of the two which tries to combine the best of both worlds.