你如何释放gpu内存?

时间:2015-10-04 17:18:54

标签: python-2.7 gpu gpgpu theano

运行theano时,我收到错误:内存不足。见下文。 有什么可以采取的行动来释放记忆? 我知道我可以关闭应用程序等,但我只是想知道是否有人有其他想法。例如,是否可以保留内存?

  

THEANO_FLAGS = mode = FAST_RUN,device = gpu,floatX = float32 python   conv_exp.py使用gpu设备0:GeForce GT 650M试图在a下运行   GPU。如果不需要,请修改network3.py以设置GPU   标志为假。 错误分配156800000字节的设备内存(输出   记忆)。驱动程序报告64192512字节空闲和1073414144字节   总计回溯(最近一次调用最后一次):文件" conv_exp.py",行   25,在       training_data,validation_data,test_data = network3.load_data_shared()文件   " /Users/xr/courses/deep_learning/con_nn/neural-networks-and-deep-learning/src/network3.py" ;,   第78行,在load_data_shared中       return [shared(training_data),shared(validation_data),shared(test_data)]文件   " /Users/xr/courses/deep_learning/con_nn/neural-networks-and-deep-learning/src/network3.py" ;,   第74行,共享       np.asarray(data [0],dtype = theano.config.floatX),borrow = True)文件   " /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/theano/compile/sharedvalue.py" ;,   第208行,共享       allow_downcast = allow_downcast,** kwargs)File" /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/theano/sandbox/cuda/var.py",   第203行,在float32_shared_constructor中       deviceval = type_support_filter(value,type.broadcastable,False,None)MemoryError:('错误分配156800000字节的设备内存   (内存不足)。',"您可以考虑使用' theano.shared(...,   借=真)'&#34)

1 个答案:

答案 0 :(得分:3)

如果将borrow设置为true,则启用垃圾收集(默认为true:config.allow_gc=True),并且视频卡当前未用作显示设备(可疑,因为您正在使用移动gpu) ,唯一的其他选择是减少网络参数或可能减少模型的批量大小。如果模型使用丢失或基于噪声的掩码,后者将特别有效(这些掩码将等于批处理中的示例数量x丢弃或噪声的参数数量)。

否则也许您可以启动到命令提示符以节省几个mbs? :/