我的本机环境如下,任何的环境上的不一致可能会带来一些安装上的问题,所以这个教程只是一个简单的参考。
环境
- 操作系统: Ubuntu 16.04
- GPU型号: Tesla M40 24GB
- Python: 2.7 路径 /usr/bin/python即全局的python解释器
caffe2必备依赖的安装
sudo apt-get update
sudo apt-get install -y --no-install-recommends \build-essential \cmake \git \libgoogle-glog-dev \libprotobuf-dev \protobuf-compiler \python-dev \python-pip
sudo pip install numpy protobuf
GPU用户需要安装的依赖
GPU的用户需要GPU驱动,除此以外还有CUDA和CUDNN的依赖。详细方法可以参照这个博客的内容。 caffe安装教程 以下介绍一种简单的方法,根据自己环境调整
cuda的apt-get安装,版本8.0
sudo apt-get update && sudo apt-get install wget -y --no-install-recommends
wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb"
sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
cudnn的安装,版本号为5.1
CUDNN_URL="http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz"
wget ${CUDNN_URL}
sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig
caffe2需要的其他依赖
同样的,还需要一些caffe2自身依赖的库。这部分可选,根据库名可以看出这里面包含opencv这样的图像处理的库,leveldb这样的文件格式处理库,openmpi这样的mpi通讯框架(用于分布式训练)等等,以及一些python上可选的依赖。
# for both Ubuntu 14.04 and 16.04
sudo apt-get install -y --no-install-recommends \libgtest-dev \libiomp-dev \libleveldb-dev \liblmdb-dev \libopencv-dev \libopenmpi-dev \libsnappy-dev \openmpi-bin \openmpi-doc \python-pydot
sudo pip install \flask \future \graphviz \hypothesis \jupyter \matplotlib \pydot python-nvd3 \pyyaml \requests \scikit-image \scipy \setuptools \six \tornado
编译安装
clone项目并且编译,clone的速度可能不会很快,因为还需要下载一些第三方的依赖文件,花费时间比较长。
git clone --recursive https://github.com/caffe2/caffe2.git && cd caffe2
make && cd build && sudo make install
python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
上面给出了编译之后测试是否成功的方法,在python中导入相应的包看看是否成功。
python -m caffe2.python.operator_test.relu_op_test
执行以上的python模块化执行的命令可以测试是否能够正常地在caffe2中使用GPU,需要注意的是此时不能更改目录,还需要在make时候进入的build目录中。 为了能够在所有目录中都能正常使用caffe2,需要修改环境变量。建议修改用户目录下的.bashrc文件,这样系统的不同用户之间不会冲突。
vim ~/.bashrc
#在文件的最后一行插入以下内容(需要替换caffe2的路径)
export PYTHONPATH=/usr/local:$PYTHONPATH
export PYTHONPATH=$PYTHONPATH:/path/to/caffe2_ROOT/buildexport LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH#然后保存文件重新source一下
source ~/.bashrc