提交 8576a61d authored 作者: David Warde-Farley's avatar David Warde-Farley

Merge pull request #773 from nouiz/small

Small
<abergeron@gmail.com> <anakha@kami.(none)>
David Warde-Farley <wardefar@iro.umontreal.ca> David Warde-Farley <dwf@cs.toronto.edu>
David Warde-Farley <wardefar@iro.umontreal.ca> David Warde Farley <dwf@cs.toronto.edu>
Douglas Eck <douglas.eck@gmail.com> eckdoug@localhost <eckdoug@localhost>
Douglas Eck <douglas.eck@gmail.com> eckdoug@waits.local <eckdoug@waits.local>
Dumitru Erhan <dumitru.erhan@gmail.com> dumitru@deepnets.mtv.corp.google.com <dumitru@deepnets.mtv.corp.google.com>
Dumitru Erhan <dumitru.erhan@gmail.com> erhandum@bikat.iro.umontreal.ca <erhandum@bikat.iro.umontreal.ca>
Francois Savard <devnull@localhost> fsavard <devnull@localhost>
# 5 Firstname Lastname <firstname.lastname@example.net>
# 4 Laboratoire d'Informatique des Systemes Adaptatifs <lisa@iro.umontreal.ca>
# 6 Li Yao <yaoli@iro>
# 1 olivier@ordinateur-de-olivier.local <olivier@ordinateur-de-olivier.local>
# 2 onze <onzeonline@gmail.com>
# 25 projects@lgcm <projects@lgcm>
# 1 tutorial/debug_faq.txt <devnull@localhost>
Frederic Bastien <nouiz@nouiz.org> Frederic Bastien <bastienf@briaree1.rqchp.qc.ca>
Frederic Bastien <nouiz@nouiz.org> Frederic Bastien <bastienf@iro.umontreal.ca>
Frederic Bastien <nouiz@nouiz.org> Frédéric Bastien <nouiz@nouiz.org>
Frederic Bastien <nouiz@nouiz.org> Nouiz <nouiz@Nouiz-lap-ub.(none)>
Frederic Bastien <nouiz@nouiz.org> Nouiz <nouiz@nouiz.org>
Frederic Bastien <nouiz@nouiz.org> bastienf@bikat.iro.umontreal.ca <bastienf@bikat.iro.umontreal.ca>
Frederic Bastien <nouiz@nouiz.org> bastienf@ldapk3.scinet.utoronto.ca <bastienf@ldapk3.scinet.utoronto.ca>
Frederic Bastien <nouiz@nouiz.org> nouiz <nouiz@nouiz.org>
Frederic Bastien <nouiz@nouiz.org> Frederic <nouiz@nouiz.org>
Grégoire <gregoire.mesnil@gmail.com> Grégoire <gregoire.mesnil@laposte.net>
Guillaume Desjardins <guillaume.desjardins@gmail.com> desjagui <devnull@localhost>
Guillaume Desjardins <guillaume.desjardins@gmail.com> desjagui@atchoum.iro.umontreal.ca <desjagui@atchoum.iro.umontreal.ca>
Guillaume Desjardins <guillaume.desjardins@gmail.com> desjagui@opale.iro.umontreal.ca <desjagui@opale.iro.umontreal.ca>
Guillaume Desjardins <guillaume.desjardins@gmail.com> gdesjardins <devnull@localhost>
Hani Almousli <hani.mousli@gmail.com> Hani <hani.mousli@gmail.com>
Hani Almousli <hani.mousli@gmail.com> HaniAlmousli <hani.mousli@gmail.com>
Ian Goodfellow <goodfellow.ian@gmail.com> Ian Goodfellow <devnull@localhost>
Ian Goodfellow <goodfellow.ian@gmail.com> goodfeli <goodfellow.ian@gmail.com>
James Bergstra <james.bergstra@gmail.com> James Bergstra <bergstrj@iro.umontreal.ca>
James Bergstra <james.bergstra@gmail.com> bergstra@ip05.m <bergstra@ip05.m>
James Bergstra <james.bergstra@gmail.com> bergstra@mlp4.ais.sandbox <bergstra@mlp4.ais.sandbox>
James Bergstra <james.bergstra@gmail.com> bergstra@tikuanyin <bergstra@tikuanyin>
James Bergstra <james.bergstra@gmail.com> bergstrj@iro.umontreal.ca <bergstrj@iro.umontreal.ca>
James Bergstra <james.bergstra@gmail.com> bergstrj@lgcm <bergstrj@lgcm>
James Bergstra <james.bergstra@gmail.com> james@X40 <james@X40>
James Bergstra <james.bergstra@gmail.com> james@crane <james@crane>
James Bergstra <james.bergstra@gmail.com> james@mackie <james@mackie>
James Bergstra <james.bergstra@gmail.com> james@x40.unstable <james@x40.unstable>
James Bergstra <james.bergstra@gmail.com> test_rng_mrg.py <devnull@localhost>
John Salvatier <jsalvatier@gmail.com> jsalvatier <jsalvatier@gmail.com>
Joseph Turian <turian@iro.umontreal.ca> Joseph Turian <turian@gmail.com>
Joseph Turian <turian@iro.umontreal.ca> turian@grenat.iro.umontreal.ca <turian@grenat.iro.umontreal.ca>
Joseph Turian <turian@iro.umontreal.ca> turian@lgcm <turian@lgcm>
Joseph Turian <turian@iro.umontreal.ca> turian@lsvm.iro.umontreal.ca <turian@lsvm.iro.umontreal.ca>
Joseph Turian <turian@iro.umontreal.ca> turian@rubis.iro.umontreal.ca <turian@rubis.iro.umontreal.ca>
Joseph Turian <turian@iro.umontreal.ca> turianjo@is23.m <turianjo@is23.m>
Josh Bleecher Snyder <josharian@gmail.com> Josh Bleecher Snyder <josharian+github@gmail.com>
Olivier Breuleux <breuleux@gmail.com> Olivier Breuleux <breuleuo@iro.umontreal.ca>
Olivier Breuleux <breuleux@gmail.com> olivier@olivier-desktop <olivier@olivier-desktop>
Olivier Delalleau <delallea@iro> Olivier Delalleau <delallea@iro.umontreal.ca>
Olivier Delalleau <delallea@iro> delallea <delallea@iro.umontreal.ca>
Olivier Delalleau <delallea@iro> delallea@valhalla.apstat.com <delallea@valhalla.apstat.com>
Nicolas Boulanger-Lewandowski <nicolas_boulanger@hotmail.com> boulanni <nicolas_boulanger@hotmail.com>
Pascal Lamblin <lamblinp@iro.umontreal.ca> lamblin <lamblinp@iro.umontreal.ca>
Pascal Lamblin <lamblinp@iro.umontreal.ca> lamblinp@lgcm <lamblinp@lgcm>
Philippe Hamel <hamel.phil@gmail.com> Philippe Hamel <hamel.phil@gmail.com>
Philippe Hamel <hamel.phil@gmail.com> Philippe Hamel <higgsbosonh@hotmail.com>
Pierre-Antoine Manzagol <pierre.antoine.manzagol@gmail.com> Pierre-Antoine Manzagol <manzagop@iro>
Raul Chandias Ferrari <devnull@localhost> chandiar <devnull@localhost>
Razvan Pascanu <r.pascanu@gmail.com> Razvan Pascanu <pascanur@iro>
Razvan Pascanu <r.pascanu@gmail.com> Razvan Pascanu <rman@rman-Dell-System-XPS-L502X.(none)>
Razvan Pascanu <r.pascanu@gmail.com> Razvan Pascanu <rman@rman-pad.(none)>
Razvan Pascanu <r.pascanu@gmail.com> pascanur@simplet.iro.umontreal.ca <pascanur@simplet.iro.umontreal.ca>
Razvan Pascanu <r.pascanu@gmail.com> rman@rpad <rman@rpad>
Sander Dieleman <sanderdieleman@gmail.com> benanne <sanderdieleman@gmail.com>
Xavier Glorot <glorotxa@iro.umontreal.ca> glorotxa <glorotxa@iro.umontreal.ca>
Xavier Glorot <glorotxa@iro.umontreal.ca> glorotxa@timide.iro.umontreal.ca <glorotxa@timide.iro.umontreal.ca>
Yoshua Bengio <bengioy@iro.umontreal.ca> bengioy@bengio-mac.local <bengioy@bengio-mac.local>
...@@ -331,7 +331,7 @@ To install it on Linux, you can do like this: ...@@ -331,7 +331,7 @@ To install it on Linux, you can do like this:
.. code-block:: bash .. code-block:: bash
cd cd
git clone https://github.com/gabrielelanaro/emacs-for-python.git .emacs.d/emacs-for-python git clone https://github.com/gabrielelanaro/emacs-for-python.git ~/.emacs.d/emacs-for-python
Then in your ``~/.emacs`` file, add this: Then in your ``~/.emacs`` file, add this:
...@@ -348,6 +348,8 @@ Then in your ``~/.emacs`` file, add this: ...@@ -348,6 +348,8 @@ Then in your ``~/.emacs`` file, add this:
(require 'epy-python) ;; If you want the python facilities [optional] (require 'epy-python) ;; If you want the python facilities [optional]
(require 'epy-completion) ;; If you want the autocompletion settings [optional] (require 'epy-completion) ;; If you want the autocompletion settings [optional]
(require 'epy-editing) ;; For configurations related to editing [optional] (require 'epy-editing) ;; For configurations related to editing [optional]
;; [newer version of emacs-for-python]
(require 'epy-nose) ;; For shortcut to call nosetests [optional]
;; Define f10 to previous error ;; Define f10 to previous error
;; Define f11 to next error ;; Define f11 to next error
......
...@@ -228,7 +228,7 @@ get the code using `Git <http://git-scm.com>`__: ...@@ -228,7 +228,7 @@ get the code using `Git <http://git-scm.com>`__:
git clone git://github.com/Theano/Theano.git git clone git://github.com/Theano/Theano.git
From here, the easiest way to get started is From here, the easiest way to get started is (this request setuptools_ or distribute_ to be installed):
.. code-block:: bash .. code-block:: bash
......
...@@ -60,7 +60,9 @@ Environment Variables ...@@ -60,7 +60,9 @@ Environment Variables
.. envvar:: THEANORC .. envvar:: THEANORC
The location[s] of the .theanorc file[s] in ConfigParser format. The location[s] of the .theanorc file[s] in ConfigParser format.
It defaults to ``$HOME/.theanorc``. It defaults to ``$HOME/.theanorc``. On Windows, it defalt to
``$HOME/.theanorc:$HOME/.theanorc.txt`` to make Windows users life
easier.
Here is the .theanorc equivalent to the THEANO_FLAGS in the example above: Here is the .theanorc equivalent to the THEANO_FLAGS in the example above:
......
...@@ -296,7 +296,7 @@ AddConfigVar('warn.ignore_bug_before', ...@@ -296,7 +296,7 @@ AddConfigVar('warn.ignore_bug_before',
"bugs found after that version. " "bugs found after that version. "
"Warning for specific bugs can be configured with specific " "Warning for specific bugs can be configured with specific "
"[warn] flags."), "[warn] flags."),
EnumStr('None', 'all', '0.3', '0.4', '0.4.1', '0.5', EnumStr('None', 'all', '0.3', '0.4', '0.4.1', '0.5', '0.6',
allow_override=False), allow_override=False),
in_c_key=False) in_c_key=False)
......
...@@ -847,7 +847,7 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){ ...@@ -847,7 +847,7 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){
if (out && (out->nd != self->nd || if (out && (out->nd != self->nd ||
CudaNdarray_HOST_DIMS(out)[0] != nb_indices)) CudaNdarray_HOST_DIMS(out)[0] != nb_indices))
out = NULL; out = NULL;
int dims[self->nd]; int * dims = (int *)malloc(sizeof(int) * self->nd);
dims[0] = nb_indices; dims[0] = nb_indices;
for (int i=1 ; i<self->nd ; i++) { for (int i=1 ; i<self->nd ; i++) {
...@@ -860,11 +860,13 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){ ...@@ -860,11 +860,13 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){
out = (CudaNdarray*)CudaNdarray_New(); out = (CudaNdarray*)CudaNdarray_New();
if (!out){ if (!out){
Py_DECREF(indices_obj); Py_DECREF(indices_obj);
free(dims);
return NULL; return NULL;
} }
if (CudaNdarray_alloc_contiguous(out, self->nd, dims)) { if (CudaNdarray_alloc_contiguous(out, self->nd, dims)) {
Py_DECREF(out); Py_DECREF(out);
Py_DECREF(indices_obj); Py_DECREF(indices_obj);
free(dims);
return NULL; return NULL;
} }
}else { }else {
...@@ -913,6 +915,7 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){ ...@@ -913,6 +915,7 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){
return NULL; return NULL;
} }
} }
free(dims);
dim3 n_blocks(std::min(CudaNdarray_HOST_DIMS(out)[0],65535),1,1); dim3 n_blocks(std::min(CudaNdarray_HOST_DIMS(out)[0],65535),1,1);
switch (self->nd) { switch (self->nd) {
case 1: case 1:
......
...@@ -3317,12 +3317,16 @@ class T_local_sum(unittest.TestCase): ...@@ -3317,12 +3317,16 @@ class T_local_sum(unittest.TestCase):
optimizer.optimize(g) optimizer.optimize(g)
order = g.toposort() order = g.toposort()
assert 1 == sum([isinstance(node.op, T.CAReduce) for node in order]) assert 1 == sum([isinstance(node.op, T.CAReduce) for node in order])
op = order[-2].op if config.mode == 'FAST_COMPILE':
node = order[-1]
else:
node = order[-2]
op = node.op
assert isinstance(op, T.CAReduce) assert isinstance(op, T.CAReduce)
# -- the leading broadcastable dimension has been dropped # -- the leading broadcastable dimension has been dropped
# by the local_sum_broadcastable optimization # by the local_sum_broadcastable optimization
# now summation is over the original x's dimension 1. # now summation is over the original x's dimension 1.
assert order[-2].inputs[0].ndim == 2, order[-2] assert node.inputs[0].ndim == 2, node
assert op.axis == (0,), op.axis assert op.axis == (0,), op.axis
def test_local_sum_broadcast_some_1(self): def test_local_sum_broadcast_some_1(self):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论