forked from Theano/Theano
-
Notifications
You must be signed in to change notification settings - Fork 0
/
HISTORY.txt
2408 lines (2113 loc) · 110 KB
/
HISTORY.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.. _HISTORY:
=================
Old Release Notes
=================
Theano 0.9.0rc4 (13th of March, 2017)
=====================================
This release extends the 0.9.0rc3 and announces the upcoming final release 0.9.
Highlights (since 0.9.0rc3):
- Documentation updates
- DebugMode fixes, cache cleanup fixes and other small fixes
- New GPU back-end:
- Fixed offset error in GpuIncSubtensor
- Fixed indexing error in GpuAdvancedSubtensor for more than 2 dimensions
A total of 5 people contributed to this release since 0.9.0rc3 and 123 since 0.8.0, see the lists below.
Committers since 0.9.0rc3:
- Frederic Bastien
- Pascal Lamblin
- Arnaud Bergeron
- Cesar Laurent
- Martin Drawitsch
Theano 0.9.0rc3 (6th of March, 2017)
====================================
This release extends the 0.9.0rc2 and announces the upcoming final release 0.9.
Highlights (since 0.9.0rc2):
- Graph clean up and faster compilation
- New Theano flag conv.assert_shape to check user-provided shapes at runtime (for debugging)
- Fix overflow in pooling
- Warn if taking softmax over broadcastable dimension
- Removed old files not used anymore
- Test fixes and crash fixes
- New GPU back-end:
- Removed warp-synchronous programming, to get good results with newer CUDA drivers
A total of 5 people contributed to this release since 0.9.0rc2 and 122 since 0.8.0, see the lists below.
Committers since 0.9.0rc2:
- Frederic Bastien
- Arnaud Bergeron
- Pascal Lamblin
- Florian Bordes
- Jan Schlüter
Theano 0.9.0rc2 (27th of February, 2017)
========================================
This release extends the 0.9.0rc1 and announces the upcoming final release 0.9.
Highlights (since 0.9.0rc1):
- Fixed dnn conv grad issues
- Allowed pooling of empty batch
- Use of 64-bit indexing in sparse ops to allow matrix with more then 2\ :sup:`31`\ -1 elements.
- Removed old benchmark directory
- Crash fixes, bug fixes, warnings improvements, and documentation update
A total of 9 people contributed to this release since 0.9.0rc1 and 121 since 0.8.0, see the lists below.
Committers since 0.9.0rc1:
- Frederic Bastien
- Pascal Lamblin
- Steven Bocco
- Simon Lefrancois
- Lucas Beyer
- Michael Harradon
- Rebecca N. Palmer
- David Bau
- Micah Bojrab
Theano 0.9.0rc1 (20th of February, 2017)
========================================
This release extends the 0.9.0beta1 and announces the upcoming final release 0.9.
Highlights (since 0.9.0beta1):
- Better integration of Theano+libgpuarray packages into conda distribution
- Better handling of Windows end-lines into C codes
- Better compatibility with NumPy 1.12
- Faster scan optimizations
- Fixed broadcast checking in scan
- Bug fixes related to merge optimizer and shape inference
- many other bug fixes and improvements
- Updated documentation
- New GPU back-end:
- Value of a shared variable is now set inplace
A total of 26 people contributed to this release since 0.9.0beta1 and 117 since 0.8.0, see the list at the bottom.
Interface changes:
- In MRG, replaced method `multinomial_wo_replacement()` with new method `choice()`
Convolution updates:
- Implement conv2d_transpose convenience function
GPU:
- GPUMultinomialFromUniform op now supports multiple dtypes
New features:
- OpFromGraph now allows gradient overriding for every input
- Added Abstract Ops for batch normalization that use cuDNN when available and pure Theano CPU/GPU alternatives otherwise
- Added new Theano flag cuda.enabled
- Added new Theano flag print_global_stats to print some global statistics (time spent) at the end
Others:
- Split op now has C code for CPU and GPU
- "theano-cache list" now includes compilation times
Committers since 0.9.0beta1:
- Frederic Bastien
- Benjamin Scellier
- khaotik
- Steven Bocco
- Arnaud Bergeron
- Pascal Lamblin
- Gijs van Tulder
- Reyhane Askari
- Chinnadhurai Sankar
- Vincent Dumoulin
- Alexander Matyasko
- Cesar Laurent
- Nicolas Ballas
- affanv14
- Faruk Ahmed
- Anton Chechetka
- Alexandre de Brebisson
- Amjad Almahairi
- Dimitar Dimitrov
- Fuchai
- Jan Schlüter
- Jonas Degrave
- Mathieu Germain
- Rebecca N. Palmer
- Simon Lefrancois
- valtron
Theano 0.9.0beta1 (24th of January, 2017)
=========================================
This release contains a lot of bug fixes and improvements + new features, to prepare the upcoming release candidate.
Highlights:
- Many computation and compilation speed up
- More numerical stability by default for some graph
- Jenkins (gpu tests run on PR in addition to daily buildbot)
- Better handling of corner cases for theano functions and graph optimizations
- More graph optimization (faster execution and smaller graph, so more readable)
- Less c code compilation
- Better Python 3.5 support
- Better numpy 1.12 support
- Support newer Mac and Windows version
- Conda packages for Mac, Linux and Windows
- Theano scripts now works on Windows
- scan with checkpoint (trade off between speed and memory usage, useful for long sequences)
- Added a bool dtype
- New GPU back-end:
- float16 storage
- better mapping between theano device number and nvidia-smi number, using the PCI bus ID of graphic cards
- More pooling support on GPU when cuDNN isn't there
- ignore_border=False is now implemented for pooling
A total of 111 people contributed to this release since 0.8.0, see the list at the bottom.
Interface changes:
- New pooling interface
- Pooling parameters can change at run time
- When converting empty list/tuple, now we use floatX dtype
- The MRG random generator now try to infer the broadcast pattern of its output
- Move softsign out of sandbox to theano.tensor.nnet.softsign
- Roll make the shift be modulo the size of the axis we roll on
- Merge CumsumOp/CumprodOp into CumOp
- round() default to the same as NumPy: half_to_even
Convolution updates:
- Multi-cores convolution and pooling on CPU
- New abstract 3d convolution interface similar to the 2d convolution interface
- Dilated convolution
GPU:
- cuDNN: support versoin 5.1 and wrap batch normalization (2d and 3d) and RNN functions
- Multiple-GPU, synchrone update (via platoon, use NCCL)
- GpuAdvancedSubtensor in new back-end
- Gemv(matrix-vector product) speed up for special shape
- Support for MaxAndArgMax for some axis combination
- Support for solve (using cusolver), erfinv and erfcinv
- cublas gemv workaround when we reduce on an axis with a dimensions size of 0
- Warn user that some cuDNN algorithms may produce unexpected results in certain environments
for convolution backward filter operations
New features:
- Add gradient of solve, tensorinv (CPU), tensorsolve (CPU) searchsorted (CPU)
- Add Multinomial Without Replacement
- conv3d2d support full and half mode (REMOVE?)
- Add DownsampleFactorMaxGradGrad.grad
- Allow partial evaluation of compiled function
- More Rop support
- Indexing support ellipsis: a[..., 3], a[1,...,3]
- Added theano.tensor.{tensor5,dtensor5, ...}
- compiledir_format support device
- Added new Theano flag cmodule.age_thresh_use
Others:
- Speed up argmax only on gpu (without also needing the max)
- A few unfrequent bugfix
- More stack trace in error message
- Speed up cholesky grad
- log(sum(exp(...))) now get stability optimized
Other more detailed changes:
- Allow more then one output to be an destructive inplace
- Add flag profiling.ignore_first_call, useful to profile the new gpu back-end
- Doc/error message fixes/updates
- More support of negative axis
- Added the keepdims parameter to the norm function
- Crash fixes
- Make scan gradient more deterministic
- Add support for space in path on Windows
- remove ProfileMode (use Theano flag profile=True instead)
Committers since 0.8.0:
- Frederic Bastien
- Arnaud Bergeron
- Pascal Lamblin
- Ramana Subramanyam
- Simon Lefrancois
- Steven Bocco
- Gijs van Tulder
- Cesar Laurent
- Chiheb Trabelsi
- Chinnadhurai Sankar
- Mohammad Pezeshki
- Reyhane Askari
- Alexander Matyasko
- Alexandre de Brebisson
- Nan Rosemary Ke
- Pierre Luc Carrier
- Mathieu Germain
- Olivier Mastropietro
- khaotik
- Saizheng Zhang
- Thomas George
- Iulian Vlad Serban
- Benjamin Scellier
- Francesco Visin
- Caglar
- Harm de Vries
- Samira Shabanian
- Jakub Sygnowski
- Samira Ebrahimi Kahou
- Mikhail Korobov
- Faruk Ahmed
- Fei Wang
- Jan Schlüter
- Kv Manohar
- Jesse Livezey
- Kelvin Xu
- Matt Graham
- Ruslana Makovetsky
- Sina Honari
- Bryn Keller
- Ciyong Chen
- Nicolas Ballas
- Vitaliy Kurlin
- Zhouhan LIN
- Gokula Krishnan
- Kumar Krishna Agrawal
- Ozan Çağlayan
- Vincent Michalski
- Ray Donnelly
- Tim Cooijmans
- Vincent Dumoulin
- happygds
- mockingjamie
- Amjad Almahairi
- Christos Tsirigotis
- Ilya Kulikov
- RadhikaG
- Taesup (TS) Kim
- Ying Zhang
- Karthik Karanth
- Kirill Bobyrev
- Yang Zhang
- Yaroslav Ganin
- Liwei Cai
- Morgan Stuart
- Tim Gasper
- Xavier Bouthillier
- p
- texot
- Andrés Gottlieb
- Ben Poole
- Bhavishya Pohani
- Carl Thomé
- Evelyn Mitchell
- Fei Zhan
- Fábio Perez
- Gennadiy Tupitsin
- Gilles Louppe
- Greg Ciccarelli
- He
- Huan Zhang
- Jonas Degrave
- Kaixhin
- Kevin Keraudren
- Maltimore
- Marc-Alexandre Cote
- Marco
- Marius F. Killinger
- Maxim Kochurov
- Neil
- Nizar Assaf
- Rithesh Kumar
- Rizky Luthfianto
- Robin Millette
- Roman Ring
- Sander Dieleman
- Sebastin Santy
- Shawn Tan
- Wazeer Zulfikar
- Wojciech Głogowski
- Yann N. Dauphin
- gw0 [http://gw.tnode.com/]
- hexahedria
- hsintone
- jakirkham
- joncrall
- root
- superantichrist
- tillahoffmann
- wazeerzulfikar
- you-n-g
Theano 0.8.2 (21th of April, 2016)
==================================
This is a point release with only the support for cudnn v5 convolution
and minor fixes.
Highlights:
- cuDNN v5 convolution support (cuDNN v3 isn't supported anymore)
- A few crash fixes
Theano 0.8.1 (29th of March, 2016)
==================================
This is a point release without any new feature.
It fixes compilation issues on MacOS X with the command line tools for
XCode 7.3, which was released shortly after Theano 0.8.0.
Theano 0.8 (21th of March, 2016)
================================
We recommend that everybody update to this version.
Highlights:
- Python 2 and 3 support with the same code base
- Faster optimization
- Integration of cuDNN for better GPU performance
- Many Scan improvements (execution speed up, ...)
- optimizer=fast_compile moves computation to the GPU.
- Better convolution on CPU and GPU. (CorrMM, cudnn, 3d conv, more parameter)
- Interactive visualization of graphs with d3viz
- cnmem (better memory management on GPU)
- BreakpointOp
- Multi-GPU for data parallism via Platoon (https://github.com/mila-udem/platoon/)
- More pooling parameter supported
- Bilinear interpolation of images
- New GPU back-end:
* Float16 new back-end (need cuda 7.5)
* Multi dtypes
* Multi-GPU support in the same process
A total of 141 people contributed to this release, see the list at the bottom.
Installation:
- Better BLAS detection
- Fixes for more recent software and OS versions
- Support Anaconda on Windows
Bug fixes:
- GpuJoin now supports negative axis
- Fix GpuCumsum for negative axis
Interface Deprecation (a warning is printed):
- Deprecate Param class, use In instead
Interface Changes:
- Rename DownsampleFactorMax to Pool.
- tensor.stack now uses the same interface as numpy.stack
- optimizer=fast_compile moves computation to the GPU
- Raise the user stack trace more frequently.
- Change dev version numbering to follow the PEP 440
New Interface (reuses existing functionality):
- theano.tensor.nnet.relu
- theano.tensor.nnet.elu
- BatchNormalization.
- MaxAndArgmax support axis=None
- Add theano.tensor.compress (equivalent of numpy.compress)
- theano.tensor.signal.downsamples.max_pool_2d_same_size
- COp
- __props__
New features
- tensor.unique
- map_variables
- erfcx
- mgrid, ogrid
- allclose
- BreakpointOp
- Make bincount work on GPU
- SolveOp on GPU
- Optional optimization remove_all_assert
- AllocEmpty
- LogSoftmax, for stability optimization when the crossentropy optimization does not apply.
- theano.tensor.repeat works on GPU
- BatchedDot on the GPU and faster on the CPU.
- Faster batched_tensordot and make it work on GPU.
- SoftmaxGrad grad
- 3d conv via CorrMM on the GPU
- CPU Max Pool support of padding and strides!=windows size
- theano.function() now accepts a dict for the outputs. When doing this, the function will return a dict. Helpful to keep track of which output is what.
- Warn for unknown or misspelled theano config variables
- theano.tensor.tile update (accept symbolic reps, work on GPU)
- scan how have a strict flag. If set to True, this make scan building faster and could make execution faster.
- theano.tensor.signal.conv2d(2d,2d) output 2d answer
- More convolution parameter supported
- Bilinear interpolation of images
Speed-ups:
- Faster SetSubtensor on the GPU.
- Support more reduction pattern on the GPU.
- More graph optimization
- Faster graph optimization
- GpuCrossentropySoftmaxArgmax1HotWithBias
Crash/no return fixes:
- Fix crash in the assert op grad
- Fix curand crash on Mac
- Multiple Fix scan crashes
- Finish to update all Op.grad() implementation to the new interface
Others:
- Support ARM processor.
- Better tests
- Code clean up.
- Doc updates
- doctest and sphinx test in travis
- More tests tagged as slow
- Better same_shape implementation
- More op with c code to lower overhead
- Custom pickler for SharedVariable theano.misc.pkl_utils.{dump,load}
- function_dump to help us reproduce user error during compilation
- assert_no_cpu_op
- pep8, flake8
- Better error messages
- On non-default modes, reduce the number of allocation when allow_gc=False
- Better lock
Committers for this dev version only:
- Frederic Bastien
- Arnaud Bergeron
- Pierre Luc Carrier
- Iban Harlouchet
- Pascal Lamblin
- Chienli Ma
- Tim Cooijmans
- Nicolas Ballas
- Amjad Almahairi
- David Warde-Farley
- Christof Angermueller
- Ziye Fan
- Caglar
- Sina Honari
- Roy Xue
- hantek
- Mohammad Pezeshki
- Melanie Ducoffe
- Alexandre de Brebisson
- Harm de Vries
- Samira Shabanian
- Alex Lamb
- Ramana.S
- Francesco Visin
- Saizheng Zhang
- Ying Zhang
- Jan Schlüter
- Xavier Bouthillier
- Bart van Merrienboer
- Cesar Laurent
- Iulian Vlad Serban
- Li Yao
- Sigurd Spieckermann
- Dmitrii Serdiuk
- Kelvin Xu
- Sebastien Jean
- Thomas Mesnard
- Seon-Wook Park
- Vincent Michalski
- Dustin Webb
- Mikhail Korobov
- Orhan Firat
- Olivier Mastropietro
- Daniel Renshaw
- Julien Rebetez
- Peng Liu
- Sean Lee
- TimSalimans
- Andre Holzner
- Gijs van Tulder
- Guillaume Alain
- Julien Demouth
- Markus Beissinger
- Mehdi Mirza
- Moslem Kazemi
- Saxenauts
- Søren Kaae Sønderby
- sentient07
- Anatoly Belikov
- Diogo Moitinho de Almeida
- Jakub Sygnowski
- Kashif Rasul
- Laurent Dinh
- Rémy Léone
- Taesup (TS) Kim
- gw0 [http://gw.tnode.com/]
- mronian
- vesis84
- Benni
- Chiheb Trabelsi
- JesseLivezey
- Marius Killinger
- Matt Graham
- Matthew Willson
- Piotr Frankowski
- Stefan Krastanov
- vdumoulin
- Adithya Ganesh
- Anish Shah
- Balázs Hidasi
- Colin Raffel
- Cory Lorenz
- Doug
- Jesse Livezey
- John Salvatier
- John Zedlewski
- Jonathan Ho
- Kaixhin
- Liang-Chi Hsieh
- Lucas Beyer
- Luke Metz
- Marc-Alexandre Cote
- Martin Arjovsky
- Matthias Kümmerer
- Sirisha Rambhatla
- briancheung
- cai-lw
- ivdorelian
- jan-matthis
- jojolalpin
- joncrall
- peterjsadowski
- scottsievert
- Étienne Simon
- A. Flaxman
- AlOa
- Albert Zeyer
- Andrea
- Andy Jiang
- Balázs
- Ben Poole
- Brian Cheung
- Christophe Van Gysel
- Claude Coulombe
- Clay McLeod
- Dario Garcia
- Jakob Lombacher
- Joao Felipe Santos
- John Arevalo
- Jonas Degrave
- Martin Thoma
- Mathieu Germain
- Matthew Koichi Grimes
- Michael Eickenberg
- Michael Opitz
- Paul Hollensen
- Prayag Verma
- Saatvik Shah
- Sergei Lebedev
- Vik Kamath
- Wei Ouyang
- Wojciech Głogowski
- Yi-Lin Juang
- Yurii Shevchuk
- Zach Dwiel
- dan
- eulerreich
- jotterbach
- rolf
- theaverageguy
- wuaalb
Theano 0.7 (26th of March, 2015)
================================
We recommand to everyone to upgrade to this version.
Highlights:
* Integration of cuDNN for 2D convolutions and pooling on supported GPUs
* Too many optimizations and new features to count
* Various fixes and improvements to scan
* Better support for GPU on Windows
* On Mac OS X, clang is used by default
* Many crash fixes
* Some bug fixes as well
Theano 0.6 (December 3th, 2013)
===================================
We recommend that everybody update to this version.
Highlights (since 0.6rc5):
* Last release with support for Python 2.4 and 2.5.
* We will try to release more frequently.
* Fix crash/installation problems.
* Use less memory for conv3d2d.
0.6rc4 skipped for a technical reason.
Highlights (since 0.6rc3):
* Python 3.3 compatibility with buildbot test for it.
* Full advanced indexing support.
* Better Windows 64 bit support.
* New profiler.
* Better error messages that help debugging.
* Better support for newer NumPy versions (remove useless warning/crash).
* Faster optimization/compilation for big graph.
* Move in Theano the Conv3d2d implementation.
* Better SymPy/Theano bridge: Make an Theano op from SymPy expression and use SymPy c code generator.
* Bug fixes.
Change from 0.6rc5:
* Fix crash when specifing march in cxxflags Theano flag. (Frederic B., reported by FiReTiTi)
* code cleanup (Jorg Bornschein)
* Fix Canopy installation on windows when it was installed for all users: Raingo
* Fix Theano tests due to a scipy change. (Frederic B.)
* Work around bug introduced in scipy dev 0.14. (Frederic B.)
* Fix Theano tests following bugfix in SciPy. (Frederic B., reported by Ziyuan Lin)
* Add Theano flag cublas.lib (Misha Denil)
* Make conv3d2d work more inplace (so less memory usage) (Frederic B., repoted by Jean-Philippe Ouellet)
Committers since 0.5:
Frederic Bastien
Pascal Lamblin
Ian Goodfellow
Olivier Delalleau
Razvan Pascanu
abalkin
Arnaud Bergeron
Nicolas Bouchard +
Jeremiah Lowin +
Matthew Rocklin
Eric Larsen +
James Bergstra
David Warde-Farley
John Salvatier +
Vivek Kulkarni +
Yann N. Dauphin
Ludwig Schmidt-Hackenberg +
Gabe Schwartz +
Rami Al-Rfou' +
Guillaume Desjardins
Caglar +
Sigurd Spieckermann +
Steven Pigeon +
Bogdan Budescu +
Jey Kottalam +
Mehdi Mirza +
Alexander Belopolsky +
Ethan Buchman +
Jason Yosinski
Nicolas Pinto +
Sina Honari +
Ben McCann +
Graham Taylor
Hani Almousli
Ilya Dyachenko +
Jan Schlüter +
Jorg Bornschein +
Micky Latowicki +
Yaroslav Halchenko +
Eric Hunsberger +
Amir Elaguizy +
Hannes Schulz +
Huy Nguyen +
Ilan Schnell +
Li Yao
Misha Denil +
Robert Kern +
Sebastian Berg +
Vincent Dumoulin +
Wei Li +
XterNalz +
A total of 51 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
Theano 0.6rc5 (November 25th, 2013)
===================================
We recommend that everybody update to this version.
We plan to release 0.6 in one week if there is no problem introduced
with this release candidate.
Theano 0.6rc4 was skipped due to a problem with pypi
Highlights:
* Python 3.3 compatibility with buildbot test for it.
* Full advanced indexing support.
* Better Windows 64 bit support.
* New profiler.
* Better error messages that help debugging.
* Better support for newer NumPy versions (remove useless warning/crash).
* Faster optimization/compilation for big graph.
* Move in Theano the Conv3d2d implementation.
* Better SymPy/Theano bridge: Make an Theano op from SymPy expression and use SymPy c code generator.
* Bug fixes.
Committers for this rc5 only:
Frederic Bastien
Pascal Lamblin
Arnaud Bergeron
abalkin
Olivier Delalleau
John Salvatier
Razvan Pascanu
Jeremiah Lowin
Ludwig Schmidt-Hackenberg +
Vivek Kulkarni
Matthew Rocklin
Gabe Schwartz
James Bergstra
Sigurd Spieckermann +
Bogdan Budescu +
Mehdi Mirza +
Nicolas Bouchard
Ethan Buchman +
Guillaume Desjardins
Ian Goodfellow
Jason Yosinski
Sina Honari +
Ben McCann +
David Warde-Farley
Ilya Dyachenko +
Jan Schluter +
Micky Latowicki +
Yaroslav Halchenko +
Alexander Belopolsky
Hannes Schulz +
Huy Nguyen +
Robert Kern +
Sebastian Berg +
Vincent Dumoulin +
Wei Li +
XterNalz +
A total of 36 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
Installation:
* Canopy support (direct link to MKL):
* On Linux and Mac OSX (Frederic B., Robert Kern)
* On Windows (Edward Shi, Frederic B.)
* Anaconda instructions (Pascal L., Frederic B.)
* Doc Ubuntu 13.04 (Frederic B.)
* Better support of newer NumPy version(remove useless warning/crash) (Frederic B., Huy Nguyen)
Bug fixes:
* Scan: if a scan node was cloned (by theano.clone) with different inputs, and if both the initial and the cloned nodes are used in the function being compiled, the value of the outputs of one would be replaced with the outputs of the other one. (Pascal L.)
* Sparse: Disable the optimization that introduce the CSMGradC op as it doesn't work correctly with unsorted indices. (Frederic B.)
* Mac: Fix wrong result of GpuDownsampleFactorMaxGrad on Mac OSX. (Pascal L.)
* Mac: Auto-Detect and work around a bug in BLAS on MacOS X (Pascal L.)
* Mac: Work around bug in MacOS X. If 2 compiled modules had the same name, the OS or Python was not always the right one even when we used the right handle to it. (Pascal L.)
Use this hash in the Python module, and in %(nodename)s, so that different helper functions in the support code for different Ops will always have different names.
* Sparse grad: Fix ConstructSparseFromList.infer_shape (Pascal L., reported by Rami Al-Rfou')
* (introduced in the development version after 0.6rc3 release) (Frederic B.)
Reduction that upcasts the input on no axis (ex: call theano.sum() on a scalar when the original dtype isn't float64 or
[u]int64). It produced bad results as we did not upcasted the inputs in the code, we just copy them.
* Fix some cases of theano.clone() when we get a replacement of x that is a function of x. (Razvan P., reported by Akio Takano)
* Fix grad of Alloc when we unbroadcast the value and it isn't a scalar. (Frederic B., reported Ian G.)
* In some cases (I think most cases), there was an exception raised in the theano.tensor.grad() method.
But in theory, there could be bad shapes produced in the unbroadcasted dimensions.
Interface Deprecation (a warning is printed):
* The mode ProfileMode is now deprecated, use the Theano flag profile=True to replace it.
* New theano.sparse_grad() interface to get the sparse grad of a_tensor[an_int_vector]. (Frederic B.)
This can speed up the sparse computations when a small fraction of a_tensor is taken.
Deprecate the old interface for this. (Frederic B.)
Interface Changes:
* Interface change subtensor and take are not in tensor.basic anymore. They were available from tensor.* and are still available from there. (Frederic B., Matthew Rocklin)
* This lowers the basic.py size to 191k, so under 200k for github search.
* Add -m32 or -m64 in the module cache key and add the python bitwidth in the compiledir path. (Pascal L.)
* mrg.normal now has the parameter size mandatory. It was crashing with the default value of None. (Olivier D.)
* Remove the deprecated passing of multiple modes to theano function. (Frederic B.)
* Change FunctionGraph Features interface of the {on_prune(),on_import()} call back to take a reason. (Frederic B.)
* FunctionGraph now clone the input graph by default. (Frederic B.)
* Added a parameter to optionally not do this cloning.
* This was needed to speed up compilation
New Interface (reuses existing functionality):
* Add hostname as a var in compiledir_format (Frederic B.)
* Add a new Theano flag: compute_test_value_opt. It takes the same values as compute_test_value. It enables compute_test_value during Theano optimization. Only useful to debug Theano optimization. Also small changes to some optimization to work correctly in that setup. (Frederic B.)
* Add the value pdb to the Theano flag: compute_test_value and compute_test_value_opt. (Frederic B.)
* Add the Theano flag: optimizer_verbose. Default False. When True, we print all the optimization being applied.(Frederic B.)
* Add Op.c_init_code() to allow running the code when the c cmodule is imported (Pascal L.)
* Allow theano.tensor.ones(3) to support scalar and not just list of scalar as numpy.ones (Jeremiah Lowin)
* Make the memory profiler print the FLOPS used for the ops that know how to compute it. (Frederic B.)
New Features:
* Make tensor.{constant,as_tensor_variable} work with memmap. (Christian Hudon, Frederic Bastien)
* compilation work on ARM processor (Raspberry Pi, Vincent Dumoulin)
* Add numpy.random.choice wrapper to our random number generator (Sigurd Spieckermann)
* Better SymPy/Theano bridge: Make an Theano op from SymPy expression and use SymPy c code generator (Matthew Rocklin)
* Move in Theano the Conv3d2d implementation (James Bergstra, Frederic B., Pascal L.)
* First version of the new GPU back-end available (Arnaud Bergeron, Frederic B.)
* Not all Ops have been converted to this new back-end.
To use, use Theano flag device=cudaN or device=openclN, where N is a integer.
* Python 3.3 compatible (abalkin, Gabe Schwartz, Frederic B., Pascal L.)
* A new profiler (Frederic B.)
The new profiler now can profile the memory with the Theano flag profile_memory=True.
The ProfileMode now can't profile memory anymore and prints a message about it.
Now we raise an error if we try to profile when the gpu is enabled if we didn't set
correctly the env variable to force the driver to sync the kernel launch.
Otherwise the profile information are useless.
The new profiler supports the enabling/disabling of the garbage collection.
* Adds tensor.tri, tensor.triu, and tensor.tril functions that wrap Numpy equivalents (Jeremiah Lowin)
* Adds tensor.nonzero, tensor.flatnonzero functions that wrap Numpy equivalents (Jeremiah Lowin)
* Adds tensor.nonzero_values to get around lack of advanced indexing for nonzero elements (Jeremiah Lowin)
* Make {inc,set}_subtensor work on output of take. (Pascal L.)
* When device=cpu and force_device=True, force that we disable the gpu. (Frederic B.)
* Better Windows 64 bit support for indexing/reshaping (Pascal L.)
* Full advanced indexing support (John Salvatier, seberg)
* Add theano.tensor.stacklist(). Recursivly stack lists of tensors to maintain similar structure (Matthew R.)
* Add Theano flag value: on_opt_error=pdb (Olivier D.)
* GpuSoftmax[WithBias] for bigger row. (Frederic B.)
* Make Erfinv work on the GPU (Guillaume Desjardin, Pascal L.)
* Add "theano-cache basecompiledir purge" (Pascal L.)
This purges all the compiledirs that are in the base compiledir.
* A_tensor_variable.zeros_like() now supports the dtype parameter (Pascal L.)
* More stable reduce operations by default (Pascal L.)
Add an accumulator dtype to CAReduceDtype (acc_dtype)
by default, acc_dtype is float64 for float32 inputs,
then cast to specified output dtype (float32 for float32 inputs)
* Test default blas flag before using it (Pascal L.)
This makes it work correctly by default if no blas library is installed.
* Add cuda.unuse() to help tests that need to enable/disable the GPU (Frederic B.)
* Add theano.tensor.nnet.ultra_fast_sigmoid and the opt (disabled by default) local_ultra_fast_sigmoid. (Frederic B.)
* Add theano.tensor.nnet.hard_sigmoid and the opt (disabled by default) local_hard_sigmoid. (Frederic B.)
* Add class theano.compat.python2x.Counter() (Mehdi Mirza)
* Allow a_cuda_ndarray += another_cuda_ndarray for 6d tensor. (Frederic B.)
* Make the op ExtractDiag work on the GPU. (Frederic B.)
* New op theano.tensor.chi2sf (Ethan Buchman)
* Lift Flatten/Reshape toward input on unary elemwise. (Frederic B.)
This makes the "log(1-sigmoid) -> softplus" stability optimization being applied with a flatten/reshape in the middle.
* Make MonitorMode use the default optimizers config and allow it to change used optimizers (Frederic B.)
* Add support for ScalarOp.c_support_code in GpuElemwise. (Frederic B.)
* Also make the Psi function run on GPU. (Frederic B.)
* Make tensor.outer(x,y) work when ndim != 1 as numpy.outer.
* Kron op: Speed up/generalize/GPU friendly. (Frederic B.)
(It is not an op anymore, but reuses current op)
* Add gpu max for pattern (0, 1) and added all gpu max pattern for gpu min. (Frederic B.)
* Add GpuEye (Frederic B.)
* Make GpuCrossentropySoftmaxArgmax1HotWithBias and GpuCrossentropySoftmax1HotWithBiasDx work for bigger inputs (Frederic B., reported by Ryan Price)
* Finish and move out of sandbox theano.sparse.basic.true_dot (Nicolas Bouchard, Frederic B.)
And document all sparse dot variants.
* Implement the mode ignore_borders for GpuImages2Neibs (Frederic B.)
* Make many reduction functions accept a numpy scalar as axis (Jeremiah Lowin)
* Allow numpy.asarray(cuda_ndarray, dtype=...) (Frederic B.)
* theano-cache cleanup now remove cached module old version of code. (Frederic B.)
Speed-ups:
* Optimizer speed up. (Frederic B.)
* Fix warning on newer llvm version on Mac. (Pascal L., reported by Jeremiah Lowin and Chris Fonnesbeck)
* Allow pickling of more Ops to allow reusing the compiled code (Pascal L., Frederic B.)
* Optimize more cases of dot22 and scalar when we can't make a gemm (Pascal L., Frederic B.)
* Speed up GpuJoin with c code (Ludwig Schmidt-Hackenberg, Frederic B.)
* Faster GpuAdvancedIncSubtensor1 on Fermi GPU (and up) on matrix. (Vivek Kulkarni)
* Faster GPUAdvancedIncSubtensor1 in some cases on all GPU (Vivek Kulkarni)
* Implemented c_code for AdvancedSubtensor1 (abalkin)
* Add the equivalent of -march=native to g++ command line. (Frederic B., Pascal L.)
* Speed up compilation with Scan (Jan Schluter)
* Merge more Scan nodes together (Pascal L., Yao Li).
* Add MakeVector.c_code (Frederic B.)
* Add Shape.c_code (Frederic B.)
* Optimize Elemwise when all the inputs are fortran (Frederic B.)
We now generate a fortran output and use vectorisable code.
* Add ScalarOp.c_code_contiguous interface and do a default version. (Frederic B.)
This could optimize elemwise by helping the compiler generate SIMD instruction.
* Use ScalarOp.c_code_contiguous with amdlibm. (Frederic B.)
This speeds up exp, pow, sin, cos, log, log2, log10 and sigmoid when the input is contiguous in memory.
* A fix that removes a local_setsubtensor_of_allocs optimization warning and enables it in that case. (Frederic B., reported by John Salvatier)
* Make inv_as_solve optimization work (Matthew Rocklin)
Crash/no return fixes:
* Fix scan crash in the grad of grad of a scan with special structure (including scan in a scan) (Razvan P., Bitton Tenessi)
* Fix various crashes when calling scan() with inputs specified in unusual ways. (Pascal L.)
* Fix shape crash inserted by Scan optimization. The gradient of some recursive scan was making the PushOutSeqScan optimization insert crash during the execution of a Theano function. (Frederic B., reported by Hugo Larochelle)
* Fix command not returning with recent mingw64 on Windows (Pascal L., reported by many people)
* Fix infinite loop related to Scan on the GPU. (Pascal L.)
* Fix infinite loop when the compiledir is full. (Frederic B.)
* Fix a shape cycle crash in the optimizer (Pascal L., Frederic B., reported by Cho KyungHyun)
* Fix MRG normal() now allow it to generate scalars. (Pascal L.)
* Fix some GPU compilation issue on Mac (John Yani, Frederic B.)
* Fix crash when building symbolic random variables with a mix of symbolic and numeric scalar in the "size" parameter. (Pascal L., Reported by Wu Zhen Zhou)
* Make some Op.grad() implementions not return None (Pascal L.)
* Crash fix in the grad of elemwise about an DisconnectedType (Pascal L, reported by Thomas Wiecki)
* Fix local_gpu_multinomial optimization handling of broadcast information. (Frederic B., reported by Caglar)
* Fix crash with change introduced in NumPy 1.7.1 (Pascal L., reported by Thomas Wiecki)
* Compilation failure with complex (Pascal L., reported by autumncat)
* Gpu reduction on all dimensions of a 4d tensor. (Frederic B., reported by Arjun Jain)
* Fix crash for a combination of grad of dot and dimshuffle when only one of the inputs for a corresponding dimensions was knowing that it was broadcastable. (Frederic B., reported by Micky Latowicki)
* AdvancedSubtensor1: allow broadcasted index vector. (Frederic B., reported by Jeremiah Lowin)
* Fix compute_test_value for ifelse (Olivier D., reported by Bitton Tenessi)
* Fix import error with some versions of NumPy (Olivier D.)
* Fix Scan grad exception (Razvan P., reported by Nicolas BL)
* Fix compute_test_value for a non_sequence when calling the gradient of Scan (Pascal L., reported by Bitton Tenessi).
* Crash fix in Scan following interface change in 0.6rc2 (Razvan P.)
* Crash fix on Scan (Razvan P.)
* Crash fix on Scan (Pascal L., reported by Sina Honari and Sigurd)
* Fix crash in Scan gradient related to compute_test_value (Frederic B., reported by Bitton Tenessi)
* Fix a scan optimization warning/error depending of Theano flags (Frederic B.)
* Fixed crash for unimplemented elemwise gradient (Olivier D., reported by Michael McNeil Forbes)
* Fix crash in the elemwise python code for some big shape with power of 2. (Sina Honari, Pascal L.)
* Fix compile and import errors on Windows including for the GPU. (Bogdan Budescu)
* Fix GPU compilation on Windows (XterNalz)
* Fix local_abs_merge optimization crash (Pascal L., reported by Jeremiah Lowin)
* Fix import theano crash when g++ isn't there (Olivier D.)
* Fix crash related to rebuild of Theano graph (Pascal L., reported by Divine Eguzouwa)
* Fix crash during compilation (David Ward-Farley)
* Crash fix in the grad of GPU op in corner case (Pascal L.)
* Crash fix on MacOS X (Robert Kern)
* theano.misc.gnumpy_utils.garray_to_cudandarray() set strides correctly for dimensions of 1. (Frederic B., reported by Justin Bayer)
* Fix crash during optimization with consecutive sums and some combination of axis (Frederic B., reported by Caglar Gulcehre)
* Fix crash with keepdims and negative axis (Frederic B., reported by David W.-F.)
* Fix crash of theano.[sparse.]dot(x,y) when x or y is a vector. (Frederic B., reported by Zsolt Bitvai)
* Fix opt crash/disabled with ifelse on the gpu (Frederic B, reported by Ryan Price)
* Fix crash in optimization involving dot22, (Pascal L., reported by @micklat)
* Prevent shape optimizations from introducing cycles in the graph (Frederic Bastien, Pascal Lamblin, reported by Kyunghyun Cho)