yolov5更换MobileNetV3的主干网络

news2024/11/5 15:30:24

目录

1.定义网络

 2.将test_MobileNetV3.py上面的代码复制粘贴到如下文件里面

2.1复制需要更改的原来的网络如何改结构

3.更改yolo.py注册网络 

1.定义网络

1. 宽度为0.5的mobilenetv2网络的结构图

在主干网络上面可以重新定义成三层,编号从0开始

 如图是MobileNetV3 的网络结构,要想重新定义的画需要保持每次输出图片的大小不变

 定义MobileNetV3 的代码如下,我们可以分为3层 test_MobileNetV3.py

import torch
from torch import nn
from torchvision import models
from torchinfo import summary
class MobileNetV3(nn.Module):
    def __init__(self, n):
        super().__init__()
        model = models.mobilenet_v3_small(pretrained=True)
        if n == 0:
            self.model = model
        if n == 1:
            self.model = model.features[:4]
        if n == 2:
            self.model = model.features[4:9]
        if n == 3:
            self.model = model.features[9:]

    def forward(self, x):
        return self.model(x)

if __name__ == '__main__':
    x = torch.randn(1, 3, 640, 640)
    net = MobileNetV3(0)
    out = net(x)
    print(x.shape)
    summary(net,(1,3,640,640))

feature代表的含义 

 

 2.将test_MobileNetV3.py上面的代码复制粘贴到如下文件里面

2.1复制需要更改的原来的网络如何改结构

从这些里面挑一个

做出如下更改

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license

# Parameters
nc: 80  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple
anchors:
  - [10,13, 16,30, 33,23]  # P3/8
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32

# YOLOv5 v6.0 backbone
backbone:
  # [from, number, module, args]
  [
    [-1, 1,MobileNetV3, [24, 1]],  # 0-P1/2
   [-1, 1,MobileNetV3, [48,2]],  # 1-P2/4
   [-1, 1,MobileNetV3, [576,3]],
  ]

