首页 文章

使用keras和theano的python的MemoryError

提问于
浏览
1

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

nvcc致命:在PATH中找不到编译器'cl.exe'

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

文件“test_keras.py”,第28行,在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行,在fit 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 reraise中(exc_type,exc_value,exc_tra ce)文件“C:\ Users \ domi1_000 \ Anaconda3 \ envs \ Pyhon27 \ lib \ site-packages \ theano \ compile \ function_module.py”,第884行,调用self.fn()如果output_subset为None else \ File“ C:\ Users \ domi1_000 \ Anaconda3 \ envs \ Pyhon27 \ lib \ site-packages \ theano \ scan_module \ scan_op.py“,第989行,rval r = p(n,[x [0] for x in i], o)文件“C:\ Users \ domi1_000 \ Anaconda3 \ envs \ Pyhon27 \ lib \ site-packages \ theano \ scan_module \ scan_op.py”,第978行,在p self,node)文件“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 .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 {i nt64: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 } . ,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 ix)]输入形状:[(),(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,64L,100L),(2L,100L,400L),(),(100L,100L),(100L,100L),(100L,100L),(100L,100L),(100L,100L),( 100L,100L),(100L,100L),(100L,400L),(100L,100L)]输入步幅:[(),( - 25600L,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),'not shown','未显示','未显示','未显示','未显示','未显示','未显示','未显示','未显示','未显示','未显示',数组(500L,dty pe = int64),'未显示','未显示','未显示','未显示','未显示','未显示','未显示','未显示','未显示']输出clien ts:[[],[],[Subtensor (forall_inplace,cpu,grad_of_scan_fn} .2,Constant {1})],[Subtensor (forall_inplace,cpu,grad_of_scan_fn} .3,Constant {-1})]]提示:禁用大多数Theano优化后重新运行可以为您提供创建此节点时的回溯 . 这可以通过设置Theano标志'optimizer = fast_compile'来完成 . 如果这不起作用,可以使用'optimizer = None'禁用Theano优化 .

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

任何帮助将非常感激 .

1 回答

  • 0

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

相关问题