嵌入式培训
达内IT学院
400-996-5531
随着深度学习的发展,神经网络模型也越来越复杂,那么移动嵌入式端是如何进行深度学习的?怎么样的模型才能算深度学习呢?
常用的模型中VGG系列网络的计算量可以达到30-40GOP(1GOP=109运算)。这些神经网络通常运行在GPU上,但是如果我们要在移动/嵌入式端也实现深度学习,那么这样巨大的模型是绝对跑不动的。移动/嵌入式端的计算能力往往只有桌面级GPU的1/100到1/1000,换句话说在GPU上一秒40帧的深度学习CV算法在移动/嵌入式端一秒只有0.04-0.4帧,这样的性能会极大影响用户体验。
在移动/嵌入式端跑深度学习模型,除了运行速度之外,能效比也是关键指标。能效比指的是一次运算所需消耗的能量,它决定了移动/嵌入式端运行深度学习算法时电池能用多久。能效比与深度学习模型息息相关,我们下面将会看到深度学习模型的大小会决定运行算法时的片外内存访问频率,从而决定了能效比。
怎样的模型才能算深度学习呢?为了深度学习模型时不仅要看模型计算量还要看模型大小。模型计算量是衡量深度学习是否适合在移动或嵌入式端计算的最重要指标,通常用GOP单位来表示。例如,流行的ResNet-18的计算量大约是4GOP,而VGG-16则为大约31GOP。移动和嵌入式端的硬件计算能力有限,因此模型所需的计算量越大,则模型在移动端运行所需要的时间就越长。
为了能让使用深度学习的应用顺畅运行,模型运算量当然是越小越好。除此之外,深度学习每次运算都是需要花费能量的,模型运算量越大则完成一次inference需要的能量也就越大,换句话说就是越费电。在电池量有限的移动和嵌入式端,模型一次inference所花费的能量必须精打细算,因此深度学习模型计算量不能太大。
深度学习模型大小主要决定的是该模型做一次inference所需要的能量。那么模型大小与inference所消耗的能量有什么关系呢?首先,我们知道,深度学习模型必须储存在内存里面,而内存其实还分为片上内存和片外内存两种。
因此,我们为了减小能量消耗,必须减少片外内存访问,或者说我们需要尽可能把模型的权重数据和每层的中间运算结果存储在片上内存而非片外内存。这也是为什么GoogleTPU使用了高达28MB片上内存的原因。
然而,移动端和嵌入式系统使用的芯片不能成本太高,因此片上内存容量很有限。这样的话我们就必须从深度学习模型大小方面想办法,尽量减小模型尺寸,让模型尽可能地能存储在片上内存,或者至少一层网络的权重数据可以存在片上内存。
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved