UniRepLKNet: Universal Perception Large-Kernel ConvNet模型结构和代码结构解读

论文地址
代码地址

简介

核卷积和小核卷积

在ConvNet中,我们不断添加 3 × 3 { 3 \times 3 } 3×3或者 5 × 5 { 5 \times 5 } 5×5的小核卷积,:

  • 提升感受野范围,神经元可以接收到更广泛的信息,从而能够捕捉到更大范围内的特征;
  • 提高空间模式的抽象层次,小核卷积层通常能够捕捉到较为局部和低级的特征,如边缘和纹理。而通过增加卷积层,网络能够学习到更高层次的抽象特征;
  • 增强模型的表示能力,更深的网络通常能够捕捉到更复杂的数据结构,提高其在各种任务上的表示能力。

但是,作者有自己想法:

  • 增加卷积核的大小比堆叠更多层更有效地扩大感受野,通过少量的大核卷积层来构建足够大的感受野,节省计算资源用于其他更有效的结构;
  • 通过其他结构来提高网络的表示能力和抽象层次,而不是仅仅依赖于增加网络的深度;

关于网络设计

UniRepLKNet

作者针对上面的问题,提出了4条设计网络的指导方针:

  • 使用高效的结构增加深度:推荐使用如SE Blocks(Squeeze-and-Excitation Blocks)这样的结构来增加网络的深度,图中的(D)就是;
    SE-blocks - 使用“DilatedReparamBlock”重新参数化:提出了一种名为DilatedReparamBlock的结构,我个人理解,这就是把一个超大核心的卷积核,分解成一个个小的空洞卷积,在图中找到对应模块,我们可以发现大核kernel_size会对应不同的小核kernel_sizes列表和dilateds列表,由他们组合卷积的参数列表;
    DilatedReparamBlock
  • 根据下游任务决定卷积核大小:建议根据具体任务的需求来选择合适的卷积核大小,并通常只在网络的中间层和高层使用大型卷积核;
  • 在增加模型深度时添加3×3卷积:在扩展模型深度时,建议添加3×3的卷积层而不是更多的大型卷积核。

代码结构图

讲代码就太无聊了,直接把UniRepLKNetBackbone的结构图放出来吧,对着代码,就能明白了
下面是结合代码和网络模型的导图,仔细看,我很细的
在这里插入图片描述

由于版面限制,只能上传普通清晰度的结构图,高清大图请点这里

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值