本文以YOLOv5-6.1版本为例

一、Add

1.在common.py后加入如下代码

# 结合BiFPN 设置可学习参数 学习不同分支的权重
# 两个分支add操作
class BiFPN_Add2(nn.Module):def __init__(self, c1, c2):super(BiFPN_Add2, self).__init__()# 设置可学习参数 nn.Parameter的作用是:将一个不可训练的类型Tensor转换成可以训练的类型parameter# 并且会向宿主模型注册该参数 成为其一部分 即model.parameters()会包含这个parameter# 从而在参数优化的时候可以自动一起优化self.w = nn.Parameter(torch.ones(2, dtype=torch.float32), requires_grad=True)self.epsilon = 0.0001self.conv = nn.Conv2d(c1, c2, kernel_size=1, stride=1, padding=0)self.silu = nn.SiLU()def forward(self, x):w = self.wweight = w / (torch.sum(w, dim=0) + self.epsilon)return self.conv(self.silu(weight[0] * x[0] + weight[1] * x[1]))# 三个分支add操作
class BiFPN_Add3(nn.Module):def __init__(self, c1, c2):super(BiFPN_Add3, self).__init__()self.w = nn.Parameter(torch.ones(3, dtype=torch.float32), requires_grad=True)self.epsilon = 0.0001self.conv = nn.Conv2d(c1, c2, kernel_size=1, stride=1, padding=0)self.silu = nn.SiLU()def forward(self, x):w = self.wweight = w / (torch.sum(w, dim=0) + self.epsilon)  # 将权重进行归一化# Fast normalized fusionreturn self.conv(self.silu(weight[0] * x[0] + weight[1] * x[1] + weight[2] * x[2]))

2.yolov5s.yaml进行修改

# YOLOv5 												

将yolov5中的PANet层改为BiFPN相关推荐

  1. Yolov5中使用Resnet18作为主干网络

    Yolov5中使用Resnet18作为主干网络 预备知识 采用Resnet-18作为主干网络,首先第一件事情就要了解Resnet的网络结构 以及resnet-18中的残差层是做什么的 引入残差层是为了 ...

  2. YOLOv5中的SPP/SPPF结构详解

    深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删. 目录 一.SPP的应用的背景 二.SPP结构分析 三.SPPF结构分析 四.YOLOv ...

  3. 详解YOLOv5中的Bottleneck

    深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删. 目录 一.背景知识 -- 残差结构 二.Bottleneck和building blo ...

  4. (原)torch中微调某层参数

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6221664.html 参考网址: https://github.com/torch/nn/issues ...

  5. 解决 YOLOV5中SyntaxError: Non-ASCII character ‘\xf0‘ in file detect.py

    SyntaxError: Non-ASCII character '\xf0' in file detect.py 出现这种原因并不是编码的问题.(YOLOV5中) 首先说为什么不是编码的问题,由于我 ...

  6. oracle数据库有哪些文件构成,Oracle数据库架构中包括几层?每层都有什么元素?...

    Oracle数据库架构中包括几层?每层都有 什么元素? 1 PL/SQL代表 A PROCEDURAL LANGUAGE/SQL B PROGRAM LANGUAGE SQL C POWER LANG ...

  7. 求二叉树中第K层结点的个数

    一,问题描述 构建一棵二叉树(不一定是二叉查找树),求出该二叉树中第K层中的结点个数(根结点为第0层) 二,二叉树的构建 定义一个BinaryTree类来表示二叉树,二叉树BinaryTree 又是由 ...

  8. matlab中,怎样把矩阵中所有的0改为2

    一句话搞定:>> a(find(a==0))=[2]:把矩阵中所有的0改为2 转载于:https://www.cnblogs.com/zhizhan/p/3684034.html

  9. 如何修改计算机网络时间,在Win7系统中,电脑时间改不了怎么办?

    在近期有用户在更改计算机时间的时候,发现系统时间更改不了,并提示"无法继续,您没有执行此操作的权限.请联系的计算机管理员以获得帮助.".那么Win7电脑时间改不了怎么办?下面小编教 ...

最新文章

  1. 计算机二级ms office excel,计算机二级Msoffice考试excel答案.docx
  2. unity 骨骼击碎_保证击碎$ 100挑战的创新策略
  3. 编写EasyCluster V2.0 Portal主界面时的HTML心得(NOWRAP)
  4. PyQt5 技术篇-如何彻底删除控件?布局移除控件方法。
  5. WinRAR 注册方法
  6. arraylist删除指定元素_面试官:谈谈常用的Arraylist和Linkedlist的区别
  7. 关于Linux你了解多少?Linux由来!
  8. Android清单AndroidManifest详细说明
  9. Kubernetes集群上的Apache Ignite和Spring第2部分:Kubernetes部署
  10. WIN2003 X64 系统上安装sql server 2000 的步骤
  11. idea actiBPM插件生成png文件 (解决没有Diagrams或Designer选项问题)
  12. Mac怎么连接多个蓝牙音箱?
  13. 短视频平台、工具,新手在家用手机全程复制粘贴,一天收益247
  14. rails kaminari text modify
  15. task9-文件与文件系统
  16. 运维开发工程师的必备技能总结
  17. 鼠标参数以及选购DPI和报告率
  18. Centos更新内核
  19. 如何将本地图片转成图片链接
  20. 魏小亮:参加编程竞赛对实际工作的用处

热门文章

  1. Graph Neural Networks with Generated Parameters for Relation Extraction
  2. Vue3 tailwindui
  3. js 中文加密解密
  4. 清除一个挖矿程序、步骤!!!
  5. 给网页设计师和前端开发者看的前端性能优化
  6. NEXTCHIP概述-2
  7. 计算机一级word的知识点,计算机一级word操作知识点
  8. 分页插件PageHelper失效
  9. rtx java_如何使用JAVAWEB集成RTX推送消息
  10. 启发式算法的基础定义与了解