Software:Theano
Original author(s) | Montreal Institute for Learning Algorithms (MILA), University of Montreal |
---|---|
Developer(s) | PyMC Development Team |
Initial release | 2007 |
Written in | Python, CUDA |
Platform | Linux, macOS, Windows |
Type | 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 they step 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[8] that the PyMC developers will fork the Aesara project under the name PyTensor.
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.[9]
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)
See also
References
- ↑ Bergstra, J.; O. Breuleux; F. Bastien; P. Lamblin; R. Pascanu; G. Desjardins; J. Turian; D. Warde-Farley et al. (30 June 2010). "Theano: A CPU and GPU Math Expression Compiler". Proceedings of the Python for Scientific Computing Conference (SciPy) 2010. http://www.iro.umontreal.ca/~lisa/pointeurs/theano_scipy2010.pdf.
- ↑ "Github Repository". https://github.com/Theano/Theano/.
- ↑ "deeplearning.net". http://deeplearning.net/.
- ↑ Lamblin, Pascal (28 September 2017). "MILA and the future of Theano". theano-users (Mailing list). Retrieved 28 September 2017.
- ↑ "Release Notes – Theano 1.0.0 documentation". http://deeplearning.net/software/theano/NEWS.html.
- ↑ Developers, PyMC (2019-06-01). "Theano, TensorFlow and the Future of PyMC" (in en). https://medium.com/@pymc_devs/theano-tensorflow-and-the-future-of-pymc-6c9987bb19d5.
- ↑ "Theano-2.0.0". https://github.com/aesara-devs/aesara/releases/tag/rel-2.0.0.
- ↑ Developers, PyMC (2022-11-20). "PyMC forked Aesara to PyTensor" (in en). https://www.pymc.io/blog/pytensor_announcement.html#pytensor_announcement.
- ↑ "Theano Documentation Release 1.0.0". LISA lab, University of Montreal. 21 November 2017. pp. 22. http://deeplearning.net/software/theano/theano.pdf. Retrieved 31 August 2018.
External links
- (GitHub)
- Theano at Deep Learning, Université de Montréal