(超详细)3-YOLOV5改进-添加SE注意力机制

1、在yolov5/models下面新建一个SE.py文件,在里面放入下面的代码
在这里插入图片描述
在这里插入图片描述

代码如下:

import numpy as np
import torch
from torch import nn
from torch.nn import initclass SEAttention(nn.Module):def __init__(self, channel=512,reduction=16):super().__init__()self.avg_pool = nn.AdaptiveAvgPool2d(1)self.fc = nn.Sequential(nn.Linear(channel, channel // reduction, bias=False),nn.ReLU(inplace=True),nn.Linear(channel // reduction, channel, bias=False),nn.Sigmoid())def init_weights(self):for m in self.modules():if isinstance(m, nn.Conv2d):init.kaiming_normal_(m.weight, mode='fan_out')if m.bias is not None:init.constant_(m.bias, 0)elif isinstance(m, nn.BatchNorm2d):init.constant_(m.weight, 1)init.constant_(m.bias, 0)elif isinstance(m, nn.Linear):init.normal_(m.weight, std=0.001)if m.bias is not None:init.constant_(m.bias, 0)def forward(self, x):b, c, _, _ = x.size()y = self.avg_pool(x).view(b, c)y = self.fc(y).view(b, c, 1, 1)return x * y.expand_as(x)

2、找到yolo.py文件,进行更改内容
在27行加一个from models SE import SEAttention, 保存即可
在这里插入图片描述

3、找到自己想要更改的yaml文件,我选择的yolov5s.yaml文件(你可以根据自己需求进行选择),将刚刚写好的模块SEAttention加入到yolov5s.yaml里面,并更改一些内容。更改如下
在这里插入图片描述
4、在yolo.py里面加入两行代码(332-333)
保存即可!
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9eb88534be044a3d8d0f3bd3b4262f07.png
运行一下,发现出来了SEAttention
在这里插入图片描述
到处完成,跑100epoch,不知道跑到什么时候!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/342702.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

羊奶的奶源,解密优质健康的来源

羊奶的奶源,解密优质健康的来源 羊奶一直被视为高品质、健康的乳制品,备受消费者的喜爱。作为一位消费者,你一定也想了解羊奶的奶源,究竟是如何保障了这种优质与健康呢?下面小编羊大师就带大家一同了解一下。 我们需…

Python 爬虫常用的库或工具推荐

在数据驱动的时代,Python爬虫技术以其简单易用、强大灵活的特性成为数据采集的有效手段,越来越多人加入了学习Python的队伍中,今天,我们就为大家推荐一些常用的Python爬虫库和工具,以备不时之需。 1.库 Requests库&am…

抽奖机制模型及算法

抽奖机制 连抽保底概率模型不中概率加大模型(抽卡保底) 抽奖概率为n%,在达到某次次数后,每次概率比上次高m%,直至达到保底次数(概率累加和为100%),当抽到极品道具时候,…

Mac 下载 nvm 后执行nvm -v 命令报错 nvm: command not found

1、问题:Mac 使用命令下载nvm 成功后执行 nvm -v 查看,报错:nvm command not found 2、原因:可能是系统更新后,默认的 shell 是 zsh,所以找不到配置文件 3、解决:可添加编辑.bash_profile 和 …

从无到有制作docker镜像、容器详细步骤

1、编写一个Dockerfile文件,内容如下 # 基础镜像jdk,jdk里包含里操作系统 FROM openjdk:8u282-jdk# 工作目录,也就是容器里目录 WORKDIR /home/prq/# 添加ppp目录下的文件到容器/home/prq/里 ADD ./ppp /home/prq/# 暴露端口8080 EXPOSE 8080# 启动脚本…

vue前端开发自学,组件的嵌套关系demo

vue前端开发自学,组件的嵌套关系demo!今天开始分享的,前端开发经常用到的,组件的嵌套关系案例代码。下面先给大家看看,代码执行效果。 如图,这个是代码执行后,的效果布局! 下面给大家贴出来源码。方便大家…

String有没有最大长度限制?

大家都用过String字符串,有的人可能还不知道它的长度在某些方面是有一些限制。 public String(byte bytes[], int offset, int length);这是java.lang.String中的一个构造函数,可以看到它的长度是int类型,int的最大取值是2^31-1.但是我们却不…

redis 从0到1完整学习 (十七):内存回收之内存淘汰策略

文章目录 1. 引言2. redis 源码下载3. 内存回收策略4. 如何设置内存淘汰策略4.1 在 Redis 配置文件设置(推荐重启后生效)4.2 运行时动态调整 5. 参考 1. 引言 前情提要: 《redis 从0到1完整学习 (一):安装…

【java八股文】之MYSQL基础篇

1、数据库三大范式是什么 第一范式:每个列都不可以再拆分。 第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。 第三范式:在第二范式的基础上,非主键列只依赖于主键&#…

2024 IAA增长变现玩法拆解,NetMarvel提出进阶版攻略!

2023年的国内外市场,很多大甲方都表示消极,字节游戏业务高歌猛进后大撤退更是直接震惊了整个行业,更别说第二第三梯队的服务商了。 动荡和低迷的经济局势还没有消散,这给开发者带来接连不断的挑战。 01 市场反馈是正向的&#x…

VS Code 配置 Vue3 模板 详细步骤

1、打开 VS Code ,在页面左下角找到这个设置图标,然后找到 “用户代码片段” 2、接着点击 “新建全局代码片段文件” 3、在输入框中输入你要设置的模板名,然后回车确认 4、接下来配置自己想要模板代码,或者也可以借鉴我写的这个&…

JavaScript(第二篇)浮点数运算精度问题,一网打尽所有相关面试题

前言 本篇文章是《面试题一网打尽》专栏的 javascript 第二篇文章,彻底解决浮点数运算精度相关的面试题目。欢迎大家关注我的这个专栏。 一、IEEE 754 标准 我们经常在文档中看到这个标准感觉是什么高深的东西,其实 IEEE 是一个组织类似公司名称&…