本文的内容主要参考了Ubuntu16.04安装Caffe(CPU Only)的工作:
该篇文章比较符合我的需要,网上很多的caffe安装的教程都是带了GPU的,对我现在而言,不需要,该篇文章较好的满足我的需要。同时按照该篇文章进行安装过程的工作中,发现了若干问题,完全按照该文章走是会安装失败的,故根据我自己的安装情况,将安装具体过程整理成文。
安装一系列的依赖库
sudo apt-get install libprotobuf-dev
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev
sudo apt-get install libopencv-dev
sudo apt-get install libhdf5-serial-dev
sudo apt-get install protobuf-compiler
sudo apt-get install libboost-all-dev--no-install-recommends
sudo apt-get install libatlas-base-dev
sudo apt-get install python-dev
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install liblmdb-dev
下载源码
sudo git clone https://github.com/BVLC/caffe.git
源码下载完毕后,需要切换到caffe的Python目录下,进行caffe的python接口的安装
cd /home/<user name>/caffe/python
sudo apt-get install python-pip
for req in $(cat requirements.txt); do pip install $req; done
编译
回到caffe目录,复制一份caffe目录底下的Makefile.config.example文件,并重命名为Makefile.config。
cd ..
cp Makefile.config.example Makefile.config
打开Makefile.config对其进行相应修改,由于不需要GPU,我们去掉CPU_ONLY := 1前面的注释,并将#Whatever else you find you need goes here下的两句改成如下所示:
# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
然后再手动安装一下numpy(跳过这步,在后续make pycaffe时可能会出现找不到numpy的问题)
sudo apt-get install python-numpy
然后就可以开始具体的编译过程了
sudo make pycaffe -j4
sudo make all -j4
sudo make test -j4
sudo make runtest -j4
-j4参数视机器的CPU核数调整,我是4核的,所以就用了-j4。
如果上述四步都可以无错的完成,那么caffe应该是安装成功了。若某一步出错了,建议用sudo make clean命令彻底清除之前编译的东西后,再重新运行上述四个命令。
测试
将caffe放到配置文件中
sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrc
sudo source ~/.bashrc
在命令行中输入“python”,进入python环境后,键入import caffe,
若没有报错的话,则说明caffe安装成功。
在实体机上安装时,由于原先在Docker内安装过caffe,导致重新安装caffe时出现了各种各样的错误,故在虚拟机中重新测试了一遍,安装成功。实体机和虚拟机用的是同一个镜像。