提交 de95e004 authored 作者: Olivier Breuleux's avatar Olivier Breuleux

advanced -> topics

上级 999910f3
...@@ -11,10 +11,9 @@ Contents ...@@ -11,10 +11,9 @@ Contents
LICENSE LICENSE
introduction introduction
install install
numpy
basic_tutorial/index basic_tutorial/index
advanced_tutorial/index advanced_tutorial/index
advanced/index topics/index
indexes/index indexes/index
glossary glossary
links links
......
...@@ -6,30 +6,32 @@ Introduction ...@@ -6,30 +6,32 @@ Introduction
============ ============
Theano is a Python library that allows you to define, optimize, and Theano is a Python library that allows you to define, optimize, and
efficiently evaluate mathematical expressions involving multi-dimensional efficiently evaluate mathematical expressions involving
arrays. Using Theano, it is not uncommon to see speed improvements of multi-dimensional arrays. Using Theano, for problems involving large
ten-fold over using pure NumPy. amounts of data, it is possible to attain speeds that are only a few
percentage points slower than hand-crafted C implementations.
Theano melds some aspects of a computer algebra system (CAS) with Theano melds some aspects of a computer algebra system (CAS) with
aspects of an optimizing compiler. It can even transform some or aspects of an optimizing compiler. It can even transform some or all
all of the mathematical expression into C code and compile it into of the mathematical expression into C code and compile it into native
native machine instructions. This combination of CAS with optimizing machine instructions. This combination of CAS with optimizing
compilation is particularly useful for computational fields in which compilation is particularly useful for tasks in which complicated
complicated mathematical expressions are evaluated repeatedly and evaluation mathematical expressions are evaluated repeatedly and evaluation speed
speed is critical. is critical.
Theano supports a range of numerical types in multiple dimensions and Theano supports a range of numerical types in multiple dimensions and
a number of well-tested operations. It also allows you to compute the a number of well-tested operations. It also allows you to compute the
gradient of an expression with respect to another. Symbolic expressions gradient of an expression with respect to another. Symbolic
may be compiled into functions, which work on the same data structures expressions may be compiled into functions, which work on the same
as numpy_, allowing for easy interoperability. data structures as numpy_, allowing for easy interoperability.
Theano's compiler applies many optimizations of varying complexity Theano's compiler applies many optimizations of varying complexity to
to these symbolic expressions. These optimizations include, but are these symbolic expressions. These optimizations include, but are not
not limited to: limited to:
* constant folding * constant folding
* merging of similar subgraphs, to avoid calculating the same values more than once * merging of similar subgraphs, to avoid calculating the same values
more than once
* arithmetic simplification (``x*y/x -> y``) * arithmetic simplification (``x*y/x -> y``)
* inserting efficient BLAS_ operations * inserting efficient BLAS_ operations
* using inplace operations wherever it is safe to do so. * using inplace operations wherever it is safe to do so.
...@@ -37,20 +39,18 @@ not limited to: ...@@ -37,20 +39,18 @@ not limited to:
Theano defines several optimizations which improve the numerical Theano defines several optimizations which improve the numerical
stability of computations. stability of computations.
Theano was written at the LISA_ lab to support the development Theano was written at the LISA_ lab to support the development of
of efficient machine learning algorithms while minimizing human time. We efficient machine learning algorithms while minimizing human time. We
use it especially in gradient-based learning techniques. use it especially in gradient-based learning techniques. Theano is
Theano is named after the `Greek mathematician`_, who may have named after the `Greek mathematician`_, who may have been Pythagoras'
been Pythagoras' wife. wife. Theano is released under a BSD license (:ref:`link <license>`)
Theano is released under a BSD license (:ref:`link <license>`)
Sneak peek Sneak peek
========== ==========
Here is an example of how to use Theano. It doesn't show Here is an example of how to use Theano. It doesn't show off many of
off many of Theano's features, but it illustrates concretely what Theano's features, but it illustrates concretely what Theano is.
Theano is.
.. code-block:: python .. code-block:: python
...@@ -73,8 +73,8 @@ Theano is. ...@@ -73,8 +73,8 @@ Theano is.
Theano is not a programming language in the normal sense because you Theano is not a programming language in the normal sense because you
write a program in Python that builds expressions for Theano. Still write a program in Python that builds expressions for Theano. Still it
it is like a programming language in the sense that you have to is like a programming language in the sense that you have to
- declare variables (``a,b``) and give their types - declare variables (``a,b``) and give their types
...@@ -119,7 +119,6 @@ Theano is a sort of hybrid of the two which tries to make the best of ...@@ -119,7 +119,6 @@ Theano is a sort of hybrid of the two which tries to make the best of
both worlds. both worlds.
Getting started Getting started
=============== ===============
...@@ -152,8 +151,8 @@ Questions, comments, praise, criticism as well as bug reports should ...@@ -152,8 +151,8 @@ Questions, comments, praise, criticism as well as bug reports should
be submitted to these mailing lists. be submitted to these mailing lists.
We welcome all kinds of contributions. If you have any questions We welcome all kinds of contributions. If you have any questions
regarding how to extend Theano, please feel free to ask on the theano-dev_ regarding how to extend Theano, please feel free to ask on the
mailing list. theano-dev_ mailing list.
......
...@@ -41,6 +41,7 @@ In the example above, there is no way to guarantee that a future call to say, ...@@ -41,6 +41,7 @@ In the example above, there is no way to guarantee that a future call to say,
There following are DebugMode exceptions you might encounter: There following are DebugMode exceptions you might encounter:
BadCLinkerOutput BadCLinkerOutput
---------------- ----------------
...@@ -116,6 +117,7 @@ performed, but the plan is that it will be. (see ticket #320) ...@@ -116,6 +117,7 @@ performed, but the plan is that it will be. (see ticket #320)
For detailed documentation see :api:`FloatError`. For detailed documentation see :api:`FloatError`.
InvalidValueError InvalidValueError
----------------- -----------------
...@@ -126,6 +128,7 @@ Type. ...@@ -126,6 +128,7 @@ Type.
For detailed documentation see :api:`InvalidValueError`. For detailed documentation see :api:`InvalidValueError`.
DebugModeError DebugModeError
-------------- --------------
......
...@@ -9,9 +9,7 @@ Advanced Topics ...@@ -9,9 +9,7 @@ Advanced Topics
:maxdepth: 2 :maxdepth: 2
pipeline pipeline
unittest
profilemode profilemode
debug_faq
debugmode debugmode
module_vs_op module_vs_op
randomstreams randomstreams
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论