膨胀卷积的数学公式表示
时间: 2024-12-31 22:46:58 浏览: 13
### 膨胀卷积的数学公式推导与解释
对于标准卷积操作,滤波器按照连续的空间位置滑动。然而,在膨胀卷积(也称为空洞卷积)中,滤波器之间存在间隔,这些间隔由膨胀率 \( r \) 控制。
假设输入张量为 \( I \),其尺寸为 \( H \times W \times C_{in} \),其中 \( H, W \) 是高度和宽度,\( C_{in} \) 表示通道数;膨胀卷积核大小为 \( K \times K \),膨胀率为 \( r \)[^1]。
膨胀卷积的有效感受野可以通过下面的公式计算:
\[ R = (K - 1) \cdot r + 1 \]
这里 \( R \) 表示有效感受野大小。当膨胀率 \( r=1 \) 时,膨胀卷积退化成普通的卷积运算[^2]。
设输出特征图的一个元素位于第 \( i,j \) 的位置,则该元素可以表示为如下形式:
\[
O(i, j)=\sum_{m=-R / 2}^{R / 2}\sum _{n=-R/2 } ^ {R/2}I(i+m*r ,j+n *r )W(m,n)+b
\]
在这个表达式里,\( O(i, j) \) 是输出特征图中的某个像素值;\( W(m, n) \) 和 \( b \) 分别代表权重矩阵及其偏置项;而 \( m*n \) 则遍历整个卷积核窗口内的相对坐标位移[^3]。
为了更直观理解这个过程,考虑一个简单的例子:如果有一个 \( 3\times3 \) 卷积核应用于图像上,并设置膨胀因子为2,那么实际上会跳过一些相邻像素来应用此内核,从而使得实际的感受野扩大到了 \( 5\times5 \)。
```python
import torch.nn as nn
conv_dilated = nn.Conv2d(in_channels=3,
out_channels=64,
kernel_size=(3, 3),
stride=(1, 1),
dilation=(2, 2))
```
上述代码展示了如何利用 PyTorch 创建具有指定参数的二维膨胀卷积层实例[^4]。
阅读全文