嵌入式深度学习之Caffe2训练环境搭建

参考资料:

  1. https://caffe2.ai/docs/getting-started.html?platform=ubuntu&configuration=compile Caffe2在线安装指南
  2. https://www.cnblogs.com/arkenstone/p/6900956.html Ubuntu16.04下安装CUDA8.0和tensorflow
  3. https://www.jianshu.com/p/90fb77649b51 Caffe2 手写字符识别(MNIST - Create a CNN from Scratch)[8]

训练环境概述:

  • CPU:Intel i7-4790K
  • GPU: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

你可能感兴趣的:(嵌入式深度学习)