GPU 跑 Faster RCNN Demo

GPU 这类东西还是必须的……

不过我的 GPU 实在太老了,而且之前驱动版本不太对,所以就当作 “没有 GPU” 来处理了。

这几天在跑 Faster rcnn 的 demo,发现没有 GPU 实在实在太慢了!于是下定决心配出来个 GPU 版的。

编译和准备

首先,你要 clone 源代码。使用 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 获取到源代码。

然后编译 Caffe。但是这里直接使用 GPU 编译 Caffe 会报错,我也不知道为什么。但是使用最新版进行编译就不会报错。

那么,我们要做的就是把这里面的 caffe“升级” 成为新版。

出现让输入 merge message 的时候,直接快捷键退出即可。

更新: 从 RC5 开始,直接 Merge 会出现冲突。这时候只需要保留新的代码即可。

之后我们还要修改几个文件:

  1. 这个可以不做:找到 caffe-fast-rcnn/include/caffe/layers/python_layer.hpp,将里面的 self_.attr("phase") = static_cast<int>(this->phase_); 注释掉。
  2. 找到 caffe-fast-rcnn/src/caffe/test/test_smooth_L1_loss_layer.cpp,将里面的 #include "caffe/vision_layers.hpp" 注释掉。
  3. 找到 caffe-fast-rcnn/src/caffe/test/test_smooth_L1_loss_layer.cppcaffe-fast-rcnn/src/caffe/test/test_roi_pooling_layer.cpp,去掉最前面的 typedef ::testing::Types<GPUDevice<float>, GPUDevice<double> > TestDtypesGPU;,并将 TestDtypesGPU 改为 TestDtypesAndDevices

最后再 配置 Makefile.conf 并进行编译 即可。注意需要打开 WITH_PYTHON_LAYER

跑测试 Demo

应该可以看到效果。但是我的 GPU 太老了,只出现了 relu_layer.cu:26] Check failed: error == cudaSuccess (9 vs. 0) invalid configuration argument 就挂掉了。Google 了一下原因,好象是因为线程什么的不够用。

跑训练 Demo

上面测试都没办法跑,下面的 Demo 就更别指望了。显卡是 GeForce® GTX 560,1G 的显存,还被显示器占用了 500MB,只剩下不到 500MB 可以用于计算……

一开始训练,就给爆出个 syncedmem.cpp:56] Check failed: error == cudaSuccess (2 vs. 0) out of memory,显存爆了。

结束

一个大写的 SO SAD ……

…… 买买买……

参考资料

发表评论

电子邮件地址不会被公开。 必填项已用*标注