Python GpuArrayException:cumeAlloc:CUDA\u错误\u内存不足:内存不足

Python GpuArrayException:cumeAlloc:CUDA\u错误\u内存不足:内存不足,python,theano,Python,Theano,我使用的是0.10,我的训练网内存不足,CUDA内存不足。我看到优化的\u标志设置为fast\u run时出现此问题。下面的确切堆栈跟踪和无变量为: [global] #cnmem = True floatX = float32 #device = cpu device = cuda optimizer = fast_run #optimizer = None allow_gc = False allow_pre_alloc = False [lib] #cnmem = 0.9 [nvcc

我使用的是0.10,我的训练网内存不足,CUDA内存不足。我看到优化的\u标志设置为fast\u run时出现此问题。下面的确切堆栈跟踪和无变量为:

[global]
#cnmem = True
floatX = float32

#device = cpu
device = cuda
optimizer = fast_run
#optimizer = None
allow_gc = False
allow_pre_alloc = False

[lib]
#cnmem = 0.9

[nvcc]
fastmath = True

[blas]
ldflags = -llapack -lblas

[cuda]
root=/usr/local/cuda

#[gpuarray]
#preallocate=
一,

堆栈跟踪和异常为

/调用中的usr/local/lib/python2.7/dist-packages/Theano-0.10.0b4-py2.7.egg/Theano/compile/function_module.pyc(self,*args,**kwargs) 915 node=self.fn.nodes[self.fn.position\u of_error], 916 thunk=thunk, -->917存储映射=getattr(self.fn,“存储映射”,无)) 918其他: 919#老式链接器也提出了自己的例外

    /usr/local/lib/python2.7/dist-packages/Theano-0.10.0b4-py2.7.egg/theano/gof/link.pyc in raise_with_op(node, thunk, exc_info, storage_map)
        323         # extra long error message in that case.
        324         pass
    --> 325     reraise(exc_type, exc_value, exc_trace)
        326 
        327 

    /usr/local/lib/python2.7/dist-packages/Theano-0.10.0b4-py2.7.egg/theano/compile/function_module.pyc in __call__(self, *args, **kwargs)
        901         try:
        902             outputs =\
    --> 903                 self.fn() if output_subset is None else\
        904                 self.fn(output_subset=output_subset)
        905         except Exception:

    pygpu/gpuarray.pyx in pygpu.gpuarray.pygpu_empty()

    pygpu/gpuarray.pyx in pygpu.gpuarray.array_empty()

    GpuArrayException: cuMemAlloc: CUDA_ERROR_OUT_OF_MEMORY: out of memory
    Apply node that caused the error: GpuElemwise{add,no_inplace}(GpuDnnConv{algo='small', inplace=True, num_groups=1}.0, InplaceGpuDimShuffle{x,0,x,x}.0)
    Toposort index: 2391
    Inputs types: [GpuArrayType<None>(float32, 4D), GpuArrayType<None>(float32, (True, False, True, True))]
    Inputs shapes: [(100, 96, 31, 31), (1, 96, 1, 1)]
    Inputs strides: [(369024, 3844, 124, 4), (384, 4, 4, 4)]
    Inputs values: ['not shown', 'not shown']
    Outputs clients: [[GpuElemwise{Composite{(i0 * (i1 + Abs(i1)))}}[]<gpuarray>(GpuArrayConstant{[[[[ 0.5]]]]}, GpuElemwise{add,no_inplace}.0), GpuElemwise{Composite{((i0 * i1) + (i2 * i1 * sgn(i3)))}}[(0, 3)]<gpuarray>(GpuArrayConstant{[[[[ 0.5]]]]}, GpuSplit{4}.2, GpuArrayConstant{[[[[ 0.5]]]]}, GpuElemwise{add,no_inplace}.0)]]

    Backtrace when the node is created(use Theano flag traceback.limit=N to make it longer):
      File "/usr/local/lib/python2.7/dist-packages/ipykernel/ipkernel.py", line 196, in do_execute
        res = shell.run_cell(code, store_history=store_history, silent=silent)
      File "/usr/local/lib/python2.7/dist-packages/ipykernel/zmqshell.py", line 533, in run_cell
        return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2718, in run_cell
        interactivity=interactivity, compiler=compiler, result=result)
      File "/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2822, in run_ast_nodes
        if self.run_code(code, result):
      File "/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2882, in run_code
        exec(code_obj, self.user_global_ns, self.user_ns)
      File "<ipython-input-35-a7b5c0336969>", line 9, in <module>
        predictions=lasagne.layers.get_output(network,{neto['input']:X_O,neti['input']:X_I,netii['input']:X_II})
  File "/usr/local/lib/python2.7/dist-packages/lasagne/layers/helper.py", line 197, in get_output
    all_outputs[layer] = layer.get_output_for(layer_inputs, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/lasagne/layers/conv.py", line 340, in get_output_for
activation = conved + self.b.dimshuffle(('x', 0) + ('x',) * self.n)
/usr/local/lib/python2.7/dist-packages/Theano-0.10.0b4-py2.7.egg/Theano/gof/link.pyc in raise_with_op(节点、thunk、exc_信息、存储地图)
323#在这种情况下会出现超长错误消息。
324通行证
-->325重放(exc_类型、exc_值、exc_跟踪)
326
327
/usr/local/lib/python2.7/dist-packages/Theano-0.10.0b4-py2.7.egg/Theano/compile/function\u module.pyc in_uuu调用(self,*args,**kwargs)
901尝试:
902项产出=\
-->903 self.fn()如果输出_子集不是其他子集\
904 self.fn(输出子集=输出子集)
905例外情况除外:
pygpu.gpuarray.pygpu_empty()中的pygpu/gpuarray.pyx
pygpu.gpuarray.array_empty()中的pygpu/gpuarray.pyx
GpuArrayException:cumeAlloc:CUDA\u错误\u内存不足:内存不足
导致错误的应用节点:GpuElemwise{add,no_inplace}(GpuDnnConv{algo='small',inplace=True,num_groups=1}.0,InplaceGpuDimShuffle{x,0,x,x}.0)
拓扑排序索引:2391
输入类型:[GpuArrayType(float32,4D),GpuArrayType(float32,(真,假,真,真))]
输入形状:[(100,96,31,31),(1,96,1,1)]
输入跨步:[(3690243844124,4),(384,4,4,4)]
输入值:[“未显示”、“未显示”]
输出客户端:[[GpuElemwise{Composite{(i0*(i1+Abs(i1)))}[](GpuArrayConstant{[[[0.5]]]},GpuElemwise{add,no{inplace}.0),GpuElemwise{Composite{(i0*i1)+(i2*i1*sgn(i3))}[(0,3)](GpuArrayConstant{[[0.5]},GpuSplit{4}.2,GpuArrayConstant{inplace 0,no}]
创建节点时进行回溯(使用No标志traceback.limit=N使其更长):
文件“/usr/local/lib/python2.7/dist packages/ipykernel/ipkernel.py”,第196行,在do_execute中
res=shell.run\u单元格(代码,store\u history=store\u history,silent=silent)
文件“/usr/local/lib/python2.7/dist packages/ipykernel/zmqshell.py”,第533行,位于运行单元中
返回超级(ZMQInteractiveShell,self)。运行单元格(*args,**kwargs)
文件“/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py”,第2718行,在运行单元中
交互性=交互性,编译器=编译器,结果=结果)
文件“/usr/local/lib/python2.7/dist packages/IPython/core/interactiveshell.py”,第2822行,在run\u ast\u节点中
如果自我运行代码(代码、结果):
文件“/usr/local/lib/python2.7/dist packages/IPython/core/interactiveshell.py”,第2882行,运行代码
exec(代码对象、self.user\u全局、self.user\n)
文件“”,第9行,在
预测=千层面.layers.get_输出(网络,{neto['input']:X_O,neti['input']:X_I,netii['input']:X_II})
get_输出中的文件“/usr/local/lib/python2.7/dist packages/lasagne/layers/helper.py”,第197行
所有输出[层]=层。获取(层输入,**kwargs)的输出
文件“/usr/local/lib/python2.7/dist packages/lasagne/layers/conv.py”,第340行,在get_output_中
激活=converd+self.b.dimshuffle(('x',0)+('x',)*self.n)