博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ubuntu 16 04 编译 Caffe SSD
阅读量:6704 次
发布时间:2019-06-25

本文共 2650 字,大约阅读时间需要 8 分钟。

该来的还是要来

之前为了偷懒想到使用 Docker 回避 Caffe SSD 编译的难题。结果,「天道好轮回,苍天饶过谁」。Docker 镜像内无法调用 GUI 显示以及摄像头,没法跑 ssd_pascal_webcam.py 做实时 Object Detection。所以没办法又得重新尝试编译 Caffe SSD。现在就记录一下,我在编译 Caffe SSD 时候遇到的坑。

如果你仅需要训练出 model 而后移植到别的机器上做推断的话,你可以直接使用我前一篇文章的方法安装 Docker,简单而便捷。

下载源码

git clone https://github.com/weiliu89/caffe.gitcd caffegit checkout ssd    # 这一步很重要,不要忘记# 如果你没有 git 的话就使用 「sudo apt-get install git」安装 git复制代码

依赖安装

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libopenblas-dev liblapack-dev libatlas-base-devsudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-devsudo apt-get install cmake build-essential复制代码
# 修改 Makefile.config 文件cp Makefile.config.example Makefile.configvim Makefile.config复制代码
# 修改内容如下# 第5行,开启 cuDNN 如果你不想用 GPU 就别改这个,去掉第8行的 # 以开启 CPU_ONLYUSE_CUDNN := 1# 我没有选择开启 OpenCV# 如果你 CUDA 版本为 9.0 及以上,35 行开始修改如下CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \        -gencode arch=compute_35,code=sm_35 \        -gencode arch=compute_50,code=sm_50 \        -gencode arch=compute_52,code=sm_52 \        -gencode arch=compute_60,code=sm_60 \        -gencode arch=compute_61,code=sm_61 \        -gencode arch=compute_61,code=compute_61# 57 行BLAS := open# 101 行INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/# 102 行LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial# 修改好后 :wq 退出并保存复制代码
# 修改 Makefilevim Makefile复制代码
# 改动如下# 181 行LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial# 266 行LIBRARIES += boost_thread stdc++ boost_regex# 修改好后 :wq 保存并退出复制代码

开始编译

开始编译之前一定要保证你的 protobuf 版本低于3.0。 我使用的版本为 2.6.1

# 使用下面命令查看版本protoc --version复制代码

如果你的版本很高,降级过程如下: 首先下载 protobuf 2.6.1。下载完成后放在你想放的任何目录,然后终端中进入该目录并执行

tar -zxvf protobuf-2.6.1.tar.gzcd protobuf-2.6.1./configuremakemake checksudo make install# 如果以上 make 命令提示没有权限,则命令前加 sudo# 完成后检查 protobuf 版本protoc --verison# libprotoc 2.6.1复制代码
# 编译过程在 Caffe 根目录下进行 ~/caffe/make all -j8make pymake test -j8# 如果提示权限不足,上述命令前均加 sudo# 如果  make py 过程中提示错误,尝试 sudo apt-get install python-numpy 解决# 验证是否成功cd pythonpythonimport caffe# 若未报错则成功,下一步是添加环境变量vim ~/.bashrc# 在文件末尾添加如下内容export PYTHONPATH=/home/ubuntu/work/caffe_ssd/caffe/python:$PYTHONPATHexport LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}# :wq 保存退出source ~/.bashrc复制代码

结语

大功告成,如何训练自己的数据集请看我另一篇文章。 如果你有任何疑问,欢迎留言询问。

参考

转载于:https://juejin.im/post/5bada404e51d450e6a2e311d

你可能感兴趣的文章
压测 apache ab 初探
查看>>
设计数据结构O1 insert delete和getRandom
查看>>
视图(View)与部分视图(Partial View)之间数据传递
查看>>
漫谈程序猿系列:群星闪耀的黄金时代
查看>>
使用Spring Session做分布式会话管理
查看>>
mongodb的NUMA问题
查看>>
js进阶 12-14 jquery的事件触发函数是哪两个
查看>>
MySQL MERGE存储引擎 简介
查看>>
atitit。自己定义uml MOF EMF体系eclipse emf 教程o7t
查看>>
atitit.taskService 任务管理器的设计 v1
查看>>
编写jquery插件的分享
查看>>
机器学习 —— 概率图模型(学习:对数线性模型)
查看>>
2016百度编程题:蘑菇阵
查看>>
解决教学问题新感悟
查看>>
nyoj 37 回文字符串
查看>>
ASP.NET Core 1.0基础之依赖注入
查看>>
Excel里的单元格提行
查看>>
Matlab最短路径问题记录
查看>>
c语言单链表实现
查看>>
tcpdump非常实用的抓包实例
查看>>