Hi, 

Thanks for the response. 

I have changed from mode='sum' to mode='average_inc_pad' for all layers. 
This seems to have fixed the crash!

This is my first time using Theano and CNNs so i'm still very much a 
novice. When you say multiply by the window size, what exactly do you mean 
by that? Do you mean multiply the pool size by the window size?  

For example I define a layer as such:

self.surface_pool1_l = lasagne.layers.Pool2DLayer(
    self.surface_conv1_l,
    name='surface_pool1',
    pool_size=(self.sentence_length_short - self.num_words_to_use_conv, 1),
    mode='average_inc_pad',
)



On Thursday, September 1, 2016 at 4:41:55 PM UTC+1, Pascal Lamblin wrote:
>
> Hi, 
>
> The issue is that cuDNN has no "sum" pooling, but Theano still tries to 
> optimizer CPU sum-pooling by creating a cuDNN Op, which crashes at the 
> creation. 
>
> The right solution would be to update the optimization doing that 
> (https://github.com/Theano/Theano/issues/4929). 
>
> A workaround for you now would be to explicitly use 
> "average_inc_padding" and multiply by the window size. 
>
> On Wed, Aug 31, 2016, Tom Ball wrote: 
> > Hi, 
> > 
> > Sorry I missed part of the error message when I copied it over. 
> > 
> > Using gpu device 0: Tesla K40m (CNMeM is enabled with initial size: 
> 95.0% 
> > of memory, cuDNN 5005) 
> > True 
> > ++ which python2 
> > + PYTHON=/cm/shared/apps/python/2.7.5/bin/python2 
> > + WIKIPEDIA_DUMP=enwiki-latest-pages-articles.xml 
> > + WIKIPEDIA_DOWNLOAD= 
> > 
> https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2
>  
> > + WIKIPEDIA_W2V=enwiki-vecs 
> > + python runner.py --queries /home/t/tj/tjb32/workspace/ 
> > CNN_EL/data/data/ace-dev-set-queries.json --surface_count 
> > /home/t/tj/tjb32/workspace/CNN_EL/data/data/enwiki-vecs-surface.json 
> > --wordvecs /home/t/tj/tjb32/workspace/CNN_EL/data/data/enwiki-vecs.bin 
> > --redirects 
> /home/t/tj/tjb32/workspace/CNN_EL/data/data/enwiki-vecs-redir.json 
> > --wiki_dump 
> /home/t/tj/tjb32/workspace/CNN_EL/data/data/enwiki-latest-pages-articles.xml 
>
> > --raw_output ./data/ace-dev-set.h5 --csv_output ./data/ace-dev-set.csv 
> > Using gpu device 0: Tesla K40m (CNMeM is enabled with initial size: 
> 95.0% 
> > of memory, cuDNN 5005) 
> > 
> /home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/tensor/signal/downsample.py:6:
>  
>
> > UserWarning: downsample module has been moved to the 
> > theano.tensor.signal.pool module. 
> >   "downsample module has been moved to the theano.tensor.signal.pool 
> > module.") 
> > 
> /home/t/tj/tjb32/.local/lib/python2.7/site-packages/lasagne/layers/conv.py:489:
>  
>
> > UserWarning: The `image_shape` keyword argument to `tensor.nnet.conv2d` 
> is 
> > deprecated, it has been renamed to `input_shape`. 
> >   border_mode=border_mode) 
> > ERROR (theano.gof.opt): Optimization failure due to: 
> > local_avgpool_dnn_grad_stride 
> > ERROR (theano.gof.opt): node: AveragePoolGrad{ds=(5, 1), 
> > ignore_border=True, st=(5, 1), padding=(0, 0), 
> mode='sum'}(HostFromGpu.0, 
> > Rebroadcast{?,?,0,0}.0) 
> > ERROR (theano.gof.opt): TRACEBACK: 
> > ERROR (theano.gof.opt): Traceback (most recent call last): 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", 
> > line 1820, in process_node 
> >     replacements = lopt.transform(node) 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/sandbox/cuda/dnn.py",
>  
>
> > line 3034, in local_avgpool_dnn_grad_stride 
> >     ret = GpuDnnPoolGrad(mode=mode)(gpu_contiguous(inp), 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/sandbox/cuda/dnn.py",
>  
>
> > line 1746, in __init__ 
> >     assert mode in ('max', 'average_inc_pad', 'average_exc_pad') 
> > AssertionError 
> > 
> > Total queries possible: 0.984514648951, Testing queries possible: 
> > 0.949673811743 
> > Number word vectors: 4402369 
> > Finding relevant pages from wikipedia 
> > Loading model 
> > Traceback (most recent call last): 
> >   File "runner.py", line 306, in <module> 
> >     main() 
> >   File "runner.py", line 241, in main 
> >     queries_exp = __import__(args.exp_model).queries_exp 
> >   File "/mnt/nfs2/inf/tjb32/workspace/CNN_EL/nlp-entity- 
> > convnet/exp_multi_conv_cosim.py", line 923, in <module> 
> >     queries_exp = EntityVectorLinkExp() 
> >   File "/mnt/nfs2/inf/tjb32/workspace/CNN_EL/nlp-entity- 
> > convnet/exp_multi_conv_cosim.py", line 51, in __init__ 
> >     self._setup() 
> >   File "/mnt/nfs2/inf/tjb32/workspace/CNN_EL/nlp-entity- 
> > convnet/exp_multi_conv_cosim.py", line 543, in _setup 
> >     on_unused_input='ignore', 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/compile/function.py",
>  
>
> > line 326, in function 
> >     output_keys=output_keys) 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/compile/pfunc.py",
>  
>
> > line 484, in pfunc 
> >     output_keys=output_keys) 
> >   File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/ 
> > theano/compile/function_module.py", line 1788, in orig_function 
> >     output_keys=output_keys).create( 
> >   File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/ 
> > theano/compile/function_module.py", line 1467, in __init__ 
> >     optimizer_profile = optimizer(fgraph) 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", 
> > line 102, in __call__ 
> >     return self.optimize(fgraph) 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", 
> > line 90, in optimize 
> >     ret = self.apply(fgraph, *args, **kwargs) 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", 
> > line 235, in apply 
> >     sub_prof = optimizer.optimize(fgraph) 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", 
> > line 90, in optimize 
> >     ret = self.apply(fgraph, *args, **kwargs) 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", 
> > line 235, in apply 
> >     sub_prof = optimizer.optimize(fgraph) 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", 
> > line 90, in optimize 
> >     ret = self.apply(fgraph, *args, **kwargs) 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", 
> > line 2262, in apply 
> >     lopt_change = self.process_node(fgraph, node, lopt) 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", 
> > line 1825, in process_node 
> >     lopt, node) 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", 
> > line 1719, in warn_inplace 
> >     return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, 
> node) 
> >   File 
> "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", 
> > line 1705, in warn 
> >     raise exc 
> > AssertionError 
> > 
> > 
> > -- 
> > 
> > --- 
> > You received this message because you are subscribed to the Google 
> Groups "theano-users" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to [email protected] <javascript:>. 
> > For more options, visit https://groups.google.com/d/optout. 
>
>
> -- 
> Pascal 
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"theano-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to