AI研习图书馆,发现不一样的世界
深度可分离卷积深度可分离卷积(depthwise separable convolution)
在可分离卷积(separable convolution)中,通常将卷积操作拆分成多个步骤。而在神经网络中通常使用的就是深度可分离卷积(depthwise separable convolution)。
举个例子,假设有一个3×3大小的卷积层,其输入通道为16、输出通道为32。
那么一般的操作就是用32个3×3的卷积核来分别同输入数据卷积,这样每个卷积核需要3×3×16个参数,得到的输出是只有一个通道的数据。之所以会得到一通道的数据,是因为刚开始3×3×16的卷积核的每个通道会在输入数据的每个对应通道上做卷积,然后叠加每一个通道对应位置的值,使之变成了单通道,那么32个卷积核一共需要(3×3×16)×32 =4068个参数。
标准卷积与深度可分离卷积的不同
用一张图来解释深度可分离卷积,如下:
可以看到每一个通道用一个filter卷积之后得到对应一个通道的输出,然后再进行信息的融合。而以往标准的卷积过程可以用下面的图来表示:
深度可分离卷积的过程
举例说明,应用深度可分离卷积的过程:
①用16个3×3大小的卷积核(1通道)分别与输入的16通道的数据做卷积(这里使用了16个1通道的卷积核,输入数据的每个通道用1个3×3的卷积核卷积),得到了16个通道的特征图,我们说该步操作是depthwise(逐层)的,在叠加16个特征图之前;
②接着用32个1×1大小的卷积核(16通道)在这16个特征图进行卷积运算,将16个通道的信息进行融合(用1×1的卷积进行不同通道间的信息融合),我们说该步操作是pointwise(逐像素)的。这样我们可以算出整个过程使用了3×3×16+(1×1×16)×32 =656个参数。
深度可分离卷积的优点
可以看出,运用深度可分离卷积比普通卷积减少了所需要的参数。重要的是深度可分离卷积将以往普通卷积操作同时考虑通道和区域改变成,卷积先只考虑区域,然后再考虑通道,实现了通道和区域的分离。
使用深度可分离卷积,可以加速训练进程,并且训练出来的模型参数更少,速度更快,适用于轻量化模型。
神经网络系列学习笔记不断更新中,学习笔记,在此记录~
推荐阅读文章
[1] AI入门-人工智能的前世今生[2] AI入门-深度学习综述[3] AI入门-计算机视觉学习指南[附资源][4] 深度学习框架总结—国际篇[5] 深度学习-CNN结构设计技巧[6] 资源分享-深度学习及数据分析等资源合集
[7] 今日分享—统计学习方法
[8] 算法总结—人脸检测算法
[9] 目标检测算法-YOLOv4
[10] 项目总结—人脸检测
[11] 项目实战-人脸口罩检测
[12] 深度学习基础-二十种损失函数
[13] 深度学习-目标检测的十九个研究方向
[14] 项目实战-车辆检测案例实现
[15] Python学习-实战小案例
[16] 数据结构与算法-Python语言案例实现
......
点击"在看"了解更多精彩内容 转载是一种动力 分享是一种美德 公众号 :AI研习图书馆CSDN博客:算法之美DLGitHub:statisticszhang关注AI研习图书馆,发现不一样的精彩世界