# YOLOv5 v6.0 head
head:
  [[-1, 1, Conv, [512, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 1], 1, Concat, [1]],  # cat backbone P4
   [-1, 3, C3, [512, False]],  # 13

   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 0], 1, Concat, [1]],  # cat backbone P3
   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)

   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 7], 1, Concat, [1]],  # cat head P4
   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)

   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 3], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)

   [[10, 13, 16], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

下面几张图是解释

 

3.更改yolo.py注册网络 

如下位置

 添加如下代码,大概340行左右

还是在yolo.py文件里面更改这一句可以进行测试

run一下yolo.py

 更改完成!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在不同阶段选择合适的项目管理软件?

作为一个资深的产品经理,我有幸在过去的20多年里,接触过很多不同行业,从互联网行业、软件行业,到金融行业、制造行业,所积累的丰富经验让我对项目管理软件的选择有了更深入的了解和认识。 不同行业的项目管理痛点 每个…

如果要做一个重要的决定, 有什么好的方法可以让我做出正确的选择

做出重要决定时,以下方法可以帮助你做出更正确的选择: 文章目录 1. 收集信息和数据2. 制定明确的目标和标准3. 分析和评估选项4. 考虑长远利益5. 制定备选方案和应急计划6. 寻求意见和建议7. 直觉和情感的平衡8. 制定决策计划并执行 分析和评估选项1. 决…

【JavaEE】初步认识多线程

​ 🔥个人主页: 中草药 🔥专栏:【Java】登神长阶 史诗般的Java成神之路 🎷 一.线程 1.概念 线程(Thread)是在计算机科学中,特别是操作系统领域里的一个关键概念。它是操作系统能够进…

极狐GitLab 走进合肥,受邀参与合肥市政府举办的“开源聚力,合创未来”第一期活动

极狐GitLab 是 GitLab 在中国的发行版,专门面向中国程序员和企业提供企业级一体化 DevOps 平台,用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规,而且所有的操作都是在一个平台上进行,省事省心省钱。可以一键安装极狐GitL…

惊爆!英伟达那神秘的视频基础模型「Cosmos」竟然浮出水面,然而其数据居然是靠窃取得来!

🐱 个人主页:TechCodeAI启航,公众号:TechCodeAI 🙋‍♂️ 作者简介:2020参加工作,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫 优质专…

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——5Webscoket节点的使用

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——5Webscoket节点的使用 ​ 有了前面几篇文章的铺垫,现在已经可以实现我到手测试那一步的 1.解读usb_websocket_display.launch.py ​ 首先进入这个目录/root/dev_ws/src/origincar/originca…

WPF-MVVM架构

在WPF(Windows Presentation Foundation)开发中,MVVM(Model-View-ViewModel)是一种非常流行的设计模式,它旨在将应用程序的UI逻辑与业务逻辑和数据模型分离,从而提高代码的可维护性、可测试性和…

4.12.束搜索

束搜索 ​ 为了量化解码器的计算代价&#xff0c;用 y y y表示输出词表&#xff0c;其中包含 < e o s > <eos> <eos>&#xff0c;词表大小则为 ∣ y ∣ |y| ∣y∣&#xff0c;指定输出序列的最大词元数为 T ′ T T′&#xff0c;则我们的目标是从所有 O ( ∣…

同态加密和SEAL库的介绍(三)BFV - Batch Encoder

写在前面&#xff1a; 在上一篇中展示了如何使用 BFV 方案执行一个非常简单的计算。该计算在 plain_modulus 参数下进行&#xff0c;并且仅使用了 BFV 明文多项式中的一个系数。这种方法有两个显著的问题&#xff1a; 实际应用通常使用整数或实数运算&#xff0c;而不是模运算…

解决postGis无法打开的问题

问题 无法打开PostGIS PostGIS Bundle 3 for PostgreSQL x64 12 Shapefile and DBF Loader Exporter 弹出窗口 找不到libcrypto-1 postgis libcrypto libssl-1-x64等问题 解决方法 打开PostgreSQL安装目录下的Bin文件夹 查找缺少的文件 将其复制到 postgisgui 下 复制后即可…

网站建设网络公司如何选择

在选择网站建设网络公司时&#xff0c;需要考虑多个因素&#xff0c;以确保您的网站能够满足业务需求并取得成功。以下是一些建议&#xff0c;帮助您在选择网站建设网络公司时做出明智的决策。 首先&#xff0c;您应该考虑公司的经验和专业知识。选择一家有丰富经验的公司&…

实战从零开始实现Raft|得物技术

一、前言 Raft算法是一种分布式一致性算法&#xff0c;由Diego Ongaro和John Ousterhout在2013年提出。它主要用于分布式系统中&#xff0c;保证系统中的数据在多个节点间保持一致性。 Raft算法被广泛应用于众多分布式系统中&#xff0c;尤其是在需要强一致性保证的场景中&am…

【C++】-----多态及原理

目录 前言 一、是什么&#xff1f; 二、怎么样&#xff1f; Ⅰ、构成条件 Ⅱ、虚函数 Ⅲ、虚函数的重写 1.常规情况下 2.虚函数重写的三个例外 ①返回值的类型可以不同 ②析构函数的重写 ③子类虚函数可以不加virtual关键字(不建议) 3.override和final关键字 Ⅳ、重…

极米RS10 Plus VS当贝X5S Pro!最强客厅投影仪选当贝投影才是正解

不知道为什么&#xff0c;2024年的投影仪市场迭代迅猛&#xff0c;尤其是很多头部品牌小升级不断&#xff0c;机型后缀错综复杂让消费者更难下定决心做出抉择。而在今天又有一款新品极米RS10 Plus正式发布&#xff0c;同价位其实早前就有热门人气选手当贝X5S Pro坐镇&#xff0…

ChatGPT的封号和停止注册应对和常见问题丨出海笔记

ChatGPT "亚洲区封号"和“停止注册”的事情大家都听说过吧&#xff0c;我认为&#xff0c;官方有一定程度的“控频”&#xff0c;但并没有一杆子打死&#xff0c;更没有自媒体吹嘘的所谓封号和无法注册&#xff0c;因为我曾给朋友注册了2个以及升级plus成功&#xff…

MM 12 -采购- 成本中心采购

思维导图 说明 采购申请 手工或BPM接口创建 物料组&#xff1a; 必输 科目分配类别K &#xff0c;标签页会增加 科目分配 标签页 会计科目&#xff1a; 根据物料组带出 或者直接输入&#xff0c;根据情景。 成本中心需要填写。 采购订单 科目分配类别K &#xff0c;标签页会增…

【Windows】EFI系统盘重新安装操作系统遇到磁盘MBR分区解决办法

【Windows】EFI系统盘重新安装操作系统遇到磁盘MBR分区解决办法 1.背景2.问题3.解决 1.背景 本博客使用ventoy软件制作USB闪存启动盘。 相关博客&#xff1a; 【windows10】ventoy软件制作USB闪存启动盘-CentOS8 https://blog.csdn.net/jn10010537/article/details/123283985…

C到C++——C++基础

C是一种通用的、静态类型的、跨平台的编程语言。它是在1979年由Bjarne Stroustrup创建的&#xff0c;最初是作为C语言的扩展来支持面向对象编程。 C在保留C语言的特性的同时&#xff0c;添加了许多其他的功能&#xff0c;包括类、对象、继承、多态、模板等。这使得C成为了一种…

“金牌挑战——奥运知识大比拼”微信小程序线上知识竞赛答题活动复盘总结

一、活动背景 奥运会进行得如火如荼&#xff0c;为了弘扬奥运精神&#xff0c;激发公众对于奥林匹克运动的兴趣和热情&#xff0c;我们特别策划了“金牌挑战——奥运知识大比拼”线上知识竞赛活动。本次活动依托微信小程序&#xff0c;通过趣味性和互动性强的知识竞答&#xf…

SOPHGO算能科技BM1684盒子占用空间满的问题解决

目录 1 问题由来 2 问题排查与解决 1 问题由来 安装软件的时候发现&#xff0c;软件根本安装不上了&#xff0c;用df -h看到根目录已经满了 rootbm1684:~# df -h Filesystem Size Used Avail Use% Mounted on overlay 5.8G 5.7G 0 100% / devtmpfs …