# Theano (software)

Developer(s) Montreal Institute for Learning Algorithms (MILA), University of Montreal 2007; 12 years ago 1.0.4 / 16 January 2019; 7 months ago github.com/Theano/Theano Python, CUDA Linux, macOS, Windows Machine learning library The 3-Clause BSD License www.deeplearning.net/software/theano/

Theano is a Python library and optimizing compiler for manipulating and evaluating mathematical expressions, especially matrix-valued ones. In Theano, computations are expressed using a NumPy-esque syntax and compiled to run efficiently on either CPU or GPU architectures.

Theano is an open source project primarily developed by a Montreal Institute for Learning Algorithms (MILA) at the Université de Montréal.

On 28 September 2017, Pascal Lamblin posted a message from Yoshua Bengio, Head of MILA: major development would cease after the 1.0 release due to competing offerings by strong industrial players. Theano 1.0.0 was then released on 15 November 2017.

On 17 may 2018, Chris Fonnesbeck wrote on behalf of the PyMC development team that the PyMC developers will officially assuming control of Theano maintenance once they step down.

## Sample code

The following code is the original Theano's example. It defines a computational graph with 2 scalars a and b of type double and an operation between them (addition) and then creates a python function f that does the actual computation.

```import theano
from theano import tensor

# declare two symbolic floating-point scalars
a = tensor.dscalar()
b = tensor.dscalar()

# create a simple expression
c = a + b

# convert the expression into a callable object that takes (a,b)
# values as input and computes a value for c
f = theano.function([a,b], c)

# bind 1.5 to 'a', 2.5 to 'b', and evaluate 'c'
assert 4.0 == f(1.5, 2.5)
```