提交 2d40e0b3 authored 作者: Pascal Lamblin's avatar Pascal Lamblin

Small updates in NEWS.txt

上级 5655ea1c
Modification in the trunk since the last release Modifications in the trunk since the last release
Theano 0.3.1rc2 (2011-02-18) Theano 0.3.1rc2 (2011-02-18)
---------------------------- ----------------------------
Deprecation: Deprecation:
* The theano shared variable attribute `value` is deprecated, use `get_value()` or `set_value()`! * The theano shared variable attribute `value` is deprecated, use `get_value()` or `set_value()`!
http://deeplearning.net/software/theano/tutorial/aliasing.html See http://deeplearning.net/software/theano/tutorial/aliasing.html
Bugs fixed: Bugs fixed:
* The random number generator in theano/sandbox/rng_mrg.py did not always return the same sequence of number on the CPU and GPU. * The random number generator in theano/sandbox/rng_mrg.py did not always return the same sequence of number on the CPU and GPU.
* In some cases, there was a small fraction of garbage in the returned sequence. * In some cases, there was a (possibly large) fraction of non-random garbage in the returned sequence.
That garbage wad not random!
* In python mode (not the default mode) when input of elemwise operation was an empty ndarray, we were not returning an empty ndarray. * In python mode (not the default mode) when input of elemwise operation was an empty ndarray, we were not returning an empty ndarray.
* One bug in Scan: * Scan cached the number of steps. This caused no problem because each time you called scan the number of steps would got refreshed.
* Scan cached the number of steps. This caused no problem because each time you called scan the number of steps would got refreshed. The problem was when you called ScanGrad which would use the cached number of steps without refreshing it.
The problem was when you called ScanGrad which would use the cached number of steps without refreshing it. To be affected by this bug, one would have to compile two graph, one that would contain a Scan and the other the corresponding GradScan, and
To reproduce this bug one would have to compile two graph, one that would contain a Scan and the other the corresponding GradScan and call the first function to cache the number of steps, and then call the second function with a different number of steps.
call the first function to cache the number of steps, and then call the second function with a different number of steps.
* In GpuConv, errors in conv_patch_stack_reduce when the entire kernel doesn't fit into shared memory. * In GpuConv, errors in conv_patch_stack_reduce when the entire kernel doesn't fit into shared memory.
The error was not found before as the impact was less then the relative tolerance of 1e-3. Now the relative tolerance is 1e-5. The error was not found before as the impact was less then the relative tolerance of 1e-3. Now the relative tolerance is 1e-5.
...@@ -25,7 +24,7 @@ Crash fixed: ...@@ -25,7 +24,7 @@ Crash fixed:
* Compilation crash for GpuElemwise with tensor with high number of dimensions(~6 or more). * Compilation crash for GpuElemwise with tensor with high number of dimensions(~6 or more).
* Disabled C code generator that make gcc crash on complex type. * Disabled C code generator that make gcc crash on complex type.
* Crash in optimization when an Op has no input. * Crash in optimization when an Op has no input.
* output shape is now computed correctly for matrix-vector multiplication on GPU. * Output shape is now computed correctly for matrix-vector multiplication on GPU.
* In Scan, when using numbers as inputs, not symbolic variables. * In Scan, when using numbers as inputs, not symbolic variables.
* In GradScan, when there is only 1 inputs in the Scan. * In GradScan, when there is only 1 inputs in the Scan.
* In GpuSum, bug in calculation of n_blocks for the 10 pattern. (Sum on the row of a matrix) * In GpuSum, bug in calculation of n_blocks for the 10 pattern. (Sum on the row of a matrix)
...@@ -34,20 +33,20 @@ Crash fixed: ...@@ -34,20 +33,20 @@ Crash fixed:
Optimization: Optimization:
* New SpecifyShape op that allow to pass more shape info in the graph. * New SpecifyShape op that allow to pass more shape info in the graph.
* Speed up gemv by a work around scipy gemv slowness when the matrix is in C order (the default). * Speed up gemv by a work around scipy gemv slowness when the matrix is in C order (the default).
* Remove join of only 1 element * Remove join of only 1 element.
* During optimization, consider one more case in get_constant_value. * During optimization, consider one more case in get_constant_value.
GPU: GPU:
* cuda_shared.value = X now works inplace! * cuda_shared.value = X now works inplace!
* cuda_shared_var.set_value(new_ndarray) will overwrite the old value inplace in the most common case. * cuda_shared_var.set_value(new_ndarray) will overwrite the old value inplace in the most common case.
* Allow to create a CudaNdarraySharedVariable from a CudaNdarray. * Allow to create a CudaNdarraySharedVariable from a CudaNdarray.
* new init_gpu_device theano flags. * New init_gpu_device theano flags.
* Fuse GpuElemwise more often (in the case where there are so many inputs that fusing them all would bust the 256 bytes limit of parameter to gpu function). * Fuse GpuElemwise more often (in the case where there are so many inputs that fusing them all would bust the 256 bytes limit of parameter to gpu function).
* Cpu join of only 1 element that was not moved to the gpu. * CPU join of only 1 element that was not moved to the GPU.
New features: New features:
* Tensor.reshape now makes dimensions of length broadcastable (fixes #434). * tensor.reshape now makes dimensions of length 1 broadcastable.
* Tensor.prod now implements the gradient * tensor.prod now implements the gradient.
* DebugMode now warns if an Op declared itself as returning a view of the input but did not do so. * DebugMode now warns if an Op declared itself as returning a view of the input but did not do so.
* This behaviour is a problem, because it can block other Ops from being inplace on the same inputs. This could lower the reuse of memory. * This behaviour is a problem, because it can block other Ops from being inplace on the same inputs. This could lower the reuse of memory.
* Sparse.structured_dot now works when both matrices are sparse * Sparse.structured_dot now works when both matrices are sparse
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论