『图解』深度可分离卷积

深度可分离卷积其实是一种可分解卷积操作(factorized convolutions)。其可以分解为两个更小的操作:depthwise convolution 和 pointwise convolution。

图片

深度卷积

图片

与标准卷积网络不一样的是,这里会将卷积核拆分成单通道形式,在不改变输入特征图像的深度的情况下,对每一通道进行卷积操作,这样就得到了和输入特征图通道数一致的输出特征图。如上图,输入12*12*3 的特征图,经过5*5*3的深度卷积之后,得到了8*8*3的输出特征图。输入和输出的维度是不变的3,这样就会有一个问题,通道数太少,特征图的维度太少,能获得足够的有效信息吗?

(3)逐点卷积

逐点卷积就是1*1卷积,主要作用就是对特征图进行升维和降维,如下图:

图片

在深度卷积的过程中,我们得到了8*8*3的输出特征图,我们用256个1*1*3的卷积核对输入特征图进行卷积操作,输出的特征图和标准的卷积操作一样都是8*8*256了。

标准卷积与深度可分离卷积的过程对比如下:

图片

(4)为什么要用深度可分离卷积?

深度可分离卷积可以实现更少的参数,更少的运算量。

将卷积乘法变成加法来实现相同的效果

### 卷积操作过程解析 卷积操作是卷积神经网络中的核心部分之一,在图像处理和其他领域有着广泛应用。卷积层通过应用一系列滤波器(也称为内核或权重矩阵)来提取输入数据的不同特征[^1]。 #### 卷积操作的具体流程如下: 1. **定义卷积核** - 设定一个尺寸较小的二维数组作为卷积核,该卷积核将在输入图像上滑动并执行逐元素乘法运算。 2. **计算局部区域响应** - 对于每一个位置,将卷积核覆盖下的像素值与其对应权重量子相乘求和得到一个新的数值,这一步骤被称为点积操作。 3. **移动窗口继续扫描** - 完成一次完整的乘加之后,按照预设步幅(stride),水平方向或者垂直方向平移一定距离再次重复上述步骤直到遍历整个图片平面。 4. **激活函数作用** - 经过线性变换后的输出通常会经过非线性的激活函数进一步加工形成最终的结果图层。 5. **多通道情况扩展** - 当面对彩色RGB三原色组成的三维张量形式的数据集时,则需要引入多个相同大小形状相同的过滤器分别针对各颜色分量做独立卷积再累加以获得单一层输出;对于更深层次架构而言还可能涉及到堆叠更多这样的模块构成复杂结构。 ```python import torch.nn.functional as F def convolve(input_tensor, kernel_size=(3, 3), stride=1, padding=0): output = F.conv2d(input_tensor, weight=torch.randn(kernel_size), stride=stride, padding=padding) return output ``` 为了更好地理解这个概念,可以参考下述简化版的卷积操作示意图形表示方法: ![Convolution Operation Diagram](https://miro.medium.com/max/700/1*MoZVwzjL9hYbUcXJfEaG_g.png) 此图展示了如何在一个简单的灰度图像上实施基本的二维离散卷积算法。请注意实际应用场景中使用的可能是更加复杂的配置选项以及优化技术比如批量标准化(batch normalization)等措施以提高性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值