最近的工作需要用到caffe来进行量化,在此记录一下caffe的python3.5的安装方法,这个安装教程参考了如下几个博客的方法:
博客一:https://www.lxlinux.net/4672.html
博客二:https://blog.csdn.net/sinat_38439143/article/details/97244296(仅参考这个无法顺利安装)
博客三:https://blog.csdn.net/quantum7/article/details/83475300
博客四:https://blog.csdn.net/wangyu088/article/details/88313716
1.安装python3.5
wget https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz #到python官网找到下载路径, 用wget下载
tar -zxvf Python-3.5.3.tgz #解压tgz包
mv Python-3.5.3 /usr/local #把python移到/usr/local下面
ll /usr/bin | grep python #删除旧版本的python依赖
rm -rf /usr/bin/python
cd /usr/local/Python-3.5.3/ #进入python目录
./configure --prefix=/usr/local/ --enable-shared CFLAGS=-fPIC #配置 跟博客一不同
make && sudo make install
rm -rf /usr/bin/python #删除旧的软链接,创建新的软链接到最新的python
ln -s /usr/local/bin/python3.5 /usr/bin/python
python -V
注意:上述 ./configure --prefix=/usr/local/ --enable-shared CFLAGS=-fPIC 这步要按照我这里的来,不然后边需要重新编译。
2.安装caffe
2.1.安装caffe
2.1.1. 安装依赖包
sudo apt-get update
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install python-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install python-opencv
2.2. 下载caffe
git clone git://github.com/BVLC/caffe.git
2.3. 修改caffe下文件Makefile.config
cd caffe
cp Makefile.config.example Makefile.config
修改 Makefile.config
vim Makefile.config
- 去掉CPU_ONLY :=1的注释
- 注释掉CUDA有关的行:
# CUDA_DIR := /usr/local/cuda
#CUDA_DIR := /usr
#CUDA_ARCH := ....
#TEST_GPUID := 0 - 去掉WITH_PYTHON_LAYER := 1的注释
- 修改这一行:
# 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 /usr/lib/x86_64-linux-gnu/hdf5/serial
5.去掉下面的注释:
PYTHON_LIBRARIES := boost_python3 python3.5m
PYTHON_INCLUDE := /usr/include/python3.5m /usr/lib/python3.5/dist-packages/numpy/core/include
同时将第一句改为:PYTHON_LIBRARIES := boost_python-py35 python3.5m
2.4. 修改caffe下文件Makefile
vim 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
2.5. 编译
make all
make test
make runtest
3.pycaffe安装
3.1. 安装依赖库
cd caffe/python
for req in $(cat requirements.txt); do pip install $req; done
3.2 添加 PYTHONPATH
sudo vim /etc/profile
export PYTHONPATH=$PYTHONPATH:/home/XXX/caffe/python:$PYTHONPATH
** xxx为用户名(可以通过命令pwd查看)**
使上述更改生效
$ source /etc/profile
3.3编译
cd ~/caffe
make pycaffe
3.4 测试
python
import caffe
4 报错与解决方法
1.问题一:
from numpy.lib.arraypad import _validate_lengths
解决方法:降低numpy的版本 pip install numpy==1.15.0
2.问题二:
编译过程中遇到cannot find -lboost_python3
解决方法: 打开Makefile.config 修改为 PYTHON_LIBRARIES := boost_python-py35 python3.5m