论文地址:Omni-Dimensional Dynamic Convolution | OpenReview
代码地址:https://github.com/OSVAI/ODConv/blob/main/modules/odconv.py
1.是什么?
ODConv是一种动态卷积算法,它的原理是在卷积过程中,根据输入数据的特征动态地调整卷积核的形状和大小,以适应不同的输入数据。具体来说,ODConv通过引入一个可学习的形变模块,根据输入数据的特征动态地调整卷积核的形状和大小,从而提高了卷积神经网络的性能。与CondConv和DyConv不同,ODConv不仅考虑了空间维度、输入通道维度和输出通道维度,还考虑了卷积核的形状和大小,因此可以更好地适应不同的输入数据。
2.为什么?
常规卷积只有一个静态卷积核且与输入样本无关。对于动态卷积来说,它对多个卷积核进行线性加权,而加权值则与输入有关,这就使得动态卷积具有输入依赖性。它可以描述如下:

尽管动态卷积的定义很简单,但CondConv与DyConv的实现是不相同的,主要体现在计算的结构
训练策略以及实施动态卷积的层,这些实现上的差异导致了不同的模型精度、模型大小以及推理效率。
- 两者均为
采用了类SE架构,但CondConv采用的是Sigmoid,而DyConv采用的是Softmax;
- DyConv采用的退化策略进行训练以抑制Softmax的one-hot输出;
- 对于他们嵌入的CNN架构,CondConv替换了最后几个模块的卷积与全连接层,而DyConv则对除第一个卷积外的其他卷积均进行了替换。
根据动态卷积的公式来看,动态卷积有两个基本元素:
- 卷积核
;
- 用于计算注意力{
}的注意力函数
给定n个卷积核,其对应的核空间有以下四个维度:
- 空间核尺寸k×k;
- 输入通道数
- 输出通道数
- 卷积核数量n
然而,对于CondConv与DyConv来说,均采用单个注意力标量
,这就意味着它的的输出滤波器
∈
对于输入具有相同的注意力值。换句话说,卷积核
的空间维度、输入通道维度以及输出通道维度均被CondConv与DyConv所忽视了。这就导致了关于核空间的粗糙探索。这可能就是为什么Co

本文介绍了Omni-DimensionalDynamicConvolution(ODConv),一种动态卷积算法,能根据输入数据自适应调整卷积核的形状和大小。相比于传统卷积,ODConv通过多维注意力机制增强特征提取,适用于各种网络规模,实验证明其在ImageNet和COCO任务中表现优秀。
最低0.47元/天 解锁文章
1096

被折叠的 条评论
为什么被折叠?



