空洞/扩张/膨胀卷积的作用

空洞卷积是一种在不增加计算量的情况下扩大卷积核视野的技术,用于保持空间分辨率的同时增加感受野。它在目标检测和分割任务中尤其有用,能够捕获多尺度上下文信息,而无需引入额外参数。然而,空洞卷积在实际优化中可能存在挑战,可能导致速度下降。

在这里插入图片描述
卷积核膨胀是将卷积核扩张到膨胀尺度约束的尺度中,并将原卷积核没有占用的区域填充零.

空洞卷积的作用:

①:使输出变得更稠密。

②:在不增加计算量的情况下,扩大了卷积核视野(卷积核尺寸变大)。
https://blog.youkuaiyun.com/chen1234520nnn/article/details/102516704

空洞卷积有什么作用呢?

扩大感受野:在deep net中为了增加感受野且降低计算量,总要进行降采样(pooling或s2/conv),这样虽然可以增加感受野,但空间分辨率降低了。为了能不丢失分辨率,且仍然扩大感受野,可以使用空洞卷积。这在检测,分割任务中十分有用。一方面感受野大了可以检测分割大目标,另一方面分辨率高了可以精确定位目标。
捕获多尺度上下文信息:空洞卷积有一个参数可以设置dilation rate,具体含义就是在卷积核中填充dilation rate-1个0,因此,当设置不同dilation rate时,感受野就会不一样,也即获取了多尺度信息。多尺度信息在视觉任务中相当重要啊。
从这里可以看出,空洞卷积可以任意扩大感受野,且不需要引入额外参数,但如果把分辨率增加了,算法整体计算量肯定会增加。
空洞卷积虽然有这么多优点,但在实际中不好优化,速度会大大折扣。
https://zhuanlan.zhihu.com/p/50369448?ivk_sa=1024320u

是的,扩张卷积(Dilated Convolution)和膨胀卷积实际上是同一个概念的不同称呼。这种卷积方法通过引入一个扩张率(dilation rate)参数来控制卷积核元素之间的间隔,从而有效地扩大感受野,而不增加卷积核的参数数量[^2]。 在传统卷积中,卷积核的元素是连续的,而在扩张卷积中,卷积核的元素之间可以有间隔。这个间隔由扩张率决定。例如,一个3×3的卷积核在扩张率为2的情况下,其有效感受野会变成5×5(中间有空洞),而不是传统的3×3。这种机制允许网络在不增加参数数量的情况下捕获更广泛的上下文信息,这对于语义分割、时间序列预测等任务非常有用[^2]。 具体来说,如果将多个扩张卷积层堆叠起来,并合理设计每一层的扩张率,可以使网络拥有非常大的感受野,从而捕捉到更大范围的上下文信息,这对于保持高分辨率的特征图和提高模型性能是非常有益的[^1]。 ### 示例代码 以下是一个使用PyTorch实现的简单扩张卷积层的示例: ```python import torch import torch.nn as nn # 定义一个扩张卷积层 class DilatedConvolution(nn.Module): def __init__(self, in_channels, out_channels, kernel_size, dilation): super(DilatedConvolution, self).__init__() self.conv = nn.Conv2d(in_channels, out_channels, kernel_size, padding=dilation, dilation=dilation) def forward(self, x): return self.conv(x) # 创建一个输入张量 input_tensor = torch.randn(1, 1, 10, 10) # batch_size=1, in_channels=1, height=10, width=10 # 创建一个扩张卷积层实例 dilated_conv_layer = DilatedConvolution(in_channels=1, out_channels=1, kernel_size=3, dilation=2) # 前向传播 output_tensor = dilated_conv_layer(input_tensor) print(output_tensor.shape) # 输出形状 ``` 在这个例子中,`nn.Conv2d`的`dilation`参数被设置为2,这意味着卷积核的元素之间会有两个像素的间隔。`padding`参数也被相应地调整,以确保输出的尺寸与输入一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值