低配硬件就不能运行深度神经网络了?手把手教你克服“杀牛用鸡刀”难题雷峰网

如果对深度学习有所了解的小伙伴们想必都知道,深度学习需要使用强大的服务器、加速嵌入式平台(如NVIDIA的Jetson)来运行深度学习算法,然而这也同样意味着不菲的开支。

那么问题来了,如果你想你想用树莓派来做一个目标跟踪器,为你看家守院,这可以实现吗?换句话说,如果你需要在不带加速器的ARMCPU上运行卷积神经网络了怎么办?

雷锋网想,大概就会像下图这位小哥一样,处境尴尬。

来自德国初创企业BuddyGuardGmbH的机器学习工程师DmytroPrylipko就为我们提供了一个可行的“杀牛不用鸡刀”的解决方案,雷锋网编译,未经许可不得转载。

加速神经网络模型在硬件平台计算速度,两个主要有大的策略:

1)修改神经网络的模型;

2)加快框架运行速度。

当然,将这两个策略结合起来使用,也是一种不错的思路。

加快框架执行速度另一种方法是将网络模型和权重配置转换成针对目标平台代码,并对代码进行优化,而不是让它们直接在某一个框架内运行。这种方法的典型案例是TensorRT。还有CaffePresso,可以将Caffe中prototxt类型的文件定制成适用于各种不同硬件平台的低规格版本。然而,TensorRT的运行需要CUDA,而且只能在NVIDIA的GPU中才能使用,而CaffePresso也需要某种硬件加速器(DSP、FPGA或NoC),所以这两种方法都不适合用于我的测试硬件——树莓派。

上述内容仔细地评估现有的解决办法后,我发现以下几种方法能够加速当前流行的可用模型的推理:

基于以上3种方法,我概括出以下调测配置:

1.使用以OpenBLAS为后端的Caffe主分支(caffe-openblas);

2.使用以OpenBLAS为后端OpenBLAS且为深度学习优化过的Caffe分支版本(caffe-openblas-dl);

3.编译TensorFlow时,使用优化编译标志OPTFLAGS="-Os"(tf-vanilla)

4.编译TensorFlow时,使用优化编译标志OPTFLAGS="-Os-mfpu=neon-vfpv4-funsafe-math-optimizations-ftree-vectorize"(tf-neon-vfpv4)

5.使用以OpenBLAS实现基础线性代数程序集的VanillaMXNet

6.使用带有OpenBLAS、且为深度学习优化过MXNet分支版本(mxnet-openblas-dl)。

你可能会疑惑:配置中怎么没有NNPACK?这确实有点复杂,由ajtulloch创建的Caffe分支提供了最直接的使用NNPACK方法。然而自从它被集成进去以后,NNPACK的API接口就已经改变了,并且目前我无法编译它。Caffe2对NNPACK有原生支持,但我不会考虑Caffe2,因为它处于实验性阶段并且几乎对Caffe进行了尚未文档化的重构。另外一个选项就是使用Maratyszcza的caffe-nnpack分支,但该分支比较老旧且已经停止维护。

另外一个问题就是出于NNPACK本身。它只提供了Android/ARM平台的交叉编译配置,并不提供在Linux/ARM平台上的交叉编译配置。结合MXNet,我尝试编译目标平台代码,但结果无法在目标平台上正常运行。我只能在台式电脑上运行它,但是我并没有看到比OpenBLAS会有更好的性能。由于我的目标是评估已经可用的解决方法,所以我只能推迟NNPACK的实验了。

以上所有的这些方法都是在四核1.3GHzCPU和1GBRAM的树莓派3上执行。操作系统是32位的Raspbian,所以检测到的CPU不是ARMv8架构,而是ARMv7架构。硬件规格如下:

modelname:ARMv7Processorrev4(v7l)

BogoMIPS:38.40

Features:halfthumbfastmultvfpedspneonvfpv3tlsvfpv4idivaidivtvfpd32lpaeevtstrmcrc32

CPUimplementer:0x41

CPUarchitecture:7

CPUvariant:0x0

CPUpart:0xd03

CPUrevision:4

为了评估上述每个测试配置的性能,我制定的测试方案如下:使用相同的神经网络。也就是一个有3个卷积层和2个全连接层且在顶层带有Softmax的小型卷积神经网络:

conv1:16@7x7

relu1pool1:MAXPOOL2x2conv2:48@6x6

relu2pool2:MAXPOOL3x3conv3:96@5x5

relu3fc1:128unitsfc2:848units

softmax

表1不同测试配置在不同的批处理次数下的性能表现

在对数尺度尺度上我们再来看一下:

