Skip to content

Commit 6c8b5b8

Browse files
committed
Modifications for 0.5rc2 release
1 parent fdc9543 commit 6c8b5b8

File tree

7 files changed

+139
-52
lines changed

7 files changed

+139
-52
lines changed

EMAIL.txt

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,20 @@
11
===========================
2-
Announcing Theano 0.4.0
2+
Announcing Theano 0.5rc2
33
===========================
44

5-
This is a major release, with lots of new features, bug fixes, and some
6-
interface changes (deprecated or potentially misleading features were
7-
removed). The upgrade is recommended for everybody, unless you rely on
8-
deprecated features that have been removed.
5+
This is a release candidate for a major version, with lots of new
6+
features, bug fixes, and some interface changes (deprecated or
7+
potentially misleading features were removed).
98

10-
For those using the bleeding edge version in the
11-
git repository, we encourage you to update to the `0.4.0` tag.
12-
13-
14-
Deleting old cache
15-
------------------
9+
The upgrade is recommended for developpers who want to help test and
10+
report bugs, or want to use new features now. If you have updated
11+
to 0.5rc1, you are highly encouraged to update to 0.5rc2. There are
12+
more bug fixes and speed uptimization! But there is also a small new
13+
interface change about sum of [u]int* dtype. Otherwise, users should
14+
wait for the 0.5 release.
1615

17-
The caching mechanism for compiled C modules has been updated.
18-
In some cases, using previously-compiled modules with the new version of
19-
Theano can lead to high memory usage and code slow-down. If you experience
20-
these symptoms, we encourage you to clear your cache.
21-
22-
The easiest way to do that is to execute:
23-
theano-cache clear
24-
25-
(The theano-cache executable is in Theano/bin.)
16+
For those using the bleeding edge version in the
17+
git repository, we encourage you to update to the `0.5rc2` tag.
2618

2719

2820
What's New
@@ -87,11 +79,17 @@ Acknowledgments
8779
---------------
8880

8981
I would like to thank all contributors of Theano. For this particular
90-
release, many people have helped during the release sprint: (in
91-
alphabetical order) Frederic Bastien, Arnaud Bergeron, James Bergstra,
92-
Nicolas Boulanger-Lewandowski, Raul Chandias Ferrari, Olivier
93-
Delalleau, Guillaume Desjardins, Philippe Hamel, Pascal Lamblin,
94-
Razvan Pascanu and David Warde-Farley.
82+
release, many people have helped, notably (in alphabetical order):
83+
Frédéric Bastien, Justin Bayer, Arnaud Bergerond, James Bergstra,
84+
Valentin Bisson, Josh Bleecher Snyder, Yann Dauphin, Olivier Delalleau,
85+
Guillaume Desjardins, Sander Dieleman, Xavier Glorot, Ian Goodfellow,
86+
Philippe Hamel, Pascal Lamblin, Eric Laufer, Razvan Pascanu, Matthew
87+
Rocklin, Graham Taylor, Sebastian Urban, David Warde-Farley, and Yao Li.
88+
89+
I would also like to thank users who submitted bug reports, notably
90+
(this list is incomplete, please let us know if someone should be
91+
added): Nicolas Boulanger-Lewandowski, Olivier Chapelle, Michael
92+
Forbes, and Timothy Lillicrap.
9593

9694
Also, thank you to all NumPy and Scipy developers as Theano builds on
9795
their strengths.

HISTORY.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ Old Release Notes
66
=================
77

88

9-
Modifications in the 0.4.1 (12 August 2011)
9+
Theano 0.4.1 (12 August 2011)
10+
=============================
1011

1112
New features:
1213

NEWS.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
UPDATED THIS FILE UP TO: 41103b5d158739e4147428ce776fb5716062d4a8
1+
.. _NEWS:
2+
3+
=============
4+
Release Notes
5+
=============
26

37
If you have updated to 0.5rc1, you are highly encouraged to update to
48
0.5rc2. There are more bug fixes and speed uptimization! But there is
59
also a small new interface change about sum of [u]int* dtype.
610

711

812
Modifications in the trunk since the 0.4.1 release (August 12th, 2011)
9-
13+
======================================================================
1014

1115
Upgrading to Theano 0.5rc2 is recommended for everyone, but you should first make
1216
sure that your code does not raise deprecation warnings with Theano 0.4.1.

