深度学习之——可分离卷积

前段时间keras做了一些更新,我在源码里发现了几个小更新,其中我挑了一两个比较重要的更新点,跟大家分享分享。

1、SeparableConv2D
 

深度可分离卷积是Inception网络结构里的经典用法。在卷积网络中,无外乎两个探索点,一个深度优先,常见的就是VGG网络,另外一个就是宽度优先,典型得当属Inception网络。Inception网络中,使用了一个非常巧妙的方式,把不同感受野卷积得到的map连接到了一起,最大的功劳莫过于“可分离”的过程。

我们举个栗子

对于MNIST数据集,假设输出在某一层输入进行计算以后,得出的map1是 20 x 20 x 100(channel last),我们对该map1做50个3 x 3的卷积,padding方式为same,那必然会生成20 x 20 x 50的map2,计算量大约为:20 x 20 x 100 x 3 x 3 x 50。

而inception的进阶版就做了一个很神奇的操作,他先对map1做一次3 x 3,即在每个通道上做一个3 x 3的卷积,这个过程的计算量是:20 x 20 x 100 x 3 x 3,padding为same,返回的map3为20 x 20 x 100。

而后进行一次50个1 x 1的卷积,pading为same,这个过程的计算量20 x 20 x 100 x 1 x 1 x 50

总的计算量为:20 x 20 x 100 x 3 x 3 + 20 x 20 x 100 x 1 x 1 x 50,这个值远小于20 x 20 x 100 x 3 x 3 x 50,并且这个差异随着kernel的size的增大而增大。

详见:https://www.cnblogs.com/hellcat/p/9726528.html

上篇文章提到,这个过程叫做可分离卷积,第一步叫做:Depthwise过程,第二步叫做Pointwise过程。这两个过程简而言之就是:Depthwise进行了1个3 x 3 x 1的卷积,Pointwise过程进行了50个 1 x 1 x 100的过程,其实本质还是卷积过程,只是用了这样的方式,发现效果不错,计算量也小了,于是乎,这个所谓的可分离卷积就开始进入研究者的视线了。

 

2、DepthwiseConv2D

这个就是刚才我们提到的可分离卷积过程的第一步罢了,所以呢,这个就不细说了。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值