由于需要使用深度学习做一些实验,所以需要安装Caffe。
这里主要介绍安装pycaffe
而自己电脑的比较老旧,GPU无法使用。所以需要安装Caffe(CPU)版本。
这里主要记录主要步骤和遇到的一些坑。
由于仅仅安装CPU版本,所以跳过GPU版本的安装。
安装所需要的依赖包
在root权限下,安装以下内容
>> 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 --no-install-recommends libboost-all-dev
安装BLAS
>> sudo apt-get install libatlas-base-dev
安装相关依赖库
>> sudo apt-get install libgflags-dev
>> sudo apt-get install libgoogle-glog-dev
>> sudo apt-get install liblmdb-dev
Caffe源码
若没有git,则需要安装git
>> sudo apt-get install git
下载Caffe源码
git clone https://github.com/BVLC/caffe.git
# 进入到caffe目录
# 安装pycaffe的依赖包
for req in $(cat requirements.txt); do sudo pip install $req;
编译Caffe
# 先拷贝一份Makefile.config
cp Makefile.config.example Makefile.config
使用文本编辑器打开Makefile.config,因为这里没有配置GPU,所以去掉CPU_ONLY := 1前面的注释;
并且修改以下内容
# 添加hdf5到后面
# 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的错,可能是由于Ubuntu16.04的目录结构和caffe配置文件中的目录结构不相同
# 原始版本
# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
# 更改完的版本
# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/local/lib/python2.7/dist-packages/numpy/core/include
之后就是编译:
# 使用-j2 使用双核处理问题
make pycaffe -j2
make all -j2
make test -j2
make runtes -j2
如果有报错,建议最好make clean重新开始。
没有报错则安装好了。
测试
测试Caffe的Python接口,切换到caffe/python文件目录下,记录下来当前路径,输入以下命令:
# 正常先试
>> export PYTHONPATH=当前路径:$PYTHONPATH
# 如果在python中引入caffe包时出现
# can't import _caffe module
# 则使用以下方法
>> export PYTHONPATH=当前路径/caffe:$PYTHONPATH
# 直接写入.bashrc文件中
>> sudo echo export PYTHONPATH="当前路径:$PYTHONPATH" >> ~/.bashrc
OR
>> sudo echo export PYTHONPATH="当前路径/caffe:$PYTHONPATH" >> ~/.bashrc
>> source ~/.bashrc
这样应该就大功告成啦。
一、make pycaffe 的时候报了“Makefile:507:recipe for target ‘python/caffe/_caffe.so’ failed”
这里的原因是numpy路径或者python路径出现问题。
可以使用“sudo find / -name ‘numpy’”or “sudo find / -name ‘python2.7’”来确定numpy和python的准确安装路径。最后到Makefile.config文件中的“PYTHON_INCLUDE”中修改相关路径即可。
二、
在make all过程中报”make: * [.build_release/tools/convert_imageset.bin] Error 1”的错误。
添加 “opencv_imgcodecs” 到 Makefile文件中.
LIBRARIES += glog gflags protobuf leveldb snappy
lmdb boost_system hdf5_hl hdf5 m opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
如果输入make all还是出现同样的问题
那么删除掉build文件夹中所有的文件
>> rm -rf ./build/*