doc/LICENSE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
LICENSE
44
=======
55

6-
Copyright (c) 2008--2011, Theano Development Team
6+
Copyright (c) 2008--2012, Theano Development Team
77
All rights reserved.
88

99
Redistribution and use in source and binary forms, with or without

doc/NEWS.txt

Lines changed: 104 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,46 @@
1-
Modifications in the trunk since the 0.4.1 release (August 12th, 2011) up to December 5th, 2011
1+
.. _NEWS:
22

3+
=============
4+
Release Notes
5+
=============
36

4-
Upgrading to Theano 0.5 is recommended for everyone, but you should first make
7+
If you have updated to 0.5rc1, you are highly encouraged to update to
8+
0.5rc2. There are more bug fixes and speed uptimization! But there is
9+
also a small new interface change about sum of [u]int* dtype.
10+
11+
12+
Modifications in the trunk since the 0.4.1 release (August 12th, 2011)
13+
======================================================================
14+
15+
Upgrading to Theano 0.5rc2 is recommended for everyone, but you should first make
516
sure that your code does not raise deprecation warnings with Theano 0.4.1.
617
Otherwise, in one case the results can change. In other cases, the warnings are
718
turned into errors (see below for details).
819

920

10-
Important changes:
21+
Highlight:
1122
* Moved to github: http://github.com/Theano/Theano/
1223
* Old trac ticket moved to assembla ticket: http://www.assembla.com/spaces/theano/tickets
1324
* Theano vision: http://deeplearning.net/software/theano/introduction.html#theano-vision (Many people)
1425
* Theano with GPU works in some cases on Windows now. Still experimental. (Sebastian Urban)
26+
* Faster dot() call: New/Better direct call to cpu and gpu ger, gemv, gemm and dot(vector, vector). (James, Frédéric, Pascal)
27+
* C implementation of Alloc. (James, Pascal)
28+
* theano.grad() now also work with sparse variable. (Arnaud)
29+
* Macro to implement the Jacobian/Hessian with theano.tensor.{jacobian,hessian} (Razvan)
1530
* See the Interface changes.
1631

1732

1833
Interface Behavior Change (was deprecated and generated a warning since Theano 0.3 released Nov. 23rd, 2010):
19-
* The current default value of the parameter axis of
20-
theano.{max,min,argmax,argmin,max_and_argmax} is now the same as
21-
numpy: None. i.e. operate on all dimensions of the tensor. (Frédéric Bastien, Olivier Delalleau)
34+
* The current default value of the parameter axis of
35+
theano.{max,min,argmax,argmin,max_and_argmax} is now the same as
36+
numpy: None. i.e. operate on all dimensions of the tensor. (Frédéric Bastien, Olivier Delalleau)
37+
* The current output dtype of sum with input dtype [u]int* is now always [u]int64.
38+
You can specify the output dtype with a new dtype parameter to sum.
39+
The output dtype is the one using for the summation.
40+
There is no warning in previous Theano version about this.
41+
The consequence is that the sum is done in a dtype with more precession then before.
42+
So the sum could be slower, but will be more resistent to overflow.
43+
This new behavior is the same as numpy. (Olivier, Pascal)
2244

2345

2446
Interface Features Removed (most were deprecated):
@@ -32,10 +54,10 @@ Interface Features Removed (most were deprecated):
3254
* Theano config option "home" is not used anymore as it was redundant with "base_compiledir".
3355
If you use it, Theano will now raise an error. (Olivier D.)
3456
* scan interface changes: (Razvan Pascanu)
35-
- The use of `return_steps` for specifying how many entries of the output
57+
* The use of `return_steps` for specifying how many entries of the output
3658
to return has been removed. Instead, apply a subtensor to the output
3759
returned by scan to select a certain slice.
38-
- The inner function (that scan receives) should return its outputs and
60+
* The inner function (that scan receives) should return its outputs and
3961
updates following this order:
4062
[outputs], [updates], [condition].
4163
One can skip any of the three if not used, but the order has to stay unchanged.
@@ -46,8 +68,30 @@ Interface bug fixes:
4668
New deprecation (will be removed in Theano 0.6, warning generated if you use them):
4769
* tensor.shared() renamed to tensor._shared(). You probably want to call theano.shared() instead! (Olivier D.)
4870

