[新手学Caffe之一]Ubuntu无GPU环境下Caffe安装
12月份开始学习Caffe,花了大概一个月的时间终于把一个超分辨重建的工作给复现了,期间的体会是,“啊,Caffe 真好用啊!”,不过途中也遇到了很多问题,比如安装、模型的导入、layer的编写等等,现在写一点东西总结一下学习的过程,就从Caffe的安装开始吧。
万事开头难,当初装Caffe花了我很长的时间,翻来覆去装了好几遍,想要学习Caffe,跑跑别人的Demo,再到自己做实验,安装是第一步!
网上有很多安装Caffe的教程,但我觉得在学习安装之前最好先看一下官方的文档,因为网上的教程有些比较老,可能所需库的版本与现在的Caffe的需求不一致,所以最好先看下官方的Installation了解一下支持的环境以及版本。另外官方Wiki上有很多安装教程,比如说这一篇Ubuntu-14.04-VirtualBox-VM,就是在无GPU环境下安装Caffe时我主要的参考内容。
查看官方文档,了解版本信息
根据自己的需求,查看CUDA版本等,在安装时并不是最新最好,比如说在有GPU时可能会安装的cuDNN,现在最新的版本只支持cuDNN_v3,而最新的cuDNN版本是v4,我自己用v4试过是编译不通过的。而要使用cuDNN_v3的话,又只能安装CUDA_7.0或7.0以后的版本,这有一系列的连锁反应,所以安装之前一定要查看下官方的说明,再进行安装。安装必要环境
sudo apt-get update #更新软件列表
sudo apt-get upgrade #更新软件
sudo apt-get install build-essential #安装build essentials
安装CUDA
到英伟达官网CUDA下载相应版本的CUDA(此处以7.5为例),cuda_7.5.18_linux.run,我一般下载run格式,放到home目录下,比较好安装。
sudo sh cuda_7.5.18_linux.run
或者
sudo ./cuda_7.5.18_linux.run
按照提示安装即可,另外记住不要安装显卡驱动,具体如下:
Accept the EULA
Do NOT install the graphics card drivers
Install the toolkit (leave path at default)
Install symbolic link Install samples (leave path at default)
更新相应的库路径
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/lib' >> ~/.bashrc
source ~/.bashrc
- 安装必要库
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml
sudo easy_install pillow
- 下载Caffe
cd ~ git clone https://github.com/BVLC/caffe.git
- 安装python必要库
cd caffe cat python/requirements.txt | xargs -L 1 sudo pip install
- 添加两个软连接
sudo ln -s /usr/include/python2.7/ /usr/local/include/python2.7
sudo ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ /usr/local/include/python2.7/numpy
- 修改Makefile.config
cp Makefile.config.example Makefile.config
去掉 # CPU_ONLY: = 1 的注释
在PYTHON_INCLUDE下把
/usr/lib/python2.7/dist-packages/numpy/core/include
改成
/usr/local/lib/python2.7/dist-packages/numpy/core/include
- 编译
make all -j$(nproc)
make test -j$(nproc)
make pycaffe -j$(nproc)
-j$(nproc) 并行加速编译速度,nproc 获取系统的max number of processes。
如果装了MATLAB相应地在Makefile.config把路径设置下,再加个
make matcaffe -j$(nproc)
测试
照着官方教程跑一个MNIST试试
cd caffe
./data/mnist/get_mnist.sh #下载数据
./examples/mnist/create_mnist.sh #转换成lmdb格式
修改examples/mnist/lenet_solver.prototxt下的solver_model为CPU
./examples/mnist/train_lenet.sh
如果没问题,那么CPU下的Caffe就安装完成了,安装期间可能会遇到权限问题,一般在前面加个sudo就好了,另外拷贝或者修改文件时遇到的权限问题尽量在命令行里解决,比如要拷贝或者移动一个文件,在图形界面下直接拷贝有权限问题,那就在命令行模式下
sudo cp #拷贝
sudo mv #移动
尽量不要用 chmod 去修改系统文件的读写权限。