Depth-wise Convolution详细定义

详细定义请参照下面链接:
https://towardsdatascience.com/a-basic-introduction-to-separable-convolutions-b99ec3102728

快速了解

在学习Depth-wise Conv之前先了解一下传统的Convolution:
对于普通卷积:

我们从[12,12,3]的input feature map到[8,8,256]的output feature map,需要256个[5,5,3]的卷积核。参数量为256 x 5 x 5 x 3 = 19200,乘法次数为256 x 5 x 5 x 3 x 8 x 8 = 1228800(可以理解为FLOPs)。

对于depth-wise卷积:

Depth-wise Conv分为2个卷积过程:Separable Conv 以及 Point-wise Conv.

同样的,从[12,12,3]的input feature map到[8,8,256]的output feature map,需要3个[5,5,1]的卷积核和256个[1,1,3]的卷积核。参数量为3 x 5 x 5 x 1 + 256 x 1 x 1 x 3 = 843,乘法次数为3 x 5 x 5 x 1 x 8 x 8 + 256 x 1 x 1 x 3 x 8 x 8 = 53952(FLOPs)。

如此一来,depth-wise conv的FLOPs只有普通卷积的~4.4%,EfficientNet的参数量少也就不足为奇了。


那么,为什么推理速度反而更慢呢?

这就要说说,如何衡量推理速度了:
细致了解推理速度影响因素请参照:https://zhuanlan.zhihu.com/p/122943688

简单概括:
简单来说,depth-wise卷积的FLOPs更少没错,但是在相同的FLOPs条件下,depth-wise卷积需要的IO读取次数是普通卷积的100倍,因此,由于depth-wise卷积的小尺寸,相同的显存下,我们能放更大的batch来让GPU跑满,但是此时速度的瓶颈已经从计算变成了IO。自然desired小尺寸卷积应该有的快速的特性,也无法实现。

当然,也不该如此绝望,也许未来某天GPU的IO性能进一步提升,基于depth-wise卷积的工作就可以真正称得上是Efficient了!


转载自:https://zhuanlan.zhihu.com/p/149564248

快速读懂Depth-wise Convolution相关推荐

  1. 23、90秒快速“读懂”STP(生成树)工作原理

    23.90秒快速"读懂"STP(生成树)工作原理 https://www.toutiao.com/i6794982558787437063/?tt_from=weixin& ...

  2. 快速读懂Http3协议总结

    <网络编程懒人入门(十二):快速读懂Http/3协议,一篇就够!> 什么是 http3 当IETF正式标准化HTTP/2时,Google正在独立构建一个新的传输协议,名为gQUIC.它后来 ...

  3. 如何快速读懂开源代码?

    文章目录 **RUN起来** **调试** **把控关键数据结构和函数** **从小的开始** **关注一个模块** **工具** **一.阅读开源代码存在的一些误区** 二.阅读代码的心态 **三. ...

  4. 快速读懂UML类图,搞懂类之间的6大关系,轻松绘制UML类图

    快速读懂UML类图,搞懂类之间的6大关系,轻松绘制UML类图 前言 一.UML类图简介 二.类之间的六大关系及UML类图 1.依赖关系及UML类图表示 2.泛化关系及UML类图表示 3.实现关系及UM ...

  5. 网络编程之一泡尿的时间,快速读懂QUIC协议

    网络编程之一泡尿的时间,快速读懂QUIC协议 TCP协议到底怎么了? QUIC协议登场 QUIC协议的目标 QUIC协议这么好,可以大规模切换为QUIC吗? QUIC协议实践 我想试试QUIC协议,可 ...

  6. 【转载】ddr3参数-内存系列一:快速读懂内存条标签

    内存系列一:快速读懂内存条标签 内存是我们平常接触最频繁的计算机硬件之一,内存的大小.多寡和型号和我们计算机.手机等性能密切相关.内存系列计划通过三篇文章由浅入深介绍内存的软硬件特性以及与固件的关系. ...

  7. html语言代码大全,菜鸟快速读懂HTML语言_html

    html语言是网页制作的基础,是初学者必学的内容.虽然现在有许多所见即所得的网页制作工具,但是说到底,还是有必要了解一些HTML的语法.这样,您可以更精确的控制页面的排版,可以实现更多的功能.HTML ...

  8. 网络编程懒人入门(十二):快速读懂Http/3协议,一篇就够!

    本文中文译文由作者"ably.io"发布于公众号"高可用架构",译文原题:<深入解读HTTP3的原理及应用>.英文原题:<HTTP/3 dee ...

  9. 基金投资入门教程-----快速读懂基金招募书

    基金投资入门教程-----快速读懂基金招募书 基金投资入门教程-----快速读懂基金招募书 3.快速读懂基金招募书 下载基金招募书 开始读 基金投资入门教程-----快速读懂基金招募书 3.快速读懂基 ...

  10. 如何快速读懂一个后端系统代码

    如何快速看懂一个后端系统代码 当一个java开发新手拿到一个系统代码并且没有人给你讲基本的需求与功能时,如何快速读懂代码了解功能是提高工作效率的必备技能.我作为一个参加工作一年的Java小菜是如何做的 ...

最新文章

  1. jquery php cookie,jQuery的Cookie插件 cookie 使用方法
  2. 作业二:编写一个自动生成四则运算的程序
  3. ICCV 2019 | 可选择性与不变性:关注边界的显著性目标检测
  4. 7-34 任务调度的合理性 (25 分)(思路加详解+兄弟们冲呀)
  5. 基于 Jenkins 和 Kubernetes 的持续集成测试实践了解一下!
  6. Java面试基础部分合集
  7. 计算机网络第七版-《软件工程》试题(第4套含答案)
  8. 深度好文 | 超全SLAM技术及应用介绍
  9. Pandas 08-文本数据
  10. 传感器相关 MPU9250
  11. requests库手工识别验证码登录超星泛雅
  12. ArcGIS模型构建器案例学习-批量删除空要素类地理模型
  13. FME格式转换学习笔记之一:CAD的数据分析及FME对CAD数据的转换
  14. 成功的条件:高人指点、贵人相助、小人监督、个人奋斗
  15. java算法竞赛:StringBuilder更省空间更快速
  16. QT使用log4cpp日志库
  17. 数仓构建维表--行政区域维度表的构建
  18. C++20中的协程(Coroutine)
  19. Android屏幕保护KeyguardManager相关内容学习
  20. SQL Server:偏移量为 0x0000000009c000 的位置执行 读取 期间,操作系统已经向 SQL Server 返回了错误 21的解决方法

热门文章

  1. 有趣的网站分享——福音戰士標題生成器
  2. 第三方支付系统--支付流程
  3. 中富金石老师靠谱分析:2022年国企改革将着力于三个方向
  4. 深圳大数据培训:好程序员大数据学习路线之hive 存储格式
  5. 华为鸿蒙突然消息,怪异!华为的鸿蒙OS为何突然没消息了
  6. 电视PPTV服务器响应异常,pptv出现异常错误怎么解决
  7. 暗黑破坏神3难度的钥匙去哪里打?
  8. GitHub 又一可视化低代码神器,诞生了!
  9. 读书笔记——数学之美
  10. NetInside网络分析帮您解决系统性能问题(一)