深度学习Tricks,第一时间送达
论文地址:https://arxiv.org/pdf/2007.11824.pdf
代码地址:https://github.com/megvii-model/FunnelAct
ECCV2020 | FReLU:旷视提出一种新的激活函数,实现像素级空间信息建模
该作者提出了一种用于图像识别任务的简单但有效的激活函数,称为Funnel 激活函数(FReLU),它通过增加可忽略的空间条件开销将ReLU和PReLU扩展为2D激活函数。主要的创新点:在激活函数阶段实现像素级的空间信息建模能力,能够用于目标检测、语义分割等目标识别任务,简单又高效!
对ImageNet数据集、COCO数据集检测任务和语义分割任务进行了实验,展示了FReLU激活函数在视觉识别任务中的巨大改进和鲁棒性。
作者提出的FReLU(Funnel ReLU ——漏斗ReLU)非线性激活函数,在只增加一点点的计算负担的情况下,将ReLU和PReLU扩展成2D激活函数。具体的做法是将max()函数内的条件部分(原先ReLU的x<0部分)换成了2D的漏斗条件(代码主要通过DepthWise Separable Conv + BN 实现),解决了激活函数中的空间不敏感问题,使规则(普通)的卷积也具备捕获复杂的视觉布局能力,使模型具备像素级建模的能力。
YOLOv5/YOLOv7更换FReLU激活函数:
1.找到YOLOv5/YOLOv7的utils/activations.py文件,添加想要替换的激活函数。下面以FReLU激活函数为例,复制粘贴即可。
# FReLU https://arxiv.org/abs/2007.11824 -------------------------------------------------------------------------------
class FReLU(nn.Module):
def __init__(self, c1, k=3): # ch_in, kernel
super().__init__()
self.conv = nn.Conv2d(c1, c1, k, 1, 1, groups=c1, bias=False)
self.bn = nn.BatchNorm2d(c1)
def forward(self, x):
return torch.max(x, self.bn(self.conv(x)))
2.打开common.py文件,修改Conv以及BottleneckCSP模块,将激活函数由原来的SiLU更换为FReLU激活函数。
其他激活函数替换方法与此相同,直接调用即可。小伙伴们改进过程有问题可直接call博主~
关于算法改进及论文投稿可关注并留言博主的CSDN/QQ
>>>一起交流!互相学习!共同进步!<<<
版权归原作者 加勒比海带66 所有, 如有侵权,请联系我们删除。