# Theano (software)

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

Developer(s) Montreal Institute for Learning Algorithms (MILA), University of Montreal 2007; 12 years ago 1.0.4[1] / 16 January 2019; 9 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 an open source project[3] primarily developed by a Montreal Institute for Learning Algorithms (MILA) at the Université de Montréal.[4]

The name of the software references the ancient philosopher Theano, long associated with the development of the golden mean.

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.[5] Theano 1.0.0 was then released on 15 November 2017.[6]

On 17 May 2018, Chris Fonnesbeck wrote on behalf of the PyMC development team[7] that the PyMC developers will officially assume 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.[8]

```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)
```