关于Pointwise Convolution

​ 最近在学习3维点云处理,这边有看到关于pointwise。

(图源 知乎:轻量化网络——MobileNet - 知乎 (zhihu.com))

​ 关于深度可分离卷积,以下我的理解。

其中输入通道为M,输出通道为N。

考虑kernel size 为(Dk, Dk)的卷积核。

​ 这里考虑单个卷积核对应输入feature区域的操作。即kernel size (D, D) * feature (D, D)

​ 将 传统卷积 **拆分 **为 Depthwise 和 Pointwise 卷积 :

  • a 传统卷积

    • Kernel size (Dk, Dk)
    • Weight shape (N, M, Dk, Dk)
      • 这边我的理解是N(输出通道)个 (M, Dk, Dk) 。每个Filter : M * Dk * Dk
    • 输入 feature: (M, Dk, Dk)
    • 输出 feature: (N, 1, 1)
      • 即 M 通道 Dk * Dk 大小的输入feature 卷积后为 N 通道的 1 * 1 feature。
  • b Depthwise 卷积

    • Kernel size (Dk, Dk)
    • Weight shape (M, Dk, Dk)
      • 这边我的理解是M(输入通道)个 (Dk, Dk) 即M * (Dk, Dk)
    • 输入feature: (M, Dk, Dk)
    • 输出feature: (M, 1, 1)
  • c Pointwise 卷积 :

    • Kernel size (1, 1)

    • Weight shape (N, M, 1, 1)

      • 这边我的理解是N(输出通道)个(M, 1, 1) 即N * (M, 1, 1)
    • 输入feature: (M, 1, 1)

    • 输出feature: (N, 1, 1)

​ 括号内 (output_channels, input_channels, kw, kh)。

​ 从而,相比于标准卷积,

Depthwise 卷积 将卷积核拆分成为单通道形式,在不改变输入特征图像的深度的情况下,对每一通道进行卷积操作,这样就得到了和输入特征图通道数一致的输出特征图

Pointwise 卷积 就是1×1卷积。主要作用就是对特征图进行 升维降维

在标准卷积中,每个输入通道必须与一个特定的核进行卷积,结果是所有通道的卷积结果的和

而对于深度可分离卷积,深度卷积是第一步,对每个输入通道分别进行卷积。下一步是逐点卷积,这实际上是一个标准的卷积核大小是1 × 1。与标准卷积相比,深度可分离卷积大大减少了数学运算的数量和参数的数量

由以上分析可知:

​ 标准卷积参数量(Weight):

​ N * M * Dk * Dk

​ 深度可可分离卷积参数量(Weight):

​ M * Dk * Dk + N * M * 1 * 1

​ 仅供参考,欢迎交流学习。

Reference :

轻量化网络——MobileNet - 知乎 (zhihu.com)

什么是feature map(个人理解) - 小孢子 - 博客园 (cnblogs.com)

针对不同通道采用不同通道的卷积核进行卷积 - 知乎 (zhihu.com)

[1610.02357] Xception: Deep Learning with Depthwise Separable Convolutions (arxiv.org)

Deep Learning with Depthwise Separable Convolutions (arxiv.org)

[1809.01536] A CNN Accelerator on FPGA Using Depthwise Separable Convolution (arxiv.org)

关于深度可分离卷积 Depthwise Pointwise Convolution相关推荐

  1. 深度可分离卷积Depthwise Separable Convolution

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

  2. 通道可分离卷积 depth-wise separable convolution

    通道可分离卷积 文章目录 通道可分离卷积 正常卷积回顾 通道可分离卷积 通道分离卷积,depthwise separable convolution,也叫深度可分离卷积,是MobileNet系列的主要 ...

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

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

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

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

  5. 关于深度可分离卷积、空洞卷积、分组卷积的理解笔记

    深度可分离卷积(Depthwise separable convolution) 深度可分离卷积由逐通道卷积(Depthwise Convolution)和逐点卷积(Pointwise Convolu ...

  6. 可分离卷积及深度可分离卷积详解

    可分离卷积 再来看一下nn.Conv2d(): torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, ...

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

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

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

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

  9. Separable Convolution(深度可分离卷积)

    作用:它的核心思想是将一个完整的卷积运算分解为两步进行,分别为Depthwise Convolution与Pointwise Convolution,有效的减小了参数数量,适合部署在受到硬件性能限制的 ...

最新文章

  1. [转]预备知识—程序的内存分配
  2. 如何在Kubernetes里创建一个Nginx service
  3. openGL 坐标系的互相转换
  4. 轻松清理系统垃圾[转]
  5. 合肥市电力大数据应用工程技术研究中心成立
  6. java zip文件操作,java 关于 zip 文件 的 基本操作
  7. wireshark tcp抓包分析_网络分析系列之八_使用Wireshark抓包
  8. BugkuCTF-Crypto题affine
  9. es6 Object.assign()方法
  10. ppt中覆盖原有图片文字并且添加新文字的操作方法,有截图
  11. Linux下批量添加用户
  12. 到底谁才是苹果公司实际控制人?
  13. Linux的ssh登录命令,linux命令SSH登录工具常用命令
  14. 小米官网竖直导航栏html,小米官网css3导航菜单代码_html/css_WEB-ITnose
  15. 浅谈Java中的常量池
  16. 学习笔记:弱监督学习-valse青年会议
  17. Weixin4j微信开发网页授权获取openid案例
  18. LeetCode 875.爱吃香蕉的珂珂
  19. java 多媒体_Java播放多媒体
  20. QML_组合框ComboBox

热门文章

  1. window时间同步
  2. 后端技术 - 收藏集 - 掘金
  3. Android游戏源码合集(主要是AndEngine和Libgdx的)
  4. 正则表达式匹配任何空白字符或者非空白字符
  5. C/C++ 技术面试基础知识总结
  6. 融云聊天室属性 kv
  7. Visual Studio2022安装教程
  8. 传奇人物--马克·扎克伯格
  9. 详解计算机内存及基于内存理解的几种数据结构
  10. XigmaNas系统(一):常见NAS系统选择比较