71+
Scan fix:
72+
* computing grad of a function of grad of scan(reported by ?, Razvan)
73+
before : most of the time crash, but could be wrong value with bad number of dimensions(so a visible bug)
74+
now : do the right thing.
75+
* gradient with respect to outputs using multiple taps(Timothy reported, fix by Razvan)
76+
before : it used to return wrong values
77+
now : do the right thing.
78+
Note: The reported case of this bug was happening in conjunction with the
79+
save optimization of scan that give run time errors. So if you didn't
80+
manually disable the same memory optimization(number in the list4),
81+
you are fine if you didn't manually request multiple taps.
82+
* Rop of gradient of scan (reported by Timothy and Justin Bayer, fix by Razvan)
83+
before : compilation error when computing R-op
84+
now : do the right thing.
85+
* save memory optimization of scan (reported by Timothy and Nicolas BL, fix by Razvan)
86+
before : for certain corner cases used to result in a runtime shape error
87+
now : do the right thing.
88+
* Scan grad when the input of scan has sequences of different lengths. (Razvan, reported by Michael Forbes)
89+
* Scan.infer_shape now works correctly when working with a condition for the number of loops.
90+
In the past, it returned n_steps as the length, which is not always true. (Razvan)
91+
* Scan.infer_shape crash fix. (Reported by ?, Razvan)
4992

