Skip to main content

Optimizing compiler for evaluating mathematical expressions on CPUs and GPUs.

Project description

Theano is a Python library that allows you to define, optimize, and efficiently evaluate mathematical expressions involving multi-dimensional arrays. It is built on top of NumPy. Theano features:

  • tight integration with NumPy: a similar interface to NumPy’s. numpy.ndarrays are also used internally in Theano-compiled functions.

  • transparent use of a GPU: perform data-intensive computations up to 140x faster than on a CPU (support for float32 only).

  • efficient symbolic differentiation: Theano can compute derivatives for functions of one or many inputs.

  • speed and stability optimizations: avoid nasty bugs when computing expressions such as log(1 + exp(x)) for large values of x.

  • dynamic C code generation: evaluate expressions faster.

  • extensive unit-testing and self-verification: includes tools for detecting and diagnosing bugs and/or potential problems.

Theano has been powering large-scale computationally intensive scientific research since 2007, but it is also approachable enough to be used in the classroom (IFT6266 at the University of Montreal).

Release Notes

Theano 0.10.0beta4 (16th of October, 2017)

This release contains new features, improvements and bug fixes to prepare the upcoming release candidate.

We recommend that every developer updates to this version.

Highlights:

A total of 70 people contributed to this release since 0.9.0, see list below.

Interface changes:
  • Generalized AllocDiag for any non-scalar input

Convolution updates:
  • Implemented fractional bilinear upsampling

cuDNN (GPU):
  • Disallowed float16 precision for convolution gradients

  • Fixed memory alignment detection

  • Added profiling in C debug mode (with theano flag cmodule.debug=True)

New features:
  • Implemented truncated normal distribution with box-muller transform

  • Added L_op() overriding option for OpFromGraph

  • Added NumPy C-API based fallback implementation for [sd]gemv_ and [sd]dot_

Other more detailed changes:
  • Improved stack trace follow-up for GPU optimizations

  • Fixed gradient error for elemwise minimum and maximum when compared values are the same

  • Fixed gradient for ARange

  • Removed ViewOp subclass during optimization

Commiters since 0.9.0:
  • Frederic Bastien

  • João Victor Tozatti Risso

  • Arnaud Bergeron

  • Steven Bocco

  • Mohammed Affan

  • amrithasuresh

  • Pascal Lamblin

  • Reyhane Askari

  • Alexander Matyasko

  • Shawn Tan

  • Simon Lefrancois

  • Adam Becker

  • Vikram

  • Gijs van Tulder

  • Faruk Ahmed

  • Thomas George

  • erakra

  • Andrei Costinescu

  • Boris Fomitchev

  • Zhouhan LIN

  • Aleksandar Botev

  • jhelie

  • xiaoqie

  • Tegan Maharaj

  • Matt Graham

  • Cesar Laurent

  • Gabe Schwartz

  • Juan Camilo Gamboa Higuera

  • Tim Cooijmans

  • Anirudh Goyal

  • Saizheng Zhang

  • Yikang Shen

  • vipulraheja

  • Florian Bordes

  • Sina Honari

  • Chiheb Trabelsi

  • Shubh Vachher

  • Daren Eiri

  • Joseph Paul Cohen

  • Laurent Dinh

  • Mohamed Ishmael Diwan Belghazi

  • Jeff Donahue

  • Ramana Subramanyam

  • Bogdan Budescu

  • Dzmitry Bahdanau

  • Ghislain Antony Vaillant

  • Jan Schlüter

  • Nan Jiang

  • Xavier Bouthillier

  • fo40225

  • mrTsjolder

  • wyjw

  • Aarni Koskela

  • Adam Geitgey

  • Adrian Keet

  • Adrian Seyboldt

  • Anmol Sahoo

  • Chong Wu

  • Holger Kohr

  • Jayanth Koushik

  • Lilian Besson

  • Lv Tao

  • Michael Manukyan

  • Murugesh Marvel

  • NALEPA

  • Zotov Yuriy

  • dareneiri

  • lrast

  • morrme

  • naitonium

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Theano-0.10.0beta4.tar.gz (2.8 MB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page