测试结果让我大吃一惊。首先,我没有预料到在CPU上运行MXNet的性能会这么差。但这看起来已经是一个众所周知的问题。此外,受限于存储空间,它无法运行256张图片的批处理。第二个惊奇是优化过的TensorFlow竟有如此好的性能。它甚至比Caffe的表现还好(批处理次数超过2时),光从原始框架上看是很难预料这个结果的。需要注意的是,上述测试配置中的优化标志并不是在任意ARM芯片上都可以使用的。

Caffe因速度非常快和思路独到而知名。如果你需要连续地处理图片,可以选择使用优化过的OpenBLAS的Caffe,可得到最好的处理性能。如果想提升10ms的性能,你所要做的就只是简单的输入以下指令:

cdOpenBLAS

gitcheckoutoptimized_for_deeplearning

为了将我的研究转变成正式的东西,我仍需要做大量的工作:评估更多的模型,最终集成NNPACK,以及研究更多结合了BLAS后端的框架。雷锋网希望本文能帮助你了解目前最流行的解决方案的推理速度。

THE END
1.剪刀品牌[日杂用品]打听下电动剪刀品牌哪个好一点 您好,可以迷恋老外的品牌,但不要迷信老外的品牌,同样会生锈。我自己用的剪枝刀是N年前在花市买的,没牌子,20元,用完后随便放放的,也已经锈了。剪木本植物不成问题,可以自己用油石磨盆景剪枝怎么剪不会伤着以上价格来源于网络,仅供参考 已有1 个回答 [家居生活]德国理...https://www.to8to.com/ask/search/143456
2.人勤春来早,功到秋华实这些年,国家大兴水利,来水的渠道多了,生产生活用水得到了保障。重新做回农民的老丁,先是流转了一百亩农田,再掏出积蓄买了拖拉机、收割机等。用水有了保障的沙田,再不是“望天田”,也不再是薄田,一季产量增加三成以上不说,还由过去只能种一季变成了能种两季。 https://www.meipian.cn/50n7hdzu
3.儿童诗歌朗诵大全28首【#少儿综合素质训练# #儿童诗歌朗诵大全【28首】#】儿童诗歌已经成为小朋友的即兴作品,开心,忧愁、惆怅的时候,喜欢用诗歌来表达自己的心声,抒发内心的情感。可能儿童的诗歌不会像传统诗歌那样有着各种韵调,但饱含了自己全部的情感,也很令人感动。 1、《月亮》 ...https://www.51test.net/show/8642232.html
4.MNOSZ10744MNOSZ 10744-1956 园艺剪枝刀的最新版本是哪一版?最新版本是 MNOSZ 10744-1956 。MNOSZ 10744-1956的历代版本如下:1956年MNOSZ 10744-1956 园艺剪枝刀标准号 MNOSZ 10744-1956 发布 1956年 发布单位 HU-MSZT 当前最新 MNOSZ 10744-1956 购买 正式版...https://www.antpedia.com/standard/5562254-9.html
5.为什么不能用剪布或剪纸的剪刀去修剪树枝?因为剪布或剪纸的剪刀的刀口是直的,而专用的剪枝剪的刀口是弧型的,直口剪刀修剪枝条容易引起枝条劈裂,不易愈合,而专用的剪枝剪操作时不伤树枝的木质部和韧皮部,剪口平滑,能使树条更好更快的愈合,减少死枝. APP内打开 为你推荐 查看更多 园艺师傅使用如图所示的剪刀修剪树枝时,常把树枝尽量往剪刀轴O处靠近,...https://qb.zuoyebang.com/xfe-question/question/e269600722428ea518450b108235b1aa.html
1.常宁市人民政府门户网站采摘使用果树剪枝刀,剪平瓜蒂,瓜蒂长度不能超过0.5厘米; 3、如何正确堆放南瓜 有条件的存放于仓库,盖好稻草、玉米杆或干枯的杂草,覆盖时看不见南瓜为宜;无条件的采取在种植地块就近就地堆放,同样盖好稻草、玉米杆或干枯的杂草,堆放地面必须平整,保持干燥,四周开好排水沟,保证在雨天无积水,雨天和低温天气要覆盖塑...https://www.hnchangning.gov.cn/zwgk/szfbmxxgkml/nyncj/ywl/20201228/i2258829.html
2.一岁宝宝手指用剪枝刀绞伤怎样处理有问必答问题分析:先简单处理伤口 ,可以用碘伏擦一遍,擦的时候不能局限于伤口处,要扩大范围 ,以防止周边细菌再次进入伤口。如果伤口较大应该到医院缝合 , 如果伤口较小,可以加压包扎,服用消炎药治疗。如果伤口小而深,或剪刀有锈需要打破伤风,在24小时以内。 展开全部相关...https://3g.club.xywy.com/wenda/33241492.htm
3.高中时候拿剪枝刀剪去了有点硬的表皮能消除么真实医生回答问题描述:这是关节垫[指节垫]么,高中时候拿剪枝刀剪去了有点硬的表皮,后来做题时候经常咬,现在这样了,五六年了,不疼不痒,麻烦问问医生怎么治疗?能消除么?(男,21岁) 分析及建议: 可以做液氮冷冻治疗,但是会挺疼的,青鹏软膏,分开间隔用,挺慢的,试试看看吧,或者配合点激素类的,比如丙酸氟替卡松乳膏,这种的...https://m.chunyuyisheng.com/qa/qT8CmFkG4hhoCKd5lkk41Q/
4.2024年果树剪十大品牌排行榜果树剪哪个牌子好问:给果树剪枝条的寓意是什么? (桃花源4) 答:提供一下参考的意见: 果树剪枝和木材用树剪枝不同 果树剪枝有以下几点: 1.成长期(相当与青年期非幼年期):剪去顶枝为了使果树能长出更多的(旁)枝,变得更加茂盛。这样做的好处有:A、可以有随着枝的增多,加... 问:果树剪技怎剪才对呢 (动漫sir) 答:以...https://m.paizi10.com/paihang/guoshujian.html
5.砍柴刀品牌排行榜十大品牌京东JD.COM为您提供砍柴刀排行榜、砍柴刀哪个牌子好、砍柴刀十大品牌等相关资讯,从砍柴刀价格、评价、图片等多方便比较,为您推荐品牌砍柴刀,网购砍柴刀上京东,放心又轻松!https://m.jd.com/phb/124733faffef49419c2c7.html
6.十款值得入手的进口手动工具排行榜进口手动工具品牌产品推荐→买购...手动工具是五金行业的一种分类,一般在装修和日常生活中的修修补补经常会用到手动工具,比如换个灯泡、做个架子、处理凸起的钉子一类的。手动工具分为螺丝刀、 扳手、锤子、卷尺、壁纸刀、电工刀、钢锯等等。手动工具怎么用?手动工具什么牌子好?手动工具如何保养?下面为您介绍手动工具知识。 手动工具 扳手 ★★★ 1....https://www.maigoo.com/product/specs_2523.html
7.剪枝刀英文怎么写剪枝刀英语怎么说及英语单词剪枝刀 lopping 剪枝夹 secateur 剪枝镰 pruning 剪枝状蜘蛛 pruning 夏季修剪枝 summer 第一次剪枝 first 枝剪 scissor 最新单词 粘稠菌落英文怎么写 mucoid 粘稠物阻塞症的英文怎么说 mucoviscid 粘稠液用英语怎么说 viscous 粘稠性脓英语怎么说及英文翻译 ropy 粘稠度的英文怎么说 viscosity 粘...https://www.hujiang.com/ciku/302010_-190252624/
8.山区板栗高产栽培技术(精选十篇)调查结果表明, 豫栗王主干较矮, 平均干高为85 cm, 平均干周为80 cm, 便于树冠管理, 有利于防风、积雪、保温、保湿以及地下和地上部之间的养分、水分的运输和交换, 使树冠扩大迅速, 干周增加快, 冠内光照好, 结果早, 产量高;但不利于果园地面管理, 通风透光较差。 https://www.360wenmi.com/f/cnkey8novfiw.html
9.剪枝刀价格,厂家,图片,其他农林园艺工具,台州市路桥奕鼎塑料...剪枝刀 报价:12元 最小采购量:1 立即询价 拨打电话加工定制 否材质 合金适用范围 修建树木枝条规格 大名称 园剪枝刀林剪枝刀修剪枝条方便灵活 联系人:王国生 手机:13586057312 台州市路桥奕鼎塑料机械厂 进入店铺 13586057312 询价 店铺 拨打电话 立即询价 成为会员 联系电话 您有一...https://m.makepolo.com/product/100188648151.html
10.第一次进理发店五年级叙事作文(精选70篇)想到这儿,突然我发现爷爷的头发长了,刚巧爸爸也正在准备理发工具,于是我就对爷爷说:“爷爷,我给您理个发好吗?”爷爷听了,连声说:“好、好、好!”爷爷是一个勤俭节约的人,从不乱花钱。现在的理发店价格又贵,爷爷舍不得花这笔钱,所以每个月爸爸回老家时都会给爷爷理一下发。今天就由我来代替爸爸做一回...https://www.yuwenmi.com/zw/701251.html