./build/tools/caffe train 报错:Check failed: error == cudaSuccess (2 vs. 0) out of memory

我在$CAFFE_ROOT路径下面,运行:“./build/tools/caffe train --solver=examples/myfile/solver.prototxt”命令,其中,myfile文件夹中是我的程序例子代码,但是控制台报错如下:
F0228 15:58:21.230835  3136 syncedmem.cpp:64] Check failed: error == cudaSuccess (2 vs. 0)  out of memory
*** Check failure stack trace: ***
    @     0x7f685a5fb5cd  google::LogMessage::Fail()
    @     0x7f685a5fd433  google::LogMessage::SendToLog()
    @     0x7f685a5fb15b  google::LogMessage::Flush()
    @     0x7f685a5fde1e  google::LogMessageFatal::~LogMessageFatal()
    @     0x7f685ad112f0  caffe::SyncedMemory::to_gpu()
    @     0x7f685ad102a9  caffe::SyncedMemory::gpu_data()
    @     0x7f685ad04b02  caffe::Blob<>::gpu_data()
    @     0x7f685add4356  caffe::InnerProductLayer<>::Forward_gpu()
    @     0x7f685ad59bc2  caffe::Net<>::ForwardFromTo()
    @     0x7f685ad59ce7  caffe::Net<>::ForwardPrefilled()
    @     0x7f685ad1ea3f  caffe::Solver<>::Test()
    @     0x7f685ad1f47e  caffe::Solver<>::TestAll()
    @     0x7f685ad1f5bd  caffe::Solver<>::Step()
    @     0x7f685ad20139  caffe::Solver<>::Solve()
    @           0x40b1ab  train()
    @           0x407408  main
    @     0x7f6859254a40  __libc_start_main
    @           0x407b79  _start
    @              (nil)  (unknown)
已放弃 (核心已转储)

我已经设置solver_mode: GPU,但是,如果我设置solver_mode: CPU,那么程序运行正常,并且不报错。
所以,大家能否帮忙看一下是什么原因,已经怎样解决呢?
2016-02-28_16-05-45屏幕截图.jpg

 
已邀请:

孙琳钧

赞同来自: bonerkiller

如果显存不够但是还想获得大batch_size的效果,可以调小数据层的batch_size,在solver文件中设置iter_size,等效的batch的大小为batch_size*iter_size

xinmiao

赞同来自:

out of memory 了,显存不够

yingyiJeniffer

赞同来自:

如果我在Caffe框架下面,运行图像识别的程序,并且使用GPU模式,遇到“显存不够”(out of memory)的问题,应该怎样解决呢?

Goodwin

赞同来自:

根据不同情况,有下面几个办法:
(1) 买个内存大的GPU (如GTX 980, 980ti, titanX); 需要额外花钱
(2) 降低batch_size; 如果是testing 没有影响,如果是training 对结果有影响
(3) 降低网络模型复杂度, 如减少层数,滤波器数目等
 

yingyiJeniffer

赞同来自:

    我在train_val.prototxt文件中,将TRAIN的batch_size下降到32(原先是256),TEST的batch_size下降 到6(原先是50)。并且,resize图片到128×128。
在$CAFFE_ROOT路径下面,运行“sudo build/tools/caffe train -solver examples/myfile/solver.prototxt”之后,获取 accuracy=0.41667
(如果是CPU模式,并且不修改参数,那么accuracy=0.95)
 
那么,像这种情况是否需要更换显卡呢?

        另外,当batch_size取40-50的时候,accuracy=1, 为什么会出现这种情况呢?

HelloDL - 如:80后IT男...

赞同来自:

我遇到的情况是,将卷积和的大小由  11x11   步长4,调整为:7x7,步长2,就会出现out of memory

要回复问题请先登录注册