mobilenet详解_为什么 MobileNet、ShuffleNet 在理论上速度很快,工程上并没有特别大的提升?...

谢邀。这简直是为了昨晚我写的专栏量身设计的问题,不过是MobileNet“慢”的原因,ShuffleNet我本人没自己实现过,就不在这里献丑了。

这里我假设你对MobileNet的深度可分离卷积,以及这种轻量化结构如何节省内存与计算量都了如指掌了(ps:不了如指掌请看下文↓)薰风初入弦:薰风读论文:MobileNet 详解深度可分离卷积,它真的又好又快吗?​zhuanlan.zhihu.com9ae6750b61f33d481e8c4c52a2c94b17.png

而在速度方面,经过大量实验,我发现在算力足够的GPU平台上,MobileNet不会带来任何速度上的提升(有时甚至是下降的),然而在计算能力有限的平台上,MobileNet能让速度提升三倍以上。

注:这个速度的计算方法是随机生成一个224x224x3的tensor,送入网络进行前向计算,多次计算计时并取平均值。一次试验统计的网络推断速度

那么,为什么GPU上表现乏力的GPU,到CPU上反而一骑绝尘了呢?

我们回想一下,什么叫深度可分离卷积。

深度可分离卷积将一个标准卷积分割成了两个卷积(逐深度,逐点),因此减小了参数量,对应也减小了总计算量。

好的,在上面的话中,我们可以发现一个有趣的事实:深度可分离卷积的总计算量变小了,但深度可分离卷积的层数变多了。

而结合我们对GPU和CPU的认识:GPU是并行处理大规模数据(矩阵内积)的运算平台,而CPU则倾向于对数据串行计算(一个一个算)。

因此,若GPU的显存足够大(干脆假设无限大好了),因为每层的计算都可以并行一次处理,则此时总运算时间的主导因素是网络的层数。

而对于缺乏并行能力的CPU,总的运算时间的主导因素则是总计算量有关。

正因如此,才会出现这个乍一看神奇的现象。实际上,乍一看神奇的东西,背后的道理往往并不会太难。

安利时间,我一直致力于结合感性的人文艺术思考和理性的数学分析。并梦想着帮助大家更好的理解计算机视觉/人工智能/深度学习有关的种种问题。

若你同样想听我用如上讲故事的口吻介绍人工智能的干货知识,欢迎关注我的知乎专栏:薰风的计算机科学家之路​zhuanlan.zhihu.comf25fd672d045ca6d46c9f8aed7cc48b2.png

另外,在开学之后,我会继续坚持把自己喜欢的音乐录制成视频,权当安利自己爱听的歌,如果你想听一听的话,不妨试试我的最新作:勾指起誓的竹笛版!https://www.bilibili.com/video/av60589194​www.bilibili.com

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值