[Deeplearning]dwconv

本文详细介绍了深度卷积(DWConv)网络,它由深度可分离卷积(Depthwise Convolution)和点卷积(Pointwise Convolution)两部分组成。深度可分离卷积首先对每个通道单独进行卷积,然后通过点卷积将不同通道的特征融合,以减少计算参数量。Yolo系列模型中就应用了这种结构。
摘要由CSDN通过智能技术生成

dwconv 

是由一个两部分卷积组成的一个网络

第一部分是depthwise conv 是分通道的一个卷积 就是每个卷积核对应input的每一个通道 有图好理解很多 如下

 图源https://blog.csdn.net/tintinetmilou/article/details/81607721

因为上面每个层的特征都分开 没有有效的利用相同空间位置上不同层的有效信息,所以有了第二部分

第二部分是pointwise conv

它将第一部分各自独立的featuremap进行组合生成了新的

它是一个kernelsize为1,通道数为input通道数的一个卷积,具体如图

这里写图片描述

  图源https://blog.csdn.net/tintinetmilou/article/details/81607721

这个dwconv主要是为了降低卷积运算参数量。

但具体参数量计算请看 https://yinguobing.com/separable-convolution/#fn2

yolo系列里的代码如下

class DWConv(nn.Module):
    """Depthwise Conv + Conv"""
    def __init__(self, in_channels, out_channels, ksize, stride=1, act="silu"):
        super().__init__()
        self.dconv = BaseConv(
            in_channels, in_channels, ksize=ksize,
            stride=stride, groups=in_channels, act=act
        )
        self.pconv = BaseConv(
            in_channels, out_channels, ksize=1,
            stride=1, groups=1, act=act
        )

    def forward(self, x):
        x = self.dconv(x)
        return self.pconv(x)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值