Theano: A CPU and GPU Math Compiler in Python

By James Bergstra, Olivier Breuleux, Frédéric Bastien, Pascal Lamblin, Razvan Pascanu, Guillaume Desjardins, Joseph P. Turian, David Warde-Farley, Yoshua Bengio. 2010

862 citations recorded by the source corpus.

Theano is a compiler for mathematical expressions in Python that combines the convenience of NumPy's syntax with the speed of optimized native machine language. The user composes mathematical expressions in a high-level description that mimics NumPy's syntax and semantics, while being statically typed and functional (as opposed to imperative). These expressions allow Theano to provide symbolic differentiation. Before performing computation, Theano optimizes the choice of expressions, translates them into C++ (or CUDA for GPU), compiles them into dynamically loaded Python modules, all automatically. Common machine learn- ing algorithms implemented with Theano are from 1:6 to 7:5 faster than competitive alternatives (including those implemented with C/C++, NumPy/SciPy and MATLAB) when compiled for the CPU and between 6:5 and 44 faster when compiled for the GPU. This paper illustrates how to use Theano, outlines the scope of the compiler, provides benchmarks on both CPU and GPU processors, and explains its overall design.

Subfields: Artificial Intelligence, Computational Theory and Mathematics, Hardware and Architecture, ML Systems & Hardware

How researchers see this paper

The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.

In Artificial Intelligence

  1. Mohit Bansal
  2. Graham Neubig
  3. Yoshua Bengio
  4. Luke S. Zettlemoyer
  5. Percy Liang
  6. Noah A. Smith
  7. Jianfeng Gao
  8. Yoav Goldberg

In Computational Theory and Mathematics

  1. Jinbo Xu
  2. Sheng Wang
  3. Max Welling
  4. Yizhou Yu
  5. K. Müller
  6. Siqi Sun
  7. Z. Li
  8. Kristof T. Schütt

In Hardware and Architecture

  1. Jinyang Li
  2. Yoshua Bengio
  3. Philemon Brakel
  4. Luca Benini
  5. Z. Li
  6. Keshav Santhanam
  7. Vincent Dumoulin
  8. Francesco Visin

In ML Systems & Hardware

  1. Yoshua Bengio
  2. Ion Stoica
  3. Michael I. Jordan
  4. Matei A. Zaharia
  5. Jindřich Libovický
  6. Jindřich Helcl
  7. Philemon Brakel
  8. Luke S. Zettlemoyer

Citations in the corpus