参考资料:
- https://caffe2.ai/docs/getting-started.html?platform=ubuntu&configuration=compile Caffe2在线安装指南
- https://www.cnblogs.com/arkenstone/p/6900956.html Ubuntu16.04下安装CUDA8.0和tensorflow
- https://www.jianshu.com/p/90fb77649b51 Caffe2 手写字符识别(MNIST - Create a CNN from Scratch)[8]
训练环境概述:
- CPU:Intel i7-4790K
- GPU:1 x Nvidia GTX1060
- 操作系统:Ubuntu 16.04.3 64位
- GPU驱动版本:384.98
- CUDA版本:9.0.176
- cuDNN版本:7.0.4.31
- 环境搭建时间:2017-12-26
如果Ubuntu中还未安装好Nvidia的GPU驱动和CUDA/cuDNN开发包,请先安装好上述驱动和开发包之后进行后续的操作
下载Caffe2源码:
下载地址:https://github.com/caffe2/caffe2/releases
因为训练机器上之前已经安装cuDNN7,所以必须配套使用caffe2的最新版本0.8.1(使用0.8.0或之前的版本都会出现编译报错)
GCC编译器版本降级:
默认情况下Ubuntu 16.04安装的gcc5.3或gcc5.4,但是CUDA8.0/9.0对于gcc版本的要求并不高,如果想更加保险可以通过如下方法将gcc版本降级为4.9.4版本:
sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
源码编译部分依赖库:
依赖库 | 版本 | 下载地址 |
---|---|---|
glog | 0.3.5 | https://github.com/google/glog |
gflags | 2.2.1 | https://github.com/gflags/gflags |
protobuf | 3.2.0 | https://github.com/google/protobuf |
snappy | 1.1.4 | https://github.com/google/snappy |
leveldb | 1.2.0 | https://github.com/google/leveldb |
APT安装部分依赖库和辅助编译工具:
# caffe2的训练环境采用eigen3
sudo apt-get install libeigen3-dev
sudo apt-get install build-essential cmake
APT安装Python工具
sudo apt-get install python-dev python-pip
# 通过pip进行python插件安装
sudo pip install numpy protobuf
APT安装可选依赖库
sudo apt-get install libgtest-dev libiomp-dev liblmdb-dev libopencv-dev \
libopenmpi-dev openmpi-bin openmpi-doc python-pydot
PIP安装Python深度学习辅助工具
# 通过pip安装一些常用的深度学习辅助工具
sudo pip install flask future graphviz hypothesis jupyter matplotlib pydot python-nvd3 \
pyyaml requests scikit-image scipy setuptools six tornado
# 安装多个工具的过程中要关注是否存在中途退出的问题
下载可选第三方库
caffe2-0.8.1根目录下有一个third_party目录,当通过cmake打开某些可选功能时可以手动下载对应的软件重命名之后替换third_party目录的对应的空目录
依赖库 | 版本 | 下载地址 | 对应Cmake功能项 |
---|---|---|---|
googletest | 1.8.0 | https://github.com/google/googletest | BUILD_TEST |
benchmark | 1.3.0 | https://github.com/google/benchmark | BUILD_TEST |
nnpack | USE_NNPACK |
编译&安装Caffe2
cd caffe2-0.8.1
mkdir _install # 在cmake-gui中设置为Build目录
cmake-gui
# 使用cmake-gui进行编译配置工作,下面将列举具体的设置项
BUILD_TEST TRUE # 开启编译
CMAKE_EXE_LINKER_FLAGS -L/usr/lib/x86_64-linux-gnu/ # 64位系统时使用
USE_CNMEM FLASE
USE_GLOO FALSE # gloo为多GPU训练时使用
USE_LEVELDB FALSE # leveldb为旧的数据库,推荐使用lmdb
USE_NCCL FLASE # ncll为多GPU训练时使用
USE_NNPACK FLASE OR TRUE # 根据需要来控制是否开启
# 完成cmake-gui generate生成makefile
cd _install
make -j8
make install
测试Caffe2 CPU和GPU版本是否安装成功
# 在_install目录下执行python测试脚本
# 测试CPU版本
sudo python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
# 测试GPU版本
sudo python -m caffe2.python.operator_test.relu_op_test
# 测试是否安装成功时可能会出现如下错误
1.status == CUDNN_STATUS_SUCCESS. 4 vs 0
解决方案:调用CUDNN的应用程序必须以root或者加上sudo执行
配置环境变量
# 暂时为空
启动Juypter server
# 设置jupyter notebook登录密码
# 生成jupyter notebook配置文件
# 修改jupyter notebook配置文件
jupyter notebook --no-browser --port=8889