Skip to content
nouiz edited this page Feb 12, 2013 · 31 revisions

Updates in the Trunk since the last release up to git shortlog -ns rel-0.6rc2..

git log -p rel-0.5... |grep Merge|less

PR merged since 0.6rc2:
git log -p rel-0.6rc2... |grep Merge|grep '#' |cut -f 8 -d ' ' | replace "#" "* https://github.com/Theano/Theano/pull/"
  • 1220
doc
  • https://github.com/Theano/Theano/pull/1207 infer shape now force a scalar constant via get_scalar_constant_value() for shape of broadcastable dimensions. This simplify the shape graph for some some cases where we weren't able to know at compile time via the infer_shape mechanism that some shape where 1. This fix a crash. Fred
  • 1209
Correctly support array with more then 2*10e32 element in AdvancedSubtensor1. Abalkin.
Fix path problem in some cases with theano-nose --batch (Abalkin)
Fix compilation problem on GPU on Windows. Fred
Ignore bug before 0.5 by default. Fred
tensor_var.{dot,std,argmin,argmax,argsort,clip,conj,repeat,round,trace,real,imag} to support the NumPy syntax. abalkin
In the grad method, if it were asked to raise an error if there is no path between the variables, we didn't always returned an error. We returned the mathematical right answer 0. Ian
speed up sparse.AddSD new op sparse.ConstructSparseFromList advanced_subtensor1( TODO, how to specify the sparse_grad?

new feature:

tensor.tensordot now support Rop/Lop (Jeremiah Lowin)
This remove the class TensorDot and TensorDotGrad. It is the Dot/Elemwise op that are used.
tensor.dot support n-dimensional inputs as NumPy (Jeremiah Lowin)
Work on the GPU too.
Scan opt that where skipped with a warning is now applied. Fix grad that was not computable, are now computable Razvan.
fix race condition when determining if g++ is available: Abalkin
fix GpuSoftmax and GpuSoftmaxWithBias crash on GTX285 Fred accept -ftz=true, --prec-div=false and --prec=sqrt=false opt to nvcc with nvcc.flags. Enable all of them with nvcc.flags=--use_fast_math
fix compilation crash with llvm on mac Abalkin.
get_constant_value -> get_scalar_constant_value and raise an tensor.basic.NotScalarConstantError. error to be more specific. Ian G.
fix crash due to a race condition when importing theano (Ian G.
theano function now always have a field name, default to None. Fred
Fix problem with the broadcast dimensions of the Repeat op. Abalkin
fix eigh grad that didn't always returned the right dtype. Fred, Olivier D.
fix wrong dtype in sandbox.linalg.ExtractDiag with shape of 0. reported by abalkin
Fixes three non-determinism problems: 1) forbids using dict as the updates argument to theano.compile.function, since this makes the returned function non-deterministic
  1. fixes an issue where grad is non-deterministic
  2. the Updates class was not appropriate for representing updates because it is non-deterministic; replaced it with the OrderedUpdates class. This requires changing scan to use the new class.

Also adds some features I found useful for debugging these issues.

Trying to use the Updates class will result in you getting an OrderedUpdates and a warning. Trying to use theano.function(updates=dict) will issue a warning.

TODO: duplicate with theano.sandbox.linalg.ops.* tensor_var.{diagonal,conjugate} theano.tensor.{diag,diagonal}
fgraph.name == fn.name (Ian G)

Bug fix: * https://github.com/Theano/Theano/pull/1130 TODO add url to example.

Fix copy or random state between graph Guillaume D.

New Features: * More Theano determinism with including a new class OrderedSet (Ian G., Olivier D., Pascal L.) * Implemented GpuContiguous.grad (Ian G.)

Interface Deprecation (a warning is printed):
theano.misc.strutil.renderString -> render_string (Ian G.)

Interface Change: * Raise an error when theano.shared called with a theano variable (Frederic B.)

New Interface (reuse existing functionality): * tensor_var.sort() as a shortcut for theano.tensor.sort (Jeremiah Lowin)

We where already doing this for argsort
  • Add theano.tensor.take() and a_tensor_var.take() to support NumPy syntax (abalkin)

New debug feature: * debugmode print more info when there is an error (Frederic B.) * Better profiling of test time with theano-nose --time-profile (Frederic B.) * Detection of infinite loop with global optimizer (Pascal L.) * DebugMode.check_preallocated_output now also work on Theano function output (Pascal L.)

Speed-ups: * c_code for SpecifyShape op (Frederic B.) * cross-entropy optimization now work when specify_shape is used (Pascal L.) * make the Scan optimization ScanSaveMem applied more frequently. (Razvan P, reported Abalkin)

A skipped optimization warning was printed.
  • dot(vector, vector) now faster with some BLAS implementation. (Eric Hunsberger) OpenBLAS and other didn't called {s,d}dot internally when we called {s,g}gemv. MKL was doing this.
  • Compilation speed up: Take the compiledir lock only for op that generate c_code. (Frederic B)
  • More scan optimization (Razvan P.) TODO: more detail.

Interface Addition: * CudaNdarray_prep_output(CudaNdarray ** arr, int nd, const int * dims) (Ian G)

Crash Fixes: * About dimshuffle (abalkin) * At compilation (Olivier D.) * Fix openmp detection (Pascal L.)

Resulted in a crash with EPD on Windows.
  • Fix for new BLAS interface in SciPy (Olivier D.) Fix crash with some development version of SciPy.
  • GpuSum work with bigger shape when summing on the first dim on 3d tensor. (Frederic B., reported Chris Currivan)
  • Windows compilation crash fix (Frederic B.)
  • Make CrossentropySoftmax1HotWithBiasDx and CrossentropySoftmaxArgmax1HotWithBias support uint* dtype. (Frederic B., reported by Mark Fenner)

Theoretical bugfix (bug that won't happen with current Theano code, but if you messed with the internal, could have affected you): * GpuContiguous now check the preallocated outputs strides before using it. (Pascal L.)

doc David, abalkin, Amir Elaguizy, Olivier D., Fred

Clone this wiki locally