Theano (software) explained

Theano
Author:Montreal Institute for Learning Algorithms (MILA), University of Montreal
Developer:PyMC Development Team
Discontinued:yes
Programming Language:Python, CUDA
Platform:Linux, macOS, Windows
Genre:Machine learning library
License:The 3-Clause BSD License

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

History

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

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

On 17 May 2018, Chris Fonnesbeck wrote on behalf of the PyMC development team[6] that the PyMC developers will officially assume control of Theano maintenance once the MILA development team steps down. On 29 January 2021, they started using the name Aesara for their fork of Theano.[7]

On 29 Nov 2022, the PyMC development team announced that the PyMC developers will fork the Aesara project under the name PyTensor.[8]

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.[9]

import theanofrom theano import tensor

  1. Declare two symbolic floating-point scalars

a = tensor.dscalarb = tensor.dscalar

  1. Create a simple expression

c = a + b

  1. Convert the expression into a callable object that takes (a, b)
  2. values as input and computes a value for c

f = theano.function([a, b], c)

  1. Bind 1.5 to 'a', 2.5 to 'b', and evaluate 'c'

assert 4.0

See also

External links

Notes and References

  1. Bergstra. J. . O. Breuleux . F. Bastien . P. Lamblin . R. Pascanu . G. Desjardins . J. Turian . D. Warde-Farley . Y. Bengio. Theano: A CPU and GPU Math Expression Compiler. Proceedings of the Python for Scientific Computing Conference (SciPy) 2010. 30 June 2010.
  2. Web site: Github Repository. .
  3. Web site: deeplearning.net.
  4. MILA and the future of Theano . 28 September 2017 . 28 September 2017 . theano-users . Lamblin . Pascal .
  5. Web site: Release Notes – Theano 1.0.0 documentation.
  6. Web site: Theano, TensorFlow and the Future of PyMC. Developers. PyMC. 2019-06-01. Medium. en. 2019-08-27.
  7. Web site: Theano-2.0.0. .
  8. Web site: Developers . PyMC . 2022-11-20 . PyMC forked Aesara to PyTensor . 2023-07-19 . pymc.io . en.
  9. Web site: Theano Documentation Release 1.0.0 . LISA lab, University of Montreal . 31 August 2018 . 22 . 21 November 2017.