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-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.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
复制代码

结语

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

参考

blog.csdn.net/yhaolpz/art… github.com/rbgirshick/… stackoverflow.com/questions/3… stackoverflow.com/questions/4… github.com/weiliu89/ca…

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bi数据分析师_BI工程师和数据分析师的5个格式塔原则

bi数据分析师Image by Author图片作者 将美丽融入数据 (Putting the Beauty in Data) Have you ever been ravished by Vizzes on Tableau Public that look like only magic could be in play to display so much data in such a pleasing way?您是否曾经被Tableau Public上的…

BSOJ 2423 -- 【PA2014】Final Zarowki

Description 有n个房间和n盏灯,你需要在每个房间里放入一盏灯。每盏灯都有一定功率,每间房间都需要不少于一定功率的灯泡才可以完全照亮。 你可以去附近的商店换新灯泡,商店里所有正整数功率的灯泡都有售。但由于背包空间有限,你…

WPF绑定资源文件错误(error in binding resource string with a view in wpf)

报错:无法将“***Properties.Resources.***”StaticExtension 值解析为枚举、静态字段或静态属性 解决办法:尝试右键单击在Visual Studio解决方案资源管理器的资源文件,并选择属性选项,然后设置自定义工具属性 PublicResXFile cod…

因果推论第六章

因果推论 (Causal Inference) This is the sixth post on the series we work our way through “Causal Inference In Statistics” a nice Primer co-authored by Judea Pearl himself.这是本系列的第六篇文章,我们将通过Judea Pearl本人与他人合着的《引诱统计学…

如何优化网站加载时间

一、背景 我们要监测网站的加载情况,可以使用 window.performance 来简单的检测。 window.performance 是W3C性能小组引入的新的API,目前IE9以上的浏览器都支持。一个performance对象的完整结构如下图所示: memory字段代表JavaScript对内存的…

VMWARE VCSA 6.5安装过程

https://www.tech-coffee.net/step-by-step-deploy-vcenter-server-appliance-vcsa-6-5/ vcsa 6.0,6.5 注册机下载 链接:https://pan.baidu.com/s/1X5V-iWpvxozrwE7Ji099jw 密码:jt8l 转载于:https://www.cnblogs.com/flyhgx/p/9073485.html

熊猫数据集_处理熊猫数据框中的列表值

熊猫数据集Have you ever dealt with a dataset that required you to work with list values? If so, you will understand how painful this can be. If you have not, you better prepare for it.您是否曾经处理过需要使用列表值的数据集? 如果是这样&#xff0…

聊聊jdk http的HeaderFilter

序 本文主要研究一下jdk http的HeaderFilter。 FilterFactory java.net.http/jdk/internal/net/http/FilterFactory.java class FilterFactory {// Strictly-ordered list of filters.final LinkedList<Class<? extends HeaderFilter>> filterClasses new Linked…

旋转变换(一)旋转矩阵

1. 简介 计算机图形学中的应用非常广泛的变换是一种称为仿射变换的特殊变换&#xff0c;在仿射变换中的基本变换包括平移、旋转、缩放、剪切这几种。本文以及接下来的几篇文章重点介绍一下关于旋转的变换&#xff0c;包括二维旋转变换、三维旋转变换以及它的一些表达方式&#…

数据预处理 泰坦尼克号_了解泰坦尼克号数据集的数据预处理

数据预处理 泰坦尼克号什么是数据预处理&#xff1f; (What is Data Pre-Processing?) We know from my last blog that data preprocessing is a data mining technique that involves transforming raw data into an understandable format. Real-world data is often incom…

Pytorch中DNN入门思想及实现

DNN全连接层&#xff08;线性层&#xff09; 计算公式&#xff1a; y w * x b W和b是参与训练的参数 W的维度决定了隐含层输出的维度&#xff0c;一般称为隐单元个数&#xff08;hidden size&#xff09; b是偏差值&#xff08;本文没考虑&#xff09; 举例&#xff1a; 输…

IDEA去除mapper.xml文件中的sql语句的背景色

2019独角兽企业重金招聘Python工程师标准>>> IDEA版本 2017.3 mapper.xml文件中的sql语句&#xff0c;总是黄色一大片&#xff0c;看起来不舒服。 按如下设置进行设置即可 此时设置完还有点背景色 再进行一个设置 Ok,完美解决 转载于:https://my.oschina.net/u/3939…

vc6.0 绘制散点图_vc有关散点图的一切

vc6.0 绘制散点图Scatterplots are one of the most popular visualization techniques in the world. Its purposes are recognizing clusters and correlations in ‘pairs’ of variables. There are many variations of scatter plots. We will look at some of them.散点图…

sudo配置临时取得root权限

sudo配置临时取得root权限系统中的普通用户有时需要root权限执行某种操作&#xff0c;要是使用su - root的话必须要知道root的密码&#xff0c;这是不安全的&#xff0c;所以有了sudo&#xff0c;root可以对/etc/sudoers做一定的配置&#xff0c;让普通用户在不切换到root的情况…

Pytorch中RNN入门思想及实现

RNN循环神经网络 整体思想&#xff1a; 将整个序列划分成多个时间步&#xff0c;将每一个时间步的信息依次输入模型&#xff0c;同时将模型输出的结果传给下一个时间步&#xff0c;也就是说后面的结果受前面输入的影响。 RNN的实现公式&#xff1a; 个人思路&#xff1a; 首…

小扎不哭!FB又陷数据泄露风波,9000万用户受影响

对小扎来说&#xff0c;又是多灾多难的一个月。 继不久前Twitter曝出修补了一个可能造成数以百万计用户私密消息被共享给第三方开发人员的漏洞&#xff0c;连累Facebook股价跟着短线跳水之后&#xff0c;9月28日&#xff0c;Facebook又双叒叕曝出因安全漏洞遭到黑客攻击&#…

在衡量欧洲的政治意识形态时,调查规模的微小变化可能会很重要

(Related post: On a scale from 1 to 10, how much do the numbers used in survey scales really matter?)(相关文章&#xff1a; 从1到10的量表&#xff0c;调查量表中使用的数字到底有多重要&#xff1f; ) At Pew Research Center, survey questions about respondents’…

Pytorch中CNN入门思想及实现

CNN卷积神经网络 基础概念&#xff1a; 以卷积操作为基础的网络结构&#xff0c;每个卷积核可以看成一个特征提取器。 思想&#xff1a; 每次观察数据的一部分&#xff0c;如图&#xff0c;在整个矩阵中只观察黄色部分33的矩阵&#xff0c;将这【33】矩阵(点乘)权重得到特…

java常用设计模式一:单例模式

1、饿汉式 package singleton.demo;/*** author Administrator* date 2019/01/07*/ public class Singleton {//在调用getInstance方法前&#xff0c;实例已经创建好private static Singleton instance new Singleton();//私有构造&#xff0c;防止被实例化private Singleton(…

SDUT-2121_数据结构实验之链表六:有序链表的建立

数据结构实验之链表六&#xff1a;有序链表的建立 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入N个无序的整数&#xff0c;建立一个有序链表&#xff0c;链表中的结点按照数值非降序排列&#xff0c;输出该有序链表。 Input 第一行输入整数个数N&…