深度可分离卷积与传统卷积的区别

深度可分离卷积是轻量化网络如Mobilenet中的关键组件,它通过逐通道卷积和逐点卷积降低参数量和计算量,相比传统卷积,其资源消耗仅为约三分之一。这种技术对于移动设备上的高效深度学习模型至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、深度可分离卷积的概念

主要应用在一些轻量化网络里,如mobilenet,它由两部分组成,depthwise(逐通道卷积)和pointwise(逐点卷积)。它相对于传统卷积的优点是:参数量和运算量都相对较低。

二、传统卷积的参数量和计算量计算

参数量:卷积核W*卷积核H*输入通道数*输出通道数

计算量:卷积核W*卷积核H*(图片W-卷积核W+2P+1)*(图片H-卷积核H+2P+1)*输入通道数*输出通道数

三、深度可分离卷积的参数量和计算量计算

 

 

逐通道卷积参数量:卷积核W*卷积核H*输入通道数

逐通道卷积计算量:卷积核W*卷积核H*(图片W-卷积核W+2P+1)*(图片H-卷积核H+2P+1)*输入通道数

逐点卷积参数量:1*1*输入通道数*输出通道数

逐点卷积计算量:1*1*(特征层W)*(特征层H)*输入通道数*输出通道数

四、对比和Reference

深度可分离卷积的参数量和计算量大致是传统的三分之一。

深度可分离卷积(Depthwise seperable convolution)_冰雪棋书的博客-CSDN博客_深度可分离卷积

### 如何计算深度可分离卷积的参数量 对于传统卷积操作,假设输入通道数为 \(C_{in}\),输出通道数为 \(C_{out}\),卷积核大小为 \(k \times k\),那么该层的参数总数可以表示为: \[ C_{in} \cdot C_{out} \cdot k^2 + C_{out} \] 其中额外加上的 \(C_{out}\) 表示偏置项的数量。 然而,在深度可分离卷积中,这一过程被分解成了两个独立的操作:Depthwise Convolution 和 Pointwise Convolution。具体来说, - **Depthwise Convolution** 对每个输入通道单独应用一个 \(k \times k\) 的滤波器[^3]。因此这部分的参数数量等于输入通道数目乘以单个滤波器内的权重数加上对应的偏置(如果存在),即: \[ C_{in} \cdot (k^2 + 1)\] 这里假定有偏置项。 - **Pointwise Convolution** 则是一个 \(1 \times 1\) 的卷积用于调整特征图之间的联系强度并改变通道维度至期望值 \(C_{out}\)[^4]。所以其参数计数为: \[ C_{in} \cdot C_{out} + C_{out}\] 综上所述,整个深度可分离卷积层的总参数量可以通过上述两项相加以得出: \[ Total\ Parameters = Depthwise\ Params + Pointwise\ Params \] \[= C_{in}(k^2+1)+C_{in} \cdot C_{out} + C_{out}\] 值得注意的是,通过这种方式减少了许多不必要的跨通道交互路径,从而大大降低了模型复杂度和所需资源消耗,使得像 MobileNet 这样的架构能够在移动平台上高效运行[^4]。 ```python def calculate_depth_separable_conv_params(cin, cout, kernel_size): """ 计算深度可分卷积的参数总量 参数: cin -- 输入通道数 cout -- 输出通道数 kernel_size -- 卷积核尺寸 返回: total_params -- 总参数量 """ depthwise_params = cin * ((kernel_size ** 2) + 1) pointwise_params = cin * cout + cout total_params = depthwise_params + pointwise_params return total_params # 示例调用 print(calculate_depth_separable_conv_params(32, 64, 3)) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CVplayer111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值