Yolov5中使用Resnet18作为主干网络

这篇具有很好参考价值的文章主要介绍了Yolov5中使用Resnet18作为主干网络。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Yolov5中使用Resnet18作为主干网络

预备知识

采用Resnet-18作为主干网络,首先第一件事情就要了解Resnet的网络结构
Yolov5中使用Resnet18作为主干网络
以及resnet-18中的残差层是做什么的
Yolov5中使用Resnet18作为主干网络
引入残差层是为了解决伴随着层数的递增,而出现的梯度消失的问题,从而引入了残差层即
在sigmoid中其激活函数
S ( x ) = 1 1 + e − x S ‘ ( x ) = S ( x ) ( 1 − S ( x ) ) S(x)=\frac{1}{1+e^{-x}}\\ S`(x)=S(x)(1-S(x)) S(x)=1+ex1S(x)=S(x)(1S(x))
自此可以看出S’(x)最大就是0.5
而原层数会伴随着迭代次数而逐渐相乘即越来越小从而出现梯度消失
但残差曾的意义是让其再加一个,变成一个大于1的数字从而抵抗梯度消失
z = y + x ∂ z ∂ x = ∂ y ∂ x + 1 z=y+x\\ \frac{\partial z}{\partial x}=\frac{\partial y}{\partial x}+1 z=y+xxz=xy+1

如何在yolo中进行修改

首先在commmon.py添加残差层

class BasicBlock(nn.Module):
    def __init__(self,in_channels,out_channels,stride=1,padding=1) -> None:
        super(BasicBlock, self).__init__()

        self.layer = nn.Sequential(
            nn.Conv2d(in_channels,out_channels,kernel_size=3,stride=1,padding=padding,bias=False),
            nn.BatchNorm2d(out_channels),
            nn.ReLU(inplace=True), 
            nn.Conv2d(out_channels,out_channels,kernel_size=3,stride=1,padding=padding,bias=False),
            nn.BatchNorm2d(out_channels)
        )
        self.shortcut = nn.Sequential()
        if stride != 1 or in_channels != out_channels:
            self.shortcut = nn.Sequential(

                nn.Conv2d(in_channels, out_channels, kernel_size=1, stride=1, bias=False),
                nn.BatchNorm2d(out_channels)
            )

    def forward(self, x):
        out = self.layer(x)
        out += self.shortcut(x)
        out = torch.nn.functional.relu(out)
        return out

然后再yolo.py中那一串层里面添加一个BasicBlock层
最后在你现用的模型主干里面替换即可

  [[-1, 1, Conv, [64, 1]],  

   [-1, 2, BasicBlock, [64]],  

   [-1, 1, Conv, [128, 3, 2]],

   [-1, 2, BasicBlock, [128]],

   [-1, 1, Conv, [256, 3, 2]],

   [-1, 2, BasicBlock, [256]],

   [-1, 1, Conv, [512, 3, 2]],

   [-1, 2, BasicBlock, [512]],

   [-1, 1, Conv, [1024, 3, 2]],

   [-1, 2, BasicBlock, [1024]],

  ]

然后打开tensorboard

但不知道为什么修改了网络模型结构,在原始的yolov5中召回、精确啥的都等于零,可能是原版本的bug,底下这个是我在yolov7模型修改过的东西。
Yolov5中使用Resnet18作为主干网络
就很棒nice。
哦,对啦,如果不会修改模型路径,在这个里面改,还要把上边的pt文件给删掉文章来源地址https://www.toymoban.com/news/detail-405408.html

parser.add_argument('--weights', type=str, default= '', help='initial weights path')
parser.add_argument('--cfg', type=str, default=‘你模型的路径’,, help='model.yaml path')

到了这里,关于Yolov5中使用Resnet18作为主干网络的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv5算法改进(13)— 替换主干网络之PP-LCNet

    前言: Hello大家好,我是小哥谈。 PP-LCNet是一个由百度团队针对Intel-CPU端加速而设计的轻量高性能网络。它是一种基于MKLDNN加速策略的轻量级卷积神经网络,适用于多任务,并具有提高模型准确率的方法。与之前预测速度相近的模型相比,PP-LCNet具有更高的准确性。此外,对

    2024年02月10日
    浏览(45)
  • YOLOv5改进实战 | 更换主干网络Backbone(一)之轻量化网络Ghostnet

    前言 轻量化网络设计 是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝 :移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。 分组卷积 :将卷积操作分解为若干个较小的卷积操作,并将它们分

    2024年02月05日
    浏览(45)
  • YOLOv5改进 | 主干篇 | 12月份最新成果TransNeXt特征提取网络(全网首发)

    本文给大家带来的改进机制是 TransNeXt特征提取网络 , 其发表于2023年的12月份是一个最新最前沿的网络模型 ,将其应用在我们的特征提取网络来提取特征,同时本文给大家解决其自带的一个报错,通过结合聚合的像素聚焦注意力和卷积GLU,模拟生物视觉系统,特别是对于中心

    2024年01月18日
    浏览(77)
  • YOLOv5改进之替换Backbone为ResNet50

    BestYOLO:https://github.com/WangRongsheng/BestYOLO BestYOLO是一个以科研和竞赛为导向的最好的YOLO实践框架! 目前BestYOLO是一个完全基于YOLOv5 v7.0 进行改进的开源库,该库将始终秉持以落地应用为导向,以轻便化使用为宗旨,简化各种模块的改进。目前已经集成了基于torchvision.models 模型为

    2024年02月05日
    浏览(47)
  • 【目标检测】yolov5改进系列:主干网络中添加SE注意力机制网络

    写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 CNN网络中,图像或者说特征图Feature Map的特征主要分为空间特征(Spatial)和通道(Channel)特征。对于空间

    2023年04月16日
    浏览(45)
  • YOLOv5改进 | 主干篇 | 华为GhostnetV1一种移动端的专用特征提取网络

    本文给大家带来的改进机制是华为移动端模型 Ghostnetv1 ,华为GhostnetV1一种移动端的专用特征提取网络,旨在在计算资源有限的嵌入式设备上实现高性能的图像分类。 GhostNet的关键思想 在于通过引入Ghost模块,以较低的计算成本增加了特征图的数量,从而提高了模型的性能。这

    2024年01月21日
    浏览(47)
  • YOLOv5改进实战 | 更换主干网络Backbone(四)之轻量化模型MobileNetV3

    前言 轻量化网络设计 是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝 :移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。 分组卷积 :将卷积操作分解为若干个较小的卷积操作,并将它们分

    2024年02月07日
    浏览(47)
  • YOLOv5改进系列(21)——替换主干网络之RepViT(清华 ICCV 2023|最新开源移动端ViT)

    【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制 YOLOv5改进系列(2

    2024年02月12日
    浏览(73)
  • 改进YOLOv5系列:4.YOLOv5_最新MobileOne结构换Backbone修改,超轻量型架构,移动端仅需1ms推理!苹果最新移动端高效主干网络

    本专栏包含大量的首发原创改进方式🚀, 所有文章都是全网首发内容。🌟 降低改进难度,改进点包含最新最全的 Backbone 部分、 Neck 部分、 Head 部分、 注意力机制 部分、 自注意力机制 部分等完整教程 🚀 💡本篇文章基于 YOLOv5、YOLOv7、YOLOv7-Tiny 进行 最新MobileOne结构换Backbon

    2024年02月02日
    浏览(41)
  • 改进YOLOv5:自研网络新结构,可作为创新点 | ALFNet YOLO | 创新必备

    在计算机视觉领域,深度学习已经取得了显著的进展,尤其是在目标检测任务中。然而,随着网络结构不断加深和复杂化#

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包