更换YOLOv5激活函数

本文介绍如何在YOLOv5的models/common.py中将默认的SiLU激活函数替换为MetaAconC,以期提升模型性能。通过实例代码展示修改过程,并分享了作者对不同激活函数的实验结果供读者参考和交流。

YOLOv5代码库中激活函数有很多,目前v6.1作者使用的是SiLU ,因为目前本人在水硕,导师要求发一篇核心,就想在YOLOv5上改改,试一试能不能增加性能,但是搜了一下发现好像这类博客比较少,所以打算自己写一下,也为了自己今后查的时候方便一些。

主要更改点在 models/common.py中

先导入自己想更换的激活函数(我这里以MetaAconC为例,也就是说我想把SiLU更换为MetaAconC激活函数)

第二步:如图所示,更换SiLU即可。

要是你想更换其他激活函数我这里把实例贴出来,选择你自己的想更换的激活函数,照着下面代码的改就可以了

# self.act = nn.Identity() if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 
        # self.act = nn.Tanh() if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 
        # self.act = nn.Sigmoid() if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 
        # self.act = nn.ReLU() if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 
        # self.act = nn.LeakyReLU(0.1) if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 
        # self.act = nn.Hardswish() if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 
        # self.act = nn.SiLU() if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 
        # self.act = Mish() if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 
        # self.act = FReLU(c2) if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 
        # self.act = AconC(c2) if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 
        # self.act = MetaAconC(c2) if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 
        # self.act = SiLU_beta(c2) if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 
        # self.act = FReLU_noBN_biasFalse(c2) if act is True else (act if isinstance(act, nn.Module) else nn.Identity())
        # self.act = FReLU_noBN_biasTrue(c2) if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) 

 上面是原作者进行的各种激活函数的实验,供大家参考

欢迎大家交流

参考来自:https://github.com/ultralytics/yolov5/issues/3013

评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值