该记录主要参考:http://blog.csdn.net/yhaolpz https://blog.csdn.net/yhaolpz/article/details/71375762
本记录为在上述参考基础上,修改的CPU版本caffe安装步骤。
第1步 安装 caffe
首先在你要安装的路径下 clone :
git clone https://github.com/BVLC/caffe.git
进入 caffe ,将 Makefile.config.example 文件复制一份并更名为 Makefile.config ,也可以在 caffe 目录下直接调用以下命令完成复制操作 :
sudo cp Makefile.config.example Makefile.config
复制一份的原因是编译 caffe 时需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。
然后修改 Makefile.config 文件,在 caffe 目录下打开该文件:
sudo gedit Makefile.config
修改 Makefile.config 文件内容:
1.应用 cudnn
将#USE_CPUONLY := 1
修改成:
USE_CPUONLY
:= 1
2.使用 python 接口
将
#WITH_PYTHON_LAYER := 1
修改为
WITH_PYTHON_LAYER := 1
3.修改 python 路径
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
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 /usr/lib/x86_64-linux-gnu/hdf5/serial
然后修改 caffe 目录下的 Makefile 文件:
将:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
OK ,可以开始编译了,在 caffe 目录下执行 :
sudo make
这是如果之前的配置或安装出错,那么编译就会出现各种各样的问题,所以前面的步骤一定要细心。
编译成功后可运行测试:
sudo make runtest
第2步 安装Python运行环境
首先需要安装Python使用环境:
进入caffe主目录,cd caffe,然后执行Python接口配置:sudo make pycaffe
CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp touch python/caffe/proto/__init__.py PROTOC (python) src/caffe/proto/caffe.proto
然后将caffe主目录下的python文件夹添加到bashrc中:
sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrc
更新文件生效:source ~/.bashrc
之后,python,然后import caffe时,提示报错:
ImportError: No module named skimage.io
此时,pip install -U scikit-image即可。
此时,提示:
You are using pip version 8.1.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
按照,pip install --upgrade pip即可。
安装完后,再次运行上述命令时,可能出现:ImportError: cannot import name main的问题:
Traceback (most recent call last):File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main”
解决办法(引用自 https://www.imooc.com/article/31953?block_id=tuijian_wz):
1.在终端输入:sudo gedit /usr/bin/pip
2.将:
from pip import main
if __name__ == '__main__':
sys.exit(main())
改为:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
3.保存文件退出,完成。
由于我们这里远程服务器配置,因此,没有安装Ipython, 如果需要可按照下述步骤进行安装。
ok,最后一步,配置notebook环境
首先要安装python接口依赖库,在caffe根目录的python文件夹下,有一个requirements.txt的清单文件,上面列出了需要的依赖库,按照这个清单安装就可以了。
在安装scipy库的时候,需要fortran编译器(gfortran),如果没有这个编译器就会报错,因此,我们可以先安装一下。
首先进入 caffe/python 目录下,执行安装代码:
sudo apt-get install gfortran
for req in $(cat requirements.txt); do sudo pip install $req; done
安装完成以后执行:
sudo pip install -r requirements.txt
就会看到,安装成功的,都会显示Requirement already satisfied, 没有安装成功的,会继续安装。
然后安装 jupyter :
sudo pip install jupyter
安装完成后运行 notebook :
jupyter notebook 或 ipython notebook
就会在浏览器中打开notebook, 点击右上角的New-python2, 就可以新建一个网页一样的文件,扩展名为ipynb。在这个网页上,我们就可以像在命令行下面一样运行python代码了。
输入代码后,按shift+enter运行,更多的快捷键,可点击上方的help-Keyboard shortcuts查看,或者先按esc退出编辑状态,再按h键查看。