5093
New features:
94+
* AdvancedIncSubtensor grad defined and tested (Justin Bayer)
5195
* Adding 1D advanced indexing support to inc_subtensor and set_subtensor (James Bergstra)
5296
* tensor.{zeros,ones}_like now support the dtype param as numpy (Frederic)
5397
* Added configuration flag "exception_verbosity" to control the verbosity of exceptions (Ian)
@@ -68,12 +112,31 @@ New features:
68112
* Note: theano.dot and theano.sparse.structured_dot() always had a gradient with the same sparsity pattern as the inputs.
69113
The new theano.sparse.dot() has a dense gradient for all inputs.
70114
* GpuAdvancedSubtensor1 supports broadcasted dimensions. (Frederic)
115+
* TensorVariable.zeros_like() and SparseVariable.zeros_like()
116+
* theano.sandbox.cuda.cuda_ndarray.cuda_ndarray.device_properties() (Frederic)
117+
* theano.sandbox.cuda.cuda_ndarray.cuda_ndarray.mem_info() return free and total gpu memory (Frederic)
118+
* Theano flags compiledir_format. Keep the same default as before: compiledir_%(platform)s-%(processor)s-%(python_version)s. (Josh Bleecher Snyder)
119+
* We also support the "theano_version" substitution.
120+
* IntDiv c code (faster and allow this elemwise to be fused with other elemwise) (Pascal)
121+
* Internal filter_variable mechanism in Type. (Pascal, Ian)
122+
* Ifelse work on sparse.
123+
* Make use of gpu shared variable more transparent with theano.function updates and givens parameter.
124+
* Added a_tensor.transpose(axes) axes is optional (James)
125+
* theano.tensor.transpose(a_tensor, kwargs) We where ignoring kwargs, now it is used as the axes.
126+
* a_CudaNdarray_object[*] = int, now work (Frederic)
127+
* tensor_variable.size (as numpy) computes the product of the shape elements. (Olivier)
128+
* sparse_variable.size (as scipy) computes the number of stored values. (Olivier)
129+
* sparse_variable[N, N] now works (Li Yao, Frederic)
130+
* sparse_variable[M:N, O:P] now works (Li Yao, Frederic)
131+
* Warning: M, N, O, and P should be Python int or scalar tensor variables,
132+
in particular, None is not well-supported.
133+
* tensor.tensordot can now be moved to GPU (Sander Dieleman,
134+
Pascal, based on code from Tijmen Tieleman's gnumpy,
135+
http://www.cs.toronto.edu/~tijmen/gnumpy.html)
71136

72137

73138
New optimizations:
74139
* AdvancedSubtensor1 reuses preallocated memory if available (scan, c|py_nogc linker) (Frederic)
75-
* tensor_variable.size (as numpy) computes the product of the shape elements. (Olivier)
76-
* sparse_variable.size (as scipy) computes the number of stored values. (Olivier)
77140
* dot22, dot22scalar work with complex. (Frederic)
78141
* Generate Gemv/Gemm more often. (James)
79142
* Remove scan when all computations can be moved outside the loop. (Razvan)
@@ -88,9 +151,6 @@ New optimizations:
88151
Bug fixes (the result changed):
89152
* On CPU, if the convolution had received explicit shape information, they where not checked at runtime.
90153
This caused wrong result if the input shape was not the one expected. (Frederic, reported by Sander Dieleman)
91-
* Scan grad when the input of scan has sequences of different lengths. (Razvan, reported by Michael Forbes)
92-
* Scan.infer_shape now works correctly when working with a condition for the number of loops.
93-
In the past, it returned n_steps as the length, which is not always true. (Razvan)
94154
* Theoretical bug: in some case we could have GPUSum return bad value.
95155
We were not able to reproduce this problem
96156
* patterns affected ({0,1}*nb dim, 0 no reduction on this dim, 1 reduction on this dim):
@@ -101,6 +161,15 @@ Bug fixes (the result changed):
101161
* An expression of the form "1 / (exp(x) +- constant)" was systematically matched to "1 / (exp(x) + 1)"
102162
and turned into a sigmoid regardless of the value of the constant. A warning will be issued if your
103163
code was affected by this bug. (Olivier, reported by Sander Dieleman)
164+
* When indexing into a subtensor of negative stride (for instance, x[a:b:-1][c]),
165+
an optimization replacing it with a direct indexing (x[d]) used an incorrect formula,
166+
leading to incorrect results. (Pascal, reported by Razvan)
167+
* The tile() function is now stricter in what it accepts to allow for better
168+
error-checking/avoiding nonsensical situations. The gradient has been
169+
disabled for the time being as it only implemented (incorrectly) one special
170+
case. The `reps` argument must be a constant (not a tensor variable), and
171+
must have the same length as the number of dimensions in the `x` argument;
172+
this is now checked. (David)
104173

105174

106175
Crashes fixed:
@@ -116,19 +185,22 @@ Crashes fixed:
116185
* Support for OSX Enthought Python Distribution 7.x. (Graham Taylor, Olivier)
117186
* When the subtensor inputs had 0 dimensions and the outputs 0 dimensions. (Frederic)
118187
* Crash when the step to subtensor was not 1 in conjunction with some optimization. (Frederic, reported by Olivier Chapelle)
119-
* fix dot22scalar cast of integer scalars (Justin Bayer, Frédéric, Olivier)
188+
* Runtime crash related to an optimization with subtensor of alloc (reported by Razvan, fixed by Frederic)
189+
* Fix dot22scalar cast of integer scalars (Justin Bayer, Frédéric, Olivier)
190+
* Fix runtime crash in gemm, dot22. FB
191+
* Fix on 32bits computer: make sure all shape are int64.(Olivier)
192+
* Fix to deque on python 2.4 (Olivier)
193+
* Fix crash when not using c code(or using DebugMode)(not used by default) with numpy 1.6*. Numpy have a bug in the reduction code that make it crash. ufunc.reduce (Pascal)
120194

121195

122196
Known bugs:
123197
* CAReduce with nan in inputs don't return the good output (`Ticket <https://www.assembla.com/spaces/theano/tickets/763>`_).
124198
* This is used in tensor.{max,mean,prod,sum} and in the grad of PermuteRowElements.
125-
* If you take the grad of a grad of scan, now we raise an error during the construction of the graph. In the past, you could have wrong results in some cases or an error at run time.
126-
* Scan can raise an IncSubtensor error at run time (no wrong result possible). The current workaround is to disable an optimization with this Theano flag: "optimizer_excluding=scanOp_save_mem".
127-
* If you have multiple optimizations to disable, you must separate them with ":".
128199

129200

130201
Sandbox:
131202
* cvm interface more consistent with current linker. (James)
203+
* Now all tests pass with the linker=cvm flags.
132204
* vm linker has a callback parameter. (James)
133205
* review/finish/doc: diag/extract_diag. (Arnaud Bergeron, Frederic, Olivier)
134206
* review/finish/doc: AllocDiag/diag. (Arnaud, Frederic, Guillaume)
@@ -139,39 +211,51 @@ Sandbox:
139211
* review/finish/doc: ensure_sorted_indices. (Li Yao)
140212
* review/finish/doc: spectral_radius_boud. (Xavier Glorot)
141213
* review/finish/doc: sparse sum. (Valentin Bisson)
214+
* review/finish/doc: Remove0 (Valentin)
215+
* review/finish/doc: SquareDiagonal (Eric)
142216

143217

144218
Sandbox New features (not enabled by default):
145219
* CURAND_RandomStreams for uniform and normal (not picklable, GPU only) (James)
220+
* New sandbox.linalg.ops.pinv(pseudo-inverse) op (Razvan)
146221

147222

148223
Documentation:
149224
* Many updates. (Many people)
150225
* Updates to install doc on MacOS. (Olivier)
151226
* Updates to install doc on Windows. (David, Olivier)
227+
* Doc on the Rop function (Ian)
152228
* Added how to use scan to loop with a condition as the number of iteration. (Razvan)
153229
* Added how to wrap in Theano an existing python function (in numpy, scipy, ...). (Frederic)
154230
* Refactored GPU installation of Theano. (Olivier)
155231

156232

157233
Others:
158-
* Better error messages in many places. (David, Ian, Frederic, Olivier)
234+
* Better error messages in many places. (Many people)
159235
* PEP8 fixes. (Many people)
236+
* Add a warning about numpy bug with subtensor with more then 2**32 elemenent(TODO, more explicit)
237+
* Added Scalar.ndim=0 and ScalarSharedVariable.ndim=0 (simplify code)(Razvan)
160238
* New min_informative_str() function to print graph. (Ian)
161-
* Fix catching of exception. (Sometimes we catched interupt) (Frederic, David, Ian, Olivier)
239+
* Fix catching of exception. (Sometimes we used to catch interrupts) (Frederic, David, Ian, Olivier)
162240
* Better support for uft string. (David)
163241
* Fix pydotprint with a function compiled with a ProfileMode (Frederic)
164242
* Was broken with change to the profiler.
165243
* Warning when people have old cache entries. (Olivier)
166244
* More tests for join on the GPU and CPU. (Frederic)
167245
* Don't request to load the GPU module by default in scan module. (Razvan)
168-
* Fixed some import problems.
246+
* Fixed some import problems. (Frederic and others)
169247
* Filtering update. (James)
170248
* On Windows, the default compiledir changed to be local to the computer/user and not transferred with roaming profile. (Sebastian Urban)
171249
* New theano flag "on_shape_error". Defaults to "warn" (same as previous behavior):
172250
it prints a warning when an error occurs when inferring the shape of some apply node.
173251
The other accepted value is "raise" to raise an error when this happens. (Frederic)
174252
* The buidbot now raises optimization/shape errors instead of just printing a warning. (Frederic)
253+
* better pycuda tests (Frederic)
254+
* check_blas.py now accept the shape and the number of iteration as parameter (Frederic)
255+
* Fix opt warning when the opt ShapeOpt is disabled(enabled by default) (Frederic)
256+
* More internal verification on what each op.infer_shape return. (Frederic, James)
257+
* Argmax dtype to int64 (Olivier)
258+
* Improved docstring and basic tests for the Tile Op (David).
175259

176260
Reviewers (alphabetical order):
177261
* David, Frederic, Ian, James, Olivier, Razvan

doc/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@
4545

4646
# General substitutions.
4747
project = 'Theano'
48-
copyright = '2008--2011, LISA lab'
48+
copyright = '2008--2012, LISA lab'
4949

5050
# The default replacements for |version| and |release|, also used in various
5151
# other places throughout the built documents.
5252
#
5353
# The short X.Y version.
5454
version = '0.5'
5555
# The full version, including alpha/beta/rc tags.
56-
release = '0.5rc1'
56+
release = '0.5rc2'
5757

5858
# There are two options for replacing |today|: either, you set today to some
5959
# non-false value, then it is used:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
MAJOR = 0
4949
MINOR = 5
5050
MICRO = 0
51-
SUFFIX = "rc1" # Should be blank except for rc's, betas, etc.
51+
SUFFIX = "rc2" # Should be blank except for rc's, betas, etc.
5252
ISRELEASED = False
5353

5454
VERSION = '%d.%d.%d%s' % (MAJOR, MINOR, MICRO, SUFFIX)

0 commit comments

Comments
 (0)