基于Ubuntu的无GPU的Caffe配置

来源:互联网 发布:2016淘宝快排阀严查 编辑:程序博客网 时间:2024/05/03 17:29

       假期较早回校,有点时间折腾搞一下caffe,据说是CNN应用一个很好的库。之前看过类似的配置教程,感觉特费劲。偶然,昨晚稍微维护了一下实验室服务器,顺便给自己腾了4核、8G内存的虚拟机玩玩,参考配置教程走了一遍,结果一天就搞定了,比我想象中快呀。下面就把我碰到的过程记录下来,有些错误可能没碰到。

       由于大多数教程都是Ubuntu14.04的,我的虚拟机也安装了这个版本,可能碰到的问题少一点吧。去官网下了服务器版本64位的iso。因为没有nVidia显卡,所以只用CPU。

       最重要的是安装这三个东西:CUDA,Blas和OpenCV。

一、安装开发所需基本包

sudo apt-get install build-essential

二、安装CUDA

下载CUDA6.5。链接:

http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.14_linux_64.run

其中包括三部分,cuda-toolkit,nvidia驱动和sample。在CPU模式下只需要装toolkit。下载完上面链接后:

chmod +x *.run

sudo./cuda-linux64-rel-6.5.14.run

然后会有逐行给出提示,记住只需要装toolkit,其它都是n。位置建议默认。

安装完后,在/etc/profile最后一行添加环境变量:

PATH=/usr/local/cuda-6.5/bin:$PATH

export PATH

保存后立即生效:

source/etc/profile

添加lib路径,在/etc/ld.so.conf.d/目录下新建cuda.conf:

touch cuda.conf

内容如下:

/usr/local/cuda-6.5/lib64

并使之立即生效:

sudo ldconfig

三、安装BLAS

关于BLAS的介绍可以自行百度。它有atlas、mkl和openblas三个版本,我用的第三个。首先将其git下来,地址:https://github.com/xianyi/OpenBLAS

然后进入目录编译:

make

没啥问题,然后会提示安装,加上路径:

Make PREFIX=/usr/local/OpenBLAS install

安装完后添加lib路径,在/etc/ld.so.conf.d/目录下新建OpenBLAS.conf,内容:

/usr/local/OpenBLAS/lib

使之生效:

sudo ldconfig

四、安装OpenCV

据说手动装不太好?又有个大神写好了脚本,git下来,地址:

https://github.com/jayrambhia/Install-OpenCV.git

进入Ubuntu/2.4目录:

sudo chmod +x *.sh

先安装依赖项:

sudo ./dependencies.sh

然后再安装opencv2.4.9版本:

sudo ./opencv2_4_9.sh

我在这曾报错,“The following variables are used in this project,but they are set to NOTFOUND”,有解决办法:vi打开makefile,在cmake后面补加三项:

-D WITH_CUBLAS=OFF -D WITH_CUDA=OFF -D WITH_CUFFT=OFF ..

注意后面先空格再两个点。

其它错误倒没有,记得联网。还有据说时间会比较长,但我怎么挺快的。。

五、安装其它依赖项

直接输入:

sudo apt-get install libprotobuf-dev libleveldb-devlibsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-devlibgoogle-glog-dev liblmdb-dev protobuf-compiler

六、接下来就是编译caffe了。

先git,地址:https://github.com/BVLC/caffe

进入caffe,定制config:

cp Makefile.config.example Makefile.config

打开复制后的,修改一下内容:

1、 取消CPU_ONLY:=1前面的注释:

2、 修改cuda路径:/local/usr/cuda-6.5

3、 选择BLAS版本:BLAS:=open,然后去掉下面的注释,改为自己的openblas地址:

BLAS_INCLUDE :=/usr/local/OpenBLAS/include

BLAS_LIB :=/usr/local/OpenBLAS/lib

然后就可以编译了:

sudo make all–j4(因为我是4核)

sudo make test

sudo makeruntest

如果出现形如“cblas.hno such file or directory”,可能都是路径问题,尤其检查一下openblas的路径,以及前面的配置是否生效。

七、使用MNIST测试:

进入caffe目录,获取数据

sudo shdata/mnist/get_mnist.sh

建立数据文件:

切换到CPU模式:在lenet_solver.prototxt最后一行修改solver_mode=CPU。

训练mnist:

sudo shexamples/mnist/train_lenet.sh

理应输出一串串信息,代表正在迭代训练。需要到10000次,我的虚拟机大约5分钟以内吧训练结束。没有报错,至此caffe配置完成。

0 0