======================
Announcing Theano 0.3
======================
This is an important release. The upgrade is recommended for everybody
using Theano 0.1. For those using the bleeding edge version in the
mercurial repository, we encourage you to update to the `0.3` tag.
This is the first major release of Theano since 0.1. Version 0.2
development started internally but it was never advertised as a
release.
What's New
----------
There have been too many changes since 0.1 to keep track of them all.
Below is a *partial* list of changes since 0.1.
* GPU code using NVIDIA's CUDA framework is now generated for many Ops.
* Some interface changes since 0.1:
* A new "shared variable" system which allows for reusing memory
space between
Theano functions.
* A new memory contract has been formally written for Theano,
for people who want to minimize memory copies.
* The old module system has been deprecated.
* By default, inputs to a Theano function will not be silently
downcasted (e.g. from float64 to float32).
* An error is now raised when using the result of a logical operation of
a Theano variable in an 'if' (i.e. an implicit call to __nonzeros__).
* An error is now raised when we receive a non-aligned ndarray as
input to a function (this is not supported).
* An error is raised when the list of dimensions passed to
dimshuffle() contains duplicates or is otherwise not sensible.
* Call NumPy BLAS bindings for gemv operations in addition to the
already supported gemm.
* If gcc is unavailable at import time, Theano now falls back to a
Python-based emulation mode after raising a warning.
* An error is now raised when tensor.grad is called on a non-scalar
Theano variable (in the past we would implicitly do a sum on the
tensor to make it a scalar).
* Added support for "erf" and "erfc" functions.
* The current default value of the parameter axis of theano.{max,min,
argmax,argmin,max_and_argmax} is deprecated. We now use the default NumPy
behavior of operating on the entire tensor.
* Theano is now available from PyPI and installable through "easy_install" or
"pip".
You can download Theano from http://pypi.python.org/pypi/Theano.
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).
Resources
---------
About Theano:
http://deeplearning.net/software/theano/
About NumPy:
http://numpy.scipy.org/
About Scipy:
http://www.scipy.org/
Acknowledgments
---------------
I would like to thank all contributors of Theano. For this particular
release, the people who have helped resolve many outstanding issues:
(in alphabetical order) Frederic Bastien, James Bergstra,
Guillaume Desjardins, David-Warde Farley, Ian Goodfellow, Pascal Lamblin,
Razvan Pascanu and Josh Bleecher Snyder.
Also, thank you to all NumPy and Scipy developers as Theano builds on
its strength.
All questions/comments are always welcome on the Theano
mailing-lists ( http://deeplearning.net/software/theano/ )