以下步骤在ubuntu16.04、18.04中测试通过
Caffe对Ubuntu系统中python2.7支持是最好的,曾尝试在anaconda中 创建python2.7和Python3.7环境的方式安装caffe,最终都以失败告终。以下文档记录了在ubuntu16.04/18.04系统python2.7环境下安装caffe、pytorch(cpu only)的过程。
如下安装过程中:
sudo apt源我使用的源是 http://mirrors.aliyun.com/ubuntu
pip安装过程中,为了加快安装,我使用了手机无线网络
1、安装pip
sudo apt install python-pip
sudo pip install --upgrade pip
Ubuntu16.04默认的python版本是2.7,apt-get安装的pip也默认安装进python2.7中
pip --version查看版本号和安装路径
2、配置pip的清华源
mkdir ~/.pip
cd ~/.pip
gedit pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
所有的 python环境共享该配置
3、编译安装C++ 版本protobuf
***************************ubuntu16.04安装protobuf********************
sudo apt install libprotobuf-dev protobuf-compiler
sudo ldconfig
查看版本号 protoc --version
***************************ubuntu18.04编译安装protobuf2.6.1********************
- 下载protobuf2.6.1
https://github.com/protocolbuffers/protobuf/releases/tag/v2.6.1
下载protobuf-2.6.1.tar.bz2
- 解压
tar xvzf protobuf-2.6.1.tar.bz2
- 编译安装
cd protobuf-2.6.1
mkdir build
cd build
../configure --prefix=/home/username/app/protobuf-2.6.1
make -j8
make check
sudo make install
在.bashrc文件中添加
export PATH=/home/username/app/protobuf-2.6.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/home/username/app/protobuf-2.6.1/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export PKG_CONFIG_PATH=/home/username/app/protobuf-2.6.1/lib/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
source ~/.bashrc或者退出Terminal再打开
protoc --version显示版本号为2.6.1,表明安装成功
4、编译安装opencv3.4.5
此步中安装boost、atlas,这两个库也是caffe依赖库
需配置.bashrc如下:
export PATH=/home/username/app/opencv3/bin${PATH:+:${PATH}}export LD_LIBRARY_PATH=/home/username/app/opencv3/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export PKG_CONFIG_PATH=/home/username/app/opencv3/lib/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
5、安装caffe依赖的C++库
sudo apt install libleveldb-dev libsnappy-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev
6、安装pycaffe依赖的python库和opencv-python
参见<caffe-root>/python/requirements.txt
安装的时候每次安装一个库,
sudo pip install
安装protobuf库的时候需要指定版本号,其他库不用指定版本号.
sudo pip install protobuf==2.6.1
sudo pip install opencv-python==4.2.0.32
通过pip安装的python库,将会安装进/usr/lib/python2.7/dist-packages
7、编译caffe
cd <caffe-root>cp Makefile.config.example Makefile.config
然后修改Makefile.config
需要Uncomment和修改的变量如下:
CPU_ONLY := 1
BLAS := atlas
OPENCV_VERSION := 3
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/local/lib/python2.7/dist-packages/numpy/core/include
PYTHON_LIB := /usr/lib
WITH_PYTHON_LAYER := 1
切记:PYTHON_INCLUDE中/usr/lib 修改成/usr/local/lib
# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /home/username/app/opencv3/include /home/username/app/protobuf-2.6.1/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /home/username/app/opencv3/lib /home/username/app/protobuf-2.6.1/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
make all -j8
make test -j8
make runtest -j8
runtest 最终显示PASSED,表面caffe编译成功,接下来就可以编译pycaffe了
make pycaffe –j8
7、把编译后的pycaffe拷贝进系统python2.7的环境内
拷贝的时候应注意文件夹权限问题,
cd <caffe-root>/python/
chmod -R 777 caffe
拷贝pycaffe的python脚本:
cd <caffe-root>/python
sudo cp -r caffe /usr/local/lib/python2.7/dist-packages/
如果你自己的caffe带有RPN层,还需要拷贝caffe中 自定义的python层:
如上图所示的python层,需要把rpn文件夹拷贝进
/usr/local/lib/python2.7/dist-packages/
拷贝libcaffe.so:
cd <caffe-root>/build/lib
sudo cp libcaffe* /usr/lib/x86_64-linux-gnu/
拷贝后符号链接会失效,需要删除后重新创建:
cd /usr/lib/x86_64-linux-gnu
ls libcaffe*
sudo rm libcaffe.so
sudo ln -s libcaffe.so.1.0.0 libcaffe.so
8、安装pytorch并配置pycharm
sudo pip install future
sudo apt install python-tk
Pytorch官网上找到pip安装pytorch(cpuonly)的命令(我仅安装成功pytorch1.4):
sudo pip install torch==1.4.0+cpu torchvision==0.5.0+cpu -f https://download.pytorch.org/whl/torch_stable.html
切记要配置如下路径,否则不能在pycharm中使用caffe
cd /etc/ld.so.conf.d
sudo gedit caffe.conf
添加以下路径
/home/ningbo/app/protobuf-2.6.1/lib
/home/ningbo/app/opencv3/lib
sudo ldconfig
然后新建一个pycharm工程,按照下图配置,然后就可以在pycharm中使用caffe和pytorch了