实PW卷积就是普通的卷积而已(只不过卷积核大小为1)。通常DW卷积和PW卷积是放在一起使用的,一起叫做Depthwise Separable Convolution(深度可分卷积)。
时间: 2025-05-25 15:51:48 浏览: 53
### Pointwise Convolution vs Regular Convolution
Pointwise convolution (PW) 是一种特殊的卷积操作,其核心特点是使用 \(1 \times 1\) 的滤波器来减少通道维度或增加非线性特性[^1]。这种类型的卷积主要作用于输入特征图的深度方向上,而不涉及空间上的变换。相比之下,普通的卷积(regular convolution)通常会同时处理空间维度和深度维度的信息。这意味着常规卷积不仅改变输入的空间结构,还可能调整通道数量。
普通卷积的一个显著缺点在于计算成本较高,尤其是在深层神经网络中当输入数据具有高分辨率或者大量通道时尤为明显。而 pointwise 卷积由于仅限于 \(1 \times 1\) 滤波器的应用,在保持有效信息传递的同时大幅降低了运算复杂度。
### Depthwise Separable Convolution Combining DW and PW Convolutions
Depthwise separable convolution 结合了 depthwise convolution 和 pointwise convolution 来构建更高效的模型架构。具体而言:
- **Depthwise Convolution**: 这种方法对每个输入通道独立应用单个滤波器,从而减少了跨不同颜色平面或其他多维信号间的交互需求。它专注于保留原始图像中的局部纹理细节并降低参数规模。
- **Pointwise Convolution**: 随后利用 \(1 \times 1\) 卷积作为融合工具,将由depthwise step产生的多个分离结果重新组合起来,创建新的混合特征映射集。
两者相结合的方式使得整体过程既能够捕捉到丰富的空间关系又不会过度消耗资源。这种方法最初是在某些研究工作中提出的,并逐渐成为轻量化CNN设计的重要组成部分之一。
此外值得注意的是,在实际实现过程中可能会存在一些额外的技术手段用于进一步提升效率或是改善性能表现,比如通过引入特定形式的学习机制让这些组件更好地协同工作[^3]。
```python
import tensorflow as tf
def depthwise_separable_conv(input_tensor, filters_pw, kernel_size_dw=(3, 3)):
# Apply depthwise convolution with specified kernel size.
dw_output = tf.keras.layers.DepthwiseConv2D(kernel_size=kernel_size_dw)(input_tensor)
# Followed by batch normalization and ReLU activation function.
bn_output = tf.keras.layers.BatchNormalization()(dw_output)
relu_output = tf.keras.activations.relu(bn_output)
# Then apply pointwise convolution to adjust number of output channels.
pw_output = tf.keras.layers.Conv2D(filters=filters_pw, kernel_size=(1, 1))(relu_output)
return pw_output
```
阅读全文
相关推荐


















