Theano (software)
   HOME

TheInfoList



OR:

Theano is a
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
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 In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
to run efficiently on either CPU or
GPU A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobi ...
architectures. Theano is an open source project primarily developed by the Montreal Institute for Learning Algorithms (MILA) at the
Université de Montréal The Université de Montréal (UdeM; ; translates to University of Montreal) is a French-language public research university in Montreal, Quebec, Canada. The university's main campus is located in the Côte-des-Neiges neighborhood of Côte- ...
. The name of the software references the ancient philosopher
Theano In Greek mythology, Theano (; Ancient Greek: Θεανώ) may refer to the following personages: *Theano, wife of Metapontus, king of Icaria. Metapontus demanded that she bear him children, or leave the kingdom. She presented the children of Melan ...
, long associated with the development of the golden mean. On 28 September 2017, Pascal Lamblin posted a message from
Yoshua Bengio Yoshua Bengio (born March 5, 1964) is a Canadian computer scientist, most noted for his work on artificial neural networks and deep learning. He is a professor at the Department of Computer Science and Operations Research at the Université ...
, 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 PyMC (formerly known as PyMC3) is a Python package for Bayesian statistical modeling and probabilistic machine learning which focuses on advanced Markov chain Monte Carlo and variational fitting algorithms. It is a rewrite from scratch of the prev ...
development team that the PyMC developers will officially assume control of Theano maintenance once they step down. On 29 January 2021, they started using the nam
Aesara
for their fork of Theano.


Sample code

The following code is the original Theano's example. It defines a computational graph with 2 scalars and 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(
, b The comma is a punctuation mark that appears in several variants in different languages. It has the same shape as an apostrophe or single closing quotation mark () in many typefaces, but it differs from them in being placed on the baseline o ...
c) # Bind 1.5 to 'a', 2.5 to 'b', and evaluate 'c' assert 4.0

f(1.5, 2.5)


See also

*
Comparison of deep learning software The following table compares notable software frameworks, libraries and computer programs for deep learning. Deep-learning software by name Comparison of compatibility of machine learning models See also *Comparison of numerical-analys ...
*
Differentiable programming Differentiable programming is a programming paradigm in which a numeric computer program can be differentiated throughout via automatic differentiation. This allows for gradient-based optimization of parameters in the program, often via grad ...


References


External links

* (GitHub)
Theano
at Deep Learning, Université de Montréal Array programming languages Deep learning software Free science software Numerical programming languages Python (programming language) scientific libraries Software using the BSD license Articles with example Python (programming language) code 2007 software {{science-software-stub