DLGSANet论文笔记

https://neonleexiang.github.io/DLGSANet/

motivation:

Transformer的计算量较大;

Transformer的softmax需要利用所有的Q和K计算相似度,其中可能存入了消极的特征。

contribution:

设计了一个提取特征的模块:MHDLSA

设计了一个计算自注意力的模块:DLGSANet

设计的网络模型小于5M,达到了质量和速度的平衡。(如下图所示)

method:

网络整体图:

输入图像->3x3j卷积(提取浅层特征模块)->6个残差连接的RHDTG模块->3x3卷积->残差连接->3x3连接->亚像素卷积(pixelshuffle)

其中RHDTG模块由4个HDTB模块组成,HDTB由特征提取模块(MHDLSA)和 自注意力模块(SparseGSA)构成。

MHDLSA:


(Yin Yin.size()=BxCxHxW)
 1.Yin 经过LayerNorm层
 2.进入1x1卷积,此时通道数不变
 3.进入1x1卷积,此时通道数由C->yC (y表示缩放因子,查看代码发现设置为4)
 4.进入7x7DWConv 分组卷积 组数是G,G等于输入通道数, 卷积的维度为yCx1x7x7 ,相当于有yc个1x7x7卷积核对特征的每个通道进行并行卷积。
 5.进入1x1卷积,此时通道数从yc->Gx7x7 得到Yout Yout.size()为HxWxGx7x7
 6.提取权重W Gx7x7 

1.Layernorm

2. 1x1conv

3. 3x3DwConv分组卷积,组数是C 卷积的维度为Cx1x3x3 ,得到输出后使用chunk函数,分成两个通道数相同的x1,x2

4.将x1激活后的结果与x2相乘 

Sparse GSA:

右边和上个模块是一致的,不赘述了。

左边: 

1.LayerNorm

2.3x3DwConv分组卷积,组数是C 卷积的维度为Cx1x3x3 ,得到输出后使用chunk函数,分成三个个通道数相同的x1,x2,x3,在图上分别表示为V,K,Q。 size为BxCxHxW

3.使用reshape函数 将V,K,Qsize转换为 BxCx(HxW)  

4.对K和Q的最后一个维度进行归一化操作。size变成BxCx1

4.其中α是一个可学习的参数,如图公式,Q转置和K相乘 得到A,Asize为CxC.

5.使用ReLU函数而不是SoftMax函数,应为ReLU函数可以去除负数,从而去除无用的自关注。

(看了之后不理解的点:

Q和K相乘之后产生的负数多吗?

为什么去除负数就是可以去除无用的自关注呢?)

论文后面有个可视化的结果和实验数据比较:

可以从可视化结果中看出:使用SoftMax保留特征聚合的所有自关注值;使用ReLU函数可以看出保留了更多主要结构的自关注值,而删除了部分自关注值(比如黑色的部分)

(使用ReLU之后保留了更多自关注的值吗,看图感觉不太出来。

修改函数之后的增益感觉不太大。)

experience:

体现DLGSANet模型PSNR指标在常见数据集和其他网络的比较结果。

第一行表示:在HDTB中使用两个MHDLSA模块;

第二行表示:在HDTB中使用两个SparseGSA模块;

第三行表示:在HDTB中使用一个MHDLSA和一个Sparse模块。

感觉指标增加的都好少。 

w/MHSA是普通的窗口卷积;

但是看结果感觉使用MHDLSA,SparseGSA的增益也比较小。 

NVIDIA GeForce RTX 3090 gpu的运行时间评估。 

总结:

1.ReLU函数能去除无用的消极特征,还是不太理解这是为什么?或许可以看一下A的结果负值是不是很多。

2.熟悉了一下分组卷积和动态卷积的操作。

3.提出一个多头动态局部自我注意(MHDLSA)模块,动态地提取局部特征;

4.提出了一个轻量级的SISR模型,称为DLGSANet,所提出的模型具有较少的网络参数(<5M),需要较低的计算成本,同时产生有竞争力的性能;

5.有效的稀疏的全局自我注意模块(SparseGSA),能提供最有效的相似度值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值