嵌入式深度学习之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
源码编译部分依赖库:
依赖库版本下载地址
glog0.3.5https://github.com/google/glog
gflags2.2.1https://github.com/gflags/gflags
protobuf3.2.0https://github.com/google/protobuf
snappy1.1.4https://github.com/google/snappy
leveldb1.2.0https://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功能项
googletest1.8.0https://github.com/google/googletestBUILD_TEST
benchmark1.3.0https://github.com/google/benchmarkBUILD_TEST
nnpackUSE_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
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 安装依赖 首先需要安装 Caffe 和一些相关的依赖项: 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 libgflags-dev libgoogle-glog-dev liblmdb-dev 2. 下载源码 下载 Caffe 的源码,建议使用 GitHub 上的官方仓库: git clone https://github.com/weiliu89/caffe.git 3. 编译 Caffe 进入 Caffe 的根目录,然后执行以下命令进行编译: cd caffe cp Makefile.config.example Makefile.config make all -j8 make test -j8 make runtest -j8 4. 下载预训练模型 下载 SSD 的预训练模型,可以从以下链接中选择: https://github.com/weiliu89/caffe/tree/ssd#models 将下载好的模型放到 Caffe 的根目录下的 models 目录中。 5. 测试 SSD 在 Caffe 的根目录下执行以下命令,测试 SSD 的效果: ./build/tools/caffe test \ --model=models/VGGNet/VOC0712/SSD_300x300/deploy.prototxt \ --weights=models/VGGNet/VOC0712/SSD_300x300/VGG_VOC0712_SSD_300x300_iter_120000.caffemodel \ --iterations=5000 \ --gpu=0 6. 使用 SSD 如果已经成功测试了 SSD,就可以在自己的代码中使用它了。需要引入以下头文件: #include "caffe/caffe.hpp" #include "caffe/util/db.hpp" #include "caffe/blob.hpp" #include "caffe/common.hpp" #include "caffe/net.hpp" #include "caffe/proto/caffe.pb.h" #include "caffe/layers/input_layer.hpp" #include "caffe/layers/conv_layer.hpp" #include "caffe/layers/pooling_layer.hpp" #include "caffe/layers/softmax_layer.hpp" #include "caffe/layers/relu_layer.hpp" #include "caffe/layers/detection_output_layer.hpp" 然后可以通过以下方式加载模型: caffe::Net<float> net("models/VGGNet/VOC0712/SSD_300x300/deploy.prototxt", caffe::TEST); net.CopyTrainedLayersFrom("models/VGGNet/VOC0712/SSD_300x300/VGG_VOC0712_SSD_300x300_iter_120000.caffemodel"); 最后就可以使用 SSD 进行目标检测了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值