linux caffe ssd 编译,Ubuntu 16.04 编译 Caffe SSD
该来的还是要来
之前为了偷懒想到使用 Docker 回避 Caffe SSD 编译的难题。结果,「天道好轮回,苍天饶过谁」。Docker 镜像内无法调用 GUI 显示以及摄像头,没法跑 ssd_pascal_webcam.py 做实时 Object Detection。所以没办法又得重新尝试编译 Caffe SSD。现在就记录一下,我在编译 Caffe SSD 时候遇到的坑。
如果你仅需要训练出 model 而后移植到别的机器上做推断的话,你可以直接使用我前一篇文章的方法安装 Docker,简单而便捷。「传送门」
下载源码
git clone https://github.com/weiliu89/caffe.git
cd caffe
git 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-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install cmake build-essential
# 修改 Makefile.config 文件
cp Makefile.config.example Makefile.config
vim Makefile.config
# 修改内容如下
# 第5行,开启 cuDNN 如果你不想用 GPU 就别改这个,去掉第8行的 # 以开启 CPU_ONLY
USE_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 退出并保存
# 修改 Makefile
vim 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.gz
cd protobuf-2.6.1
./configure
make
make check
sudo make install
# 如果以上 make 命令提示没有权限,则命令前加 sudo
# 完成后检查 protobuf 版本
protoc --verison
# libprotoc 2.6.1
# 编译过程在 Caffe 根目录下进行 ~/caffe/
make all -j8
make py
make test -j8
# 如果提示权限不足,上述命令前均加 sudo
# 如果 make py 过程中提示错误,尝试 sudo apt-get install python-numpy 解决
# 验证是否成功
cd python
python
import caffe
# 若未报错则成功,下一步是添加环境变量
vim ~/.bashrc
# 在文件末尾添加如下内容
export PYTHONPATH=/home/ubuntu/work/caffe_ssd/caffe/python:$PYTHONPATH
export 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
结语
大功告成,如何训练自己的数据集请看我另一篇文章。「传送门」
如果你有任何疑问,欢迎留言询问。
参考
linux caffe ssd 编译,Ubuntu 16.04 编译 Caffe SSD相关推荐
- cmake linux编译,Ubuntu 16.04编译cmake源码
编译版本:cmake-3.8.0-rc2 为了能够在Ubuntu 16.04中编译出ccmake和cmake-gui,首先需要安装libncurses5-dev sudo apt install li ...
- android s905 编译_NanoPi K2 (Amlogic S905) Ubuntu 16.04 编译Android 5.1系统源码
NanoPi K2 (Amlogic S905) Ubuntu 16.04 编译Android 5.1系统源码 1. 下载源码 在这里下载https://www.mediafire.com/folde ...
- SSD: how to optimize your Solid State Drive for Linux Mint 17.3, Ubuntu 16.04 and Debian
原文地址: https://sites.google.com/site/easylinuxtipsproject/ssd Below you'll find a complete how-to for ...
- ubuntu 16.04 编译android 7.1,jack报错
ubuntu 16.04 编译android 7.1,jack报错 Writing client settings in /home/nikos/.jack-settings Installing j ...
- Intel 760P NVMe SSD安装UBuntu 16.04 所遇到的问题
使用NVMe PCIE的SSD安装UBuntu 16.04存在以下几个问题,导致无法进入桌面: (1) Couldn't get size: 0x8000000000000000e (2) radeo ...
- linux学习之路——ubuntu 16.04 开机开启数字小键盘解决方法
linux学习之路--ubuntu 16.04 开机开启数字小键盘解决方法 参考文章: (1)linux学习之路--ubuntu 16.04 开机开启数字小键盘解决方法 (2)https://www. ...
- Linux微信运行错误,Ubuntu 16.04 运行微信开发者工具编译出错的解决办法
最近有折腾小程序的意向,但微信的开发者工具只提供了 Windows 和 Mac 两个版本,对于我这样的 Linux 用户来说不是那么地友好. 经过观察发现,那个开发者工具实际上是基于nw.js开发的, ...
- ssd hdd linux分区方案,windows10+ubuntu 16.04+双硬盘(SSD+HDD)分区(图文)
有一种需求是双系统双硬盘(win10+linux,ssd+hdd),那么处理好两个系统之间的关系和充分发挥ssd的功效则非常重要,网上查了很多资料,发现双硬盘双系统方面的资料相对比较少,所以本文会详细 ...
- Ubuntu 16.04编译Android 7.1.2
折腾了很久,终于搞定了这个环境.记录一下. 准备工作: 1. 首先在Ubuntu官网上下载Ubuntu16.04的官方镜像.官网下载地址(这个找了很久,这里可以直接下载ISO镜像):https://l ...
- ubuntu 16.04 编译构建QEMU依赖的软件
在原生ubuntu 16.04下编译构建QEMU过程中,会遇到若干错误.出现这些错误的原因是系统缺少一些软件.根据过去的经验,缺少的软件包列表如下: python, pkg-config, bison ...
最新文章
- TowerKing随笔汇总集
- 飞象求职学python_用Python制作markdown编辑器
- Hadoop详解(九):Hadoop Streaming和Pipes原理和实现
- POJ 2182 Lost Cows (求序列第k大)
- 常用损失函数(L1、L2、SSIM和MS-SSIM)对比简介
- STL库容器vector at函数
- 不只是用于研究:使用Nvivo获取各种定性数据
- java 优秀源码_想要快速进阶Java架构师?这份超强(长)学习计划单 请签收!...
- 文件内容查看---Linux
- python求加速度_如何利用Python 为自然语言处理加速度
- java流读取字符串_javaIO之字符流是怎么读取的?
- 【教程】一步一步教你如何自定义设置——博客园canvas/JS交互动画背景
- 关于svn的安装配置开启服务过程和 eclipse安装SVN插件的方法
- HTML判断如果并且,将html转换为js,并且其中含有判断语句
- 安徽对口计算机本科分数线,考试查询网:安徽对口高考录取分数线
- X264_最简单的视频编码实现(YUV420编码H264)
- MySQL数据常用命令
- 23-Python-RabbitMQ
- ThinkPhp 使用 PHP_XLSXWriter 代替 PHPExcel 百万级数据单次导出
- linux开机启动rsync,rsync 开机自动启动