提交 dfcc51d6 authored 作者: Pascal Lamblin's avatar Pascal Lamblin

Fixes some RST errors.

上级 99776150
...@@ -21,7 +21,7 @@ some of them might be outdated though: ...@@ -21,7 +21,7 @@ some of them might be outdated though:
* :ref:`pipeline` -- Describes the steps of compiling a Theano Function. * :ref:`pipeline` -- Describes the steps of compiling a Theano Function.
* :ref:`graphstructure` -- Describes the symbolic graphs generated by * :ref:`graphstructure` -- Describes the symbolic graphs generated by
:func:`theano.scan`. :mod:`theano.scan`.
* :ref:`unittest` -- Tutorial on how to use unittest in testing Theano. * :ref:`unittest` -- Tutorial on how to use unittest in testing Theano.
......
...@@ -257,6 +257,7 @@ Trying out our new Op ...@@ -257,6 +257,7 @@ Trying out our new Op
.. If you modify this code, also change : .. If you modify this code, also change :
.. theano/tests/test_tutorial.py:T_extending.test_extending_1 .. theano/tests/test_tutorial.py:T_extending.test_extending_1
In the following code, we use our new Op: In the following code, we use our new Op:
>>> x, y = double('x'), double('y') >>> x, y = double('x'), double('y')
......
...@@ -216,4 +216,5 @@ Reference ...@@ -216,4 +216,5 @@ Reference
.. autofunction:: theano.foldl .. autofunction:: theano.foldl
.. autofunction:: theano.foldr .. autofunction:: theano.foldr
.. autofunction:: theano.scan .. autofunction:: theano.scan
:noindex:
...@@ -24,4 +24,3 @@ deserves broad recognition among the scientific python community. ...@@ -24,4 +24,3 @@ deserves broad recognition among the scientific python community.
-- Olivier Grisel -- Olivier Grisel
-------------------------
...@@ -70,7 +70,7 @@ There are two interface items I propose to add. The first is a Thunk object ...@@ -70,7 +70,7 @@ There are two interface items I propose to add. The first is a Thunk object
(which we have never had before), and the second is a new function (make_thunk) (which we have never had before), and the second is a new function (make_thunk)
in the PureOp class (a superclass of Op) that will return a Thunk. in the PureOp class (a superclass of Op) that will return a Thunk.
..code-block:: python .. code-block:: python
class Thunk (object): class Thunk (object):
"""Abstract class / interface """Abstract class / interface
...@@ -98,7 +98,7 @@ in the PureOp class (a superclass of Op) that will return a Thunk. ...@@ -98,7 +98,7 @@ in the PureOp class (a superclass of Op) that will return a Thunk.
None. None.
""" """
..code-block:: python .. code-block:: python
class PureOp(object): # recall: class PureOp(object): # recall:
# Op inherits from PureOp # Op inherits from PureOp
......
...@@ -18,17 +18,19 @@ welcome on the mailing list. ...@@ -18,17 +18,19 @@ welcome on the mailing list.
1) We will perform a monthly release of Theano. These will be "lightweight" 1) We will perform a monthly release of Theano. These will be "lightweight"
releases and will include everything that was done in the last month. All releases and will include everything that was done in the last month. All
outstanding feature requests are pushed back to the following month, so as outstanding feature requests are pushed back to the following month, so as
not to delay the current release. not to delay the current release.
2) Asynchronous releases will only be made when a bug generating incorrect 2) Asynchronous releases will only be made when a bug generating incorrect
output is discovered and fixed. output is discovered and fixed.
3) Each release must satisfy the following criteria. Non-compliance will 3) Each release must satisfy the following criteria. Non-compliance will
result in us delaying or skipping the release in question. result in us delaying or skipping the release in question.
1) No regression errors. 1) No regression errors.
2) No known, silent errors. 2) No known, silent errors.
3) No errors giving incorrect results. 3) No errors giving incorrect results.
4) No test errors/failures, except for known errors. 4) No test errors/failures, except for known errors.
1) Known errors should not be used to encode "feature wish lists", as 1) Known errors should not be used to encode "feature wish lists", as
is currently the case. is currently the case.
2) Incorrect results should raise errors and not known errors (this 2) Incorrect results should raise errors and not known errors (this
...@@ -37,10 +39,11 @@ welcome on the mailing list. ...@@ -37,10 +39,11 @@ welcome on the mailing list.
ticket in the error message. ticket in the error message.
4) The release numbers will follow the X.Y.Z scheme: 4) The release numbers will follow the X.Y.Z scheme:
1) We update Z by 1 for each lightweight release. 1) We update Z by 1 for each lightweight release.
2) We update Y for bug fixes, interface changes and/or significant features 2) We update Y for bug fixes, interface changes and/or significant features
we wish to publicize. we wish to publicize.
4) The Theano v1.0.0 release will be made when the interface is deemed 3) The Theano v1.0.0 release will be made when the interface is deemed
stable enough and covers most of numpy's interface. stable enough and covers most of numpy's interface.
5) The trunk will be tagged on each release. 5) The trunk will be tagged on each release.
...@@ -53,14 +56,15 @@ Optional: ...@@ -53,14 +56,15 @@ Optional:
8) A 1-week scrum might take place before a release, in order to fix bugs 8) A 1-week scrum might take place before a release, in order to fix bugs
which would otherwise prevent a release. which would otherwise prevent a release.
1) Occasional deadlines might cause us to skip a release. 1) Occasional deadlines might cause us to skip a release.
1) Everybody can (and should) participate, even people on the mailing 2) Everybody can (and should) participate, even people on the mailing
list. list.
2) The scrum should encourage people to finish what they have already 3) The scrum should encourage people to finish what they have already
started (missing documentation, missing test, ...). This should help started (missing documentation, missing test, ...). This should help
push out new features and keep the documentation up to date. push out new features and keep the documentation up to date.
3) If possible, aim for the inclusion of one new interesting feature. 4) If possible, aim for the inclusion of one new interesting feature.
4) Participating in the scrum should benefit all those involved, as you 5) Participating in the scrum should benefit all those involved, as you
will learn more about our tools and help develop them in the process. A will learn more about our tools and help develop them in the process. A
good indication that you should participate is if you have a need for a good indication that you should participate is if you have a need for a
feature which is not yet implemented. feature which is not yet implemented.
...@@ -7,10 +7,8 @@ Advanced Topics (under construction) ...@@ -7,10 +7,8 @@ Advanced Topics (under construction)
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
env env
features
optimization
compilation compilation
ccodegen ccodegen
function function
......
...@@ -42,6 +42,7 @@ Components. Wheras Components are represent symbolic things (ie. Variables), Co ...@@ -42,6 +42,7 @@ Components. Wheras Components are represent symbolic things (ie. Variables), Co
single: component; Component single: component; Component
.. _component: .. _component:
--------- ---------
Component Component
--------- ---------
...@@ -81,6 +82,7 @@ allocated in phase 1 with sensible values. ...@@ -81,6 +82,7 @@ allocated in phase 1 with sensible values.
single: component; External single: component; External
.. _external: .. _external:
-------- --------
External External
-------- --------
...@@ -94,6 +96,7 @@ WRITEME ...@@ -94,6 +96,7 @@ WRITEME
single: component; Member single: component; Member
.. _member: .. _member:
------ ------
Member Member
------ ------
...@@ -106,6 +109,7 @@ WRITEME ...@@ -106,6 +109,7 @@ WRITEME
single: component; Method single: component; Method
.. _method: .. _method:
------ ------
Method Method
------ ------
...@@ -118,6 +122,7 @@ WRITEME ...@@ -118,6 +122,7 @@ WRITEME
single: component; Module single: component; Module
.. _module: .. _module:
------ ------
Module Module
------ ------
...@@ -140,7 +145,7 @@ In the Module system, the analog of the file is the `Module`, the analog of the ...@@ -140,7 +145,7 @@ In the Module system, the analog of the file is the `Module`, the analog of the
`Method`, and the analog of the variable is the `Member`. Module, Member, and Method all work `Method`, and the analog of the variable is the `Member`. Module, Member, and Method all work
at the symbolic level. Once a graph of Modules, Members, and Methods is ready for use, it must at the symbolic level. Once a graph of Modules, Members, and Methods is ready for use, it must
be compiled with a call to `make` which will return an isomorphic structure in which Modules be compiled with a call to `make` which will return an isomorphic structure in which Modules
have become `ModuleInstances`, Members have become `Container`s, and Methods have become have become `ModuleInstances`, Members have become `Containers`, and Methods have become
`Function`s. `Functions`.
This structure contains numbers and functions, and is ready for computation. This structure contains numbers and functions, and is ready for computation.
...@@ -209,7 +209,7 @@ Here, we make a new ``Module`` and we give it two inner ``Modules`` like ...@@ -209,7 +209,7 @@ Here, we make a new ``Module`` and we give it two inner ``Modules`` like
the one defined in the basic example. Each inner module has methods inc the one defined in the basic example. Each inner module has methods inc
and dec as well as a state c and their state is directly accessible from and dec as well as a state c and their state is directly accessible from
the outer module, which means that it can define methods using them. The the outer module, which means that it can define methods using them. The
instance(inst) we make from the ``Module``(m) reflects the hierarchy instance (inst) we make from the ``Module`` (m) reflects the hierarchy
that we created. Unlike the method using function, there is no need to that we created. Unlike the method using function, there is no need to
manipulate any containers directly. manipulate any containers directly.
...@@ -219,7 +219,7 @@ Advanced example ...@@ -219,7 +219,7 @@ Advanced example
Complex models can be implemented by subclassing ``Module`` (though that is not mandatory). Here is a complete, extensible (and working) regression model implemented using this system: Complex models can be implemented by subclassing ``Module`` (though that is not mandatory). Here is a complete, extensible (and working) regression model implemented using this system:
.. literalinclude:: ../code/regression.py .. literalinclude:: ../../benchmark/regression/regression.py
Here is how we use the model: Here is how we use the model:
......
...@@ -129,7 +129,7 @@ Guillaume can you make sure to hit these points: ...@@ -129,7 +129,7 @@ Guillaume can you make sure to hit these points:
nosetests has ``failUnlessRaises`` nosetests has ``failUnlessRaises``
* Convention is that all test files must start with ``test_``, not * Convention is that all test files must start with ``test_``, not
``_test_``, so rename all that use the old convention? ``_test_``, so rename all that use the old convention?
======================================================= =======================================================
......
Other software to look at and maybe recommend to users: Other software to look at and maybe recommend to users:
* [http://www.pytables.org/moin PyTables] - This is looking really * [http://www.pytables.org/moin PyTables] - This is looking really
promising for dataset storage and experiment logging... This might promising for dataset storage and experiment logging... This might
actually be useful for large data sets. actually be useful for large data sets.
* [http://matplotlib.sourceforge.net/ MatPlotLib] - visualization tools * [http://matplotlib.sourceforge.net/ MatPlotLib] - visualization tools
(plot curves interactively, like matlab's figure window) (plot curves interactively, like matlab's figure window)
* [http://www.pythonware.com/products/pil/ PIL] - Python Image Library: * [http://www.pythonware.com/products/pil/ PIL] - Python Image Library:
write your matrices out in png! (Kinda a weird recommendation, I think) write your matrices out in png! (Kinda a weird recommendation, I think)
* [http://www.logilab.org/857 pylint] - Syntax checker for python to * [http://www.logilab.org/857 pylint] - Syntax checker for python to
help beautify your code. (We'd be hypocrites to recommend this :) help beautify your code. (We'd be hypocrites to recommend this :)
* [http://www.winpdb.org/ Winpdb] - A Platform Independent Python * [http://www.winpdb.org/ Winpdb] - A Platform Independent Python
Debugger. (Except it doesn't really help you debug Theano graphs) Debugger. (Except it doesn't really help you debug Theano graphs)
* [http://wiki.python.org/moin/IntegratedDevelopmentEnvironments Python Integrated Development Environments] - for all your coding needs * [http://wiki.python.org/moin/IntegratedDevelopmentEnvironments Python
Integrated Development Environments] - for all your coding needs
...@@ -34,9 +34,9 @@ Their seam new format planed for scipy 0.7.x: ...@@ -34,9 +34,9 @@ Their seam new format planed for scipy 0.7.x:
``bsr_matrix`` ``bsr_matrix``
Block Compressed Row (BSR). From their doc: The Block Compressed Row (BSR) format is very similar to the Compressed Sparse Row (CSR) format. BSR is appropriate for sparse matrices with dense sub matrices like the last example below. Block matrices often arise in vector-valued finite element discretizations. In such cases, BSR is considerably more efficient than CSR and CSC for many sparse arithmetic operations. Block Compressed Row (BSR). From their doc: The Block Compressed Row (BSR) format is very similar to the Compressed Sparse Row (CSR) format. BSR is appropriate for sparse matrices with dense sub matrices like the last example below. Block matrices often arise in vector-valued finite element discretizations. In such cases, BSR is considerably more efficient than CSR and CSC for many sparse arithmetic operations.
``dia_matrix`` ``dia_matrix``
Sparse matrix with DIAgonal storage Sparse matrix with DIAgonal storage
There are four member variables that comprise a compressed matrix ``sp``(for at least csc, csr and bsr): There are four member variables that comprise a compressed matrix ``sp`` (for at least csc, csr and bsr):
``sp.shape`` ``sp.shape``
gives the shape of the matrix. gives the shape of the matrix.
......
...@@ -53,6 +53,7 @@ We can verify that this alternate form produces the same values: ...@@ -53,6 +53,7 @@ We can verify that this alternate form produces the same values:
.. If you modify this code, also change : .. If you modify this code, also change :
.. theano/tests/test_tutorial.py:T_examples.test_examples_2 .. theano/tests/test_tutorial.py:T_examples.test_examples_2
>>> s2 = (1 + T.tanh(x / 2)) / 2 >>> s2 = (1 + T.tanh(x / 2)) / 2
>>> logistic2 = function([x], s2) >>> logistic2 = function([x], s2)
>>> logistic2([[0, 1], [-1, -2]]) >>> logistic2([[0, 1], [-1, -2]])
...@@ -69,6 +70,7 @@ squared difference between two matrices ``a`` and ``b`` at the same time: ...@@ -69,6 +70,7 @@ squared difference between two matrices ``a`` and ``b`` at the same time:
.. If you modify this code, also change : .. If you modify this code, also change :
.. theano/tests/test_tutorial.py:T_examples.test_examples_3 .. theano/tests/test_tutorial.py:T_examples.test_examples_3
>>> a, b = T.dmatrices('a', 'b') >>> a, b = T.dmatrices('a', 'b')
>>> diff = a - b >>> diff = a - b
>>> abs_diff = abs(diff) >>> abs_diff = abs(diff)
......
...@@ -56,6 +56,7 @@ cluster!). ...@@ -56,6 +56,7 @@ cluster!).
.. If you modify this code, also change : .. If you modify this code, also change :
.. theano/tests/test_tutorial.py:T_modes.test_modes_1 .. theano/tests/test_tutorial.py:T_modes.test_modes_1
DebugMode is used as follows: DebugMode is used as follows:
.. code-block:: python .. code-block:: python
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论