使用keras和theano

时间:2017-04-21 14:41:21

标签: python numpy keras theano theano-cuda

我尝试了this keras教程。我在我的另一个项目中使用theano,所以我改变keras使用theano而不是tenorflow。但是当我运行本教程时,我首先得到了这个错误:

  

nvcc致命:无法找到编译器' cl.exe'在PATH

过了一段时间,在第一个Epoch(满分3分)中,样本编号13056(满分25000)我得到了这个错误:

  

文件" test_keras.py",第28行,in       model.fit(X_train,y_train,validation_data =(X_test,y_test),epochs = 3,batch_size = 64)

     

文件" C:\ Users \ domi1_000 \ Anaconda3 \ envs \ Pyhon27 \ lib \ site-packages \ keras \ models.py",第845行,适合       initial_epoch = initial_epoch)

     

文件" C:\ Users \ domi1_000 \ Anaconda3 \ envs \ Pyhon27 \ lib \ site-packages \ keras \ engine \ training.py",第1485行,in fit       initial_epoch = initial_epoch)

     

文件" C:\ Users \ domi1_000 \ Anaconda3 \ envs \ Pyhon27 \ lib \ site-packages \ keras \ engine \ training.py",第1140行,在_fit_loop中       outs = f(ins_batch)

     

文件" C:\ Users \ domi1_000 \ Anaconda3 \ envs \ Pyhon27 \ lib \ site-packages \ keras \ backend \ theano_backend.py",第1094行,致电       return self.function(* inputs)

     

文件" C:\ Users \ domi1_000 \ Anaconda3 \ envs \ Pyhon27 \ lib \ site-packages \ theano \ compile \ function_module.py",第898行,致电       storage_map = getattr(self.fn,' storage_map',None))

     

文件" C:\ Users \ domi1_000 \ Anaconda3 \ envs \ Pyhon27 \ lib \ site-packages \ theano \ gof \ link.py",第325行,在raise_with_op中       再加注(exc_type,exc_value,exc_trace)

     

文件" C:\ Users \ domi1_000 \ Anaconda3 \ envs \ Pyhon27 \ lib \ site-packages \ theano \ compile \ function_module.py",第884行,致电       self.fn()如果output_subset为None else \

     

文件" C:\ Users \ domi1_000 \ Anaconda3 \ envs \ Pyhon27 \ lib \ site-packages \ theano \ scan_module \ scan_op.py",第989行,in rval       r = p(n,[x [0]代表i],o)

     

文件" C:\ Users \ domi1_000 \ Anaconda3 \ envs \ Pyhon27 \ lib \ site-packages \ theano \ scan_module \ scan_op.py",第978行,p       自我,节点)

     

文件" theano / scan_module / scan_perform.pyx",第445行,在theano.scan_module.scan_perform.perform中(C:\ Users \ domi1_000 \ AppData \ Local \ Theano \ compiledir_Windows-8.1-6.3。 9600 Intel64_Family_6_Model_58_St   epping_9_GenuineIntel-2.7.12-64 \ scan_perform \ mod.cpp:5259)

     

的MemoryError:

     

应用导致错误的节点:forall_inplace,cpu,grad_of_scan_fn}(TensorConstant {500},Subtensor {int64:int64:int64} .0,Elemwise {tanh} .0,Alloc.0,InplaceDimShuffle {0,2, 1} .0,Elemwise {Composite {(i0     - sqr(i1))}}。0,Subtensor {int64:int64:int64} .0,Subtensor {int64:int64:int64} .0,Subtensor {int64:int64:int64} .0,Alloc.0,Alloc。 0,Alloc.0,TensorConstant {500},Subtensor {::,int64:int64:}。0,Subtenso   r {::,:int64:}。0,Subtensor {::,int64 ::}。0,Subtensor {::,int64:int64:}。0,InplaceDimShuffle {1,0} .0,InplaceDimShuffle {1, 0} .0,InplaceDimShuffle {1,0} .0,Alloc.0,InplaceDimShuffle {1,0} .0)

     

Toposort指数:148   输入类型:[TensorType(int64,标量),TensorType(float32,3D),TensorType(float32,3D),TensorType(float32,3D),TensorType(float32,3D),TensorType(float32,3D),TensorType(float32, 3D),TensorTy   pe(float32,3D),TensorType(float32,3D),TensorType(float32,3D),TensorType(float32,3D),TensorType(float32,3D),TensorType(int64,标量),TensorType(float32,矩阵),TensorType (float32,矩阵)   ,TensorType(float32,矩阵),TensorType(float32,矩阵),TensorType(float32,矩阵),TensorType(float32,矩阵),TensorType(float32,矩阵),TensorType(float32,矩阵),TensorType(float32,matr)   ⅸ)]

     

输入形状:[(),(500L,64L,100L),(500L,64L,100L),(500L,64L,400L),(500L,100L,64L),(500L,64L,100L), (500L,64L,400L),(500L,64L,100L),(500L,64L,100L),(501L,64L,100L),(501L,64   L,100L),(2L,100L,400L),(),(100L,100L),(100L,100L),(100L,100L),(100L,100L),(100L,100L),(100L,100L) ),(100L,100L),(100L,400L),(100L,100L)]   输入步幅:[(),( - 25500L,400L,4L),(25600L,400L,4L),(102400L,1600L,4L),( - 25600L,4L,400L),(25600L,400L,4L),( -1600L,800000L,4L),( - 25600L,400L,4L),( - 25600L,400L,4L),(25600L,4   00L,4L),(25600L,400L,4L),(160000L,1600L,4L),(),(1600L,4L),(1600L,4L),(1600L,4L),(1600L,4L),(4L) ,1600L),(4L,1600L),(4L,1600L),(1600L,4L),(4L,1600L)]   输入值:[array(500L,dtype = int64),'未显示','未显示','未显示','未显示'未显示' 39;,'未显示','未显示','未显示','未显示','未显示'未显示' 39;,'未显示','未显示',数组(500L,dty   pe = int64),'未显示','未显示','未显示','未显示','不显示','未显示','未显示','未显示','未显示']   输出客户端:[[],[],[Subtensor {int64}(forall_inplace,cpu,grad_of_scan_fn} .2,常量{1})],[Subtensor {:: int64}(forall_inplace,cpu,grad_of_scan_fn} .3,常量{-1})]]

     

提示:禁用大多数Theano优化后重新运行可以为您提供创建此节点的回溯。这可以通过设置Theano标志' optimizer = fast_compile'来完成。如果那样做   如果不起作用,可以使用' optimizer = None'。

禁用Theano优化

这也发生在我的另一个项目中,但问题是尺寸不匹配。它不能将尺寸为300x200的节点与尺寸为100x100的节点匹配。

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

它说的是什么。你的GPU达到内存限制。如果您使用Theano作为后端,请尝试设置CNMeM和cuDNN。你的GPU有多少内存?