关于深度可分离卷积 Depthwise Pointwise Convolution
关于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相关推荐
- 深度可分离卷积Depthwise Separable Convolution
从卷积神经网络登上历史舞台开始,经过不断的改进和优化,卷积早已不是当年的卷积,诞生了分组卷积(Group convolution).空洞卷积(Dilated convolution 或 À trous ...
- 通道可分离卷积 depth-wise separable convolution
通道可分离卷积 文章目录 通道可分离卷积 正常卷积回顾 通道可分离卷积 通道分离卷积,depthwise separable convolution,也叫深度可分离卷积,是MobileNet系列的主要 ...
- 2d 蓝图_“蓝图”卷积--对深度可分离卷积的再思考
论文:Rethinking Depthwise Separable Convolutions: How Intra-Kernel Correlations Lead to Improved Mobil ...
- 【Tensorflow】tf.nn.depthwise_conv2d如何实现深度卷积?+深度可分离卷积详解
目录 常规卷积操作 深度可分离卷积 = 逐通道卷积+逐点卷积 1.逐通道卷积 2.逐点卷积 参数对比 介绍 实验 代码清单 一些轻量级的网络,如mobilenet中,会有深度可分离卷积depthwis ...
- 关于深度可分离卷积、空洞卷积、分组卷积的理解笔记
深度可分离卷积(Depthwise separable convolution) 深度可分离卷积由逐通道卷积(Depthwise Convolution)和逐点卷积(Pointwise Convolu ...
- 可分离卷积及深度可分离卷积详解
可分离卷积 再来看一下nn.Conv2d(): torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, ...
- 深度学习中的depthwise convolution,pointwise convolution,SeparableConv2D深度可分离卷积
DepthwiseConv2D深度方向的空间卷积 pointwise convolution, SeparableConv2D深度可分离卷积 SeparableConv2D实现整个深度分离卷积过程,即 ...
- 深度可分离卷积(DepthwiseSeparableConvolution):Depthwise卷积与Pointwise卷积
0.前言 1.深度可分离卷积 1.1 depthwise卷积 1.2 pointwise卷积 2.代码实现 参考 0.前言 深度可分离卷积不用多说,在轻量级网络架构方面是一个绕不开的话题,只要接触深度 ...
- Separable Convolution(深度可分离卷积)
作用:它的核心思想是将一个完整的卷积运算分解为两步进行,分别为Depthwise Convolution与Pointwise Convolution,有效的减小了参数数量,适合部署在受到硬件性能限制的 ...
最新文章
- [转]预备知识—程序的内存分配
- 如何在Kubernetes里创建一个Nginx service
- openGL 坐标系的互相转换
- 轻松清理系统垃圾[转]
- 合肥市电力大数据应用工程技术研究中心成立
- java zip文件操作,java 关于 zip 文件 的 基本操作
- wireshark tcp抓包分析_网络分析系列之八_使用Wireshark抓包
- BugkuCTF-Crypto题affine
- es6 Object.assign()方法
- ppt中覆盖原有图片文字并且添加新文字的操作方法,有截图
- Linux下批量添加用户
- 到底谁才是苹果公司实际控制人?
- Linux的ssh登录命令,linux命令SSH登录工具常用命令
- 小米官网竖直导航栏html,小米官网css3导航菜单代码_html/css_WEB-ITnose
- 浅谈Java中的常量池
- 学习笔记:弱监督学习-valse青年会议
- Weixin4j微信开发网页授权获取openid案例
- LeetCode 875.爱吃香蕉的珂珂
- java 多媒体_Java播放多媒体
- QML_组合框ComboBox