深度可分离卷积(depthwise separable conv)

一共两步,第一步先进行逐通道卷积(Depthwise Convolution),第二步进行

逐点卷积(Pointwise Convolution)

普通卷积:输入是三个通道,输出是四个通道

这里需要4个卷积核(输出几个通道就要几个卷积核,这里输出四个通道所以需要四个卷积核)

每个卷积核是3*3*3

所以参数总量是4个3*3*3,等于108个参数

 深度卷积:

深度可分离卷积可分为两个过程,分别为逐通道卷积(Depthwise Convolution)和逐点卷积(Pointwise Convolution)

(1)逐通道卷积

这里参数量是3个3*3,等于27个

这样卷积的话,通道数不可改变,而且通道之间的信息也没有进行交互

(2)逐点卷积

这里我们再用四个卷积核,每个卷积核大小为1*1*3

这样的话,参数总量就是4*1*1*3+27=39

可以看到,参数量大大减少

上面两步合起来就是:

代码实现:

class DepthWiseConv(nn.Module):def __init__(self,in_channel,out_channel):#这一行千万不要忘记super(DepthWiseConv, self).__init__()# 逐通道卷积self.depth_conv = nn.Conv2d(in_channels=in_channel,out_channels=in_channel,kernel_size=3,stride=1,padding=1,groups=in_channel)# groups是一个数,当groups=in_channel时,表示做逐通道卷积#逐点卷积self.point_conv = nn.Conv2d(in_channels=in_channel,out_channels=out_channel,kernel_size=1,stride=1,padding=0,groups=1)def forward(self,input):out = self.depth_conv(input)out = self.point_conv(out)return out
#将普通卷积替换成深度可分离卷积
nn.Conv2d(32,128,kernal_size=3,stride=1,padding=1)DepthWiseConv(32,128)

代码实现:

Conv2d(in_channel,out_channel,kernel_size,stride=1,padding=0,dilation=0,groups=1,bias=True)

,就代表在做深度可分离卷积(depth—wise conv)、

深度可分离卷积及其代码实现相关推荐

  1. 深度可分离卷积(计算过程及代码实现)

    一.基本介绍 深度可分离卷积是对传统卷积的改进,通过拆分空间维度和通道维度的相关性,减少了卷积计算所需要的参数个数.深度可分离卷积计算主要包含两个部分,第一部分是Depthwise Convoluti ...

  2. 【深度学习】利用深度可分离卷积减小计算量及提升网络性能

    [深度学习]利用深度可分离卷积减小计算量及提升网络性能 文章目录 1 深度可分离卷积 2 一个深度可分离卷积层的代码示例(keras) 3 优势与创新3.1 Depthwise 过程3.2 Point ...

  3. Lesson 16.1016.1116.1216.13 卷积层的参数量计算,1x1卷积核分组卷积与深度可分离卷积全连接层 nn.Sequential全局平均池化,NiN网络复现

    二 架构对参数量/计算量的影响 在自建架构的时候,除了模型效果之外,我们还需要关注模型整体的计算效率.深度学习模型天生就需要大量数据进行训练,因此每次训练中的参数量和计算量就格外关键,因此在设计卷积网 ...

  4. 2d 蓝图_“蓝图”卷积--对深度可分离卷积的再思考

    论文:Rethinking Depthwise Separable Convolutions: How Intra-Kernel Correlations Lead to Improved Mobil ...

  5. 深度可分离卷积(Xception 与 MobileNet)

    前言 从卷积神经网络登上历史舞台开始,经过不断的改进和优化,卷积早已不是当年的卷积,诞生了分组卷积(Group convolution).空洞卷积(Dilated convolution 或 À tr ...

  6. 【Tensorflow】tf.nn.depthwise_conv2d如何实现深度卷积?+深度可分离卷积详解

    目录 常规卷积操作 深度可分离卷积 = 逐通道卷积+逐点卷积 1.逐通道卷积 2.逐点卷积 参数对比 介绍 实验 代码清单 一些轻量级的网络,如mobilenet中,会有深度可分离卷积depthwis ...

  7. 【CV】MobileNet:使用深度可分离卷积实现用于嵌入式设备的 CNN 架构

    论文名称:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文下载:https:/ ...

  8. 深度可分离卷积的Depth,Stack,Channel Multiplier

    通道数目的不同 单通道的卷积 下面的代码测试了仅仅一个属性(depth是1)的深度卷积,其结果和普通卷积是一样的: async function depthwiseConv2dTestSingleDe ...

  9. 深度可分离卷积(DepthwiseSeparableConvolution):Depthwise卷积与Pointwise卷积

    0.前言 1.深度可分离卷积 1.1 depthwise卷积 1.2 pointwise卷积 2.代码实现 参考 0.前言 深度可分离卷积不用多说,在轻量级网络架构方面是一个绕不开的话题,只要接触深度 ...

  10. 深度学习中的depthwise convolution,pointwise convolution,SeparableConv2D深度可分离卷积

    DepthwiseConv2D深度方向的空间卷积 pointwise convolution, SeparableConv2D深度可分离卷积 SeparableConv2D实现整个深度分离卷积过程,即 ...

最新文章

  1. 时间同步-ntp服务器的搭建(docker版本)
  2. Java中集合中根据对象的某个属性去重
  3. ITK:自适应直方图均衡图像滤波器
  4. 【数字图像处理】五.MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理详解
  5. 2016年这些网络新贵或被并购
  6. 有赞大数据平台安全建设实践
  7. .NET 6 预览版 7 Released
  8. C语言 | 输出平均成绩最高学生的信息
  9. alert弹框里弹一个表格_Python学习第十三弹 输入与输出
  10. 【iOS】TouchDown、TouchDownRepeat 和 TouchCancel 的区别
  11. 【剑指 offer】(十)—— 二进制形式 1 的个数
  12. php 省份的缩写,34个省级行政区记忆口诀、省份简称和省会城市表
  13. 10款推荐系统模拟器汇总
  14. 计算机英语二国家线,历年考研英语国家线一览表
  15. 一文读懂人工智能、机器学习、深度学习、强化学习的关系(必看)
  16. uni-app运行到微信开发工具无法预览
  17. “段子手”黄允松的严肃一面:数字化转型是颠覆式创新
  18. 王煜全老师谈SNS创业
  19. 企业安全文化理念体系及常用口号
  20. python studing DAY1

热门文章

  1. #SpringBoot#阿里云服务器#将微信小程序后端代码部署到阿里云服务器 http转https
  2. 从excel表格生成ArcGIS Pro样式符号
  3. ERP系统-销售子系统-销售发货通知单
  4. C#实现海康人脸门禁主机远程开关门和下发用户数据
  5. aplay与call
  6. 2021年T电梯修理考试题及T电梯修理模拟考试题
  7. 只会纯硬件,让我有点慌
  8. Excel自动化报表制作
  9. 利用不共线三点求解并联机构动系在定系中的位姿
  10. vue实现登录验证码