0
点赞
收藏
分享

微信扫一扫

Redis部署之哨兵

目录

一、模型介绍

1.1摘要

1.2模型概要

1.2.1Programmable Gradient Information

(1)Auxiliary Reversible Branch

(2)Multi-level Auxiliary Information

1.2.2Generalized ELAN

二、环境配置

三、数据集准备

四、预训练权重下载

五、训练

六、模型评估

​七、模型推理


论文:yolov9

模型:yolov9

一、模型介绍

1.1摘要

今天的深度学习方法关注的是如何设计最合适的目标函数,使模型的预测结果最接近地面的真实情况。同时,必须设计一个适当的体系结构,以方便获取足够的预测信息。现有方法忽略了一个事实,即输入数据在逐层进行特征提取和空间变换时,会丢失大量的信息。本文将深入研究数据在深度网络中传输时的重要数据丢失问题,即信息瓶颈和可逆函数。我们提出了可编程梯度信息(PGI)的概念,以应对深度网络实现多个目标所需的各种变化。PGI可以为目标任务提供完整的输入信息来计算目标函数,从而获得可靠的梯度信息来更新网络权值。此外,设计了一种新的基于梯度路径规划的轻量级网络结构——广义高效层聚合网络(GELAN)。GELAN的架构证实了PGI在轻量化模型上取得了卓越的成果。我们在基于MS COCO数据集的目标检测上验证了提出的GELAN和PGI。结果表明,与基于深度卷积的最新方法相比,GELAN仅使用常规卷积算子可以获得更好的参数利用率。PGI可用于从轻型到大型的各种模型。它可以用来获取完整的信息,使得从头开始训练的模型比使用大数据集预训练的最先进的模型获得更好的结果。

1.2模型概要

1.2.1Programmable Gradient Information

我们提出了一种新的辅助监督框架,称为可编程梯度信息(Programmable Gradient Information, PGI),如图3 (d)所示。PGI主要包括三个部分,即(1)主分支,(2)辅助可逆分支,(3)多级辅助信息。从图3 (d)可以看出,PGI的推理过程只使用了主干分支,因此不需要任何额外的推理成本。至于其他两个组件,它们用于解决或减缓深度学习方法中的几个重要问题。其中,设计了辅助可逆分支来解决神经网络深度化带来的问题。网络深化会造成信息瓶颈,使损失函数无法产生可靠的梯度。对于多级辅助信息,设计用于处理深度监督带来的误差积累问题,特别是针对多预测分支的架构和轻量化模型。接下来,我们将逐步介绍这两个组件。

(1)Auxiliary Reversible Branch
(2)Multi-level Auxiliary Information

1.2.2Generalized ELAN

在本节中,我们描述了提出的新网络架构- GELAN。通过结合CSPNet[64]和ELAN[65]这两种采用梯度路径规划设计的神经网络架构,我们设计了兼顾轻量级、推理速度和准确性的广义高效层聚合网络(GELAN)。它的整体架构如图4所示。我们将最初仅使用卷积层堆叠的ELAN[65]的能力推广到可以使用任何计算块的新架构。

二、环境配置

创建环境:

conda create -n yolov9 python=3.8

激活环境:

conda activate yolov9

注意!!requirments中的torch和torchvision下载完后为cpu版本,不能用!!

此时,有一种方法,先下requirements中的包,然后卸载torch和torchvison,然后下载对应cuda版本的gpu的torch和torchvison。

pip install -r requirements.txt -i https://mirrors.bfsu.edu.cn/pypi/web/simple/
pip uninstall torch
pip uninstall torchvision

我的cuda版本是11.3,大家根据自己的cuda版本进行下载:

pip install torch==1.12.0+cu113 torchvision==0.13.0+cu113 --extra-index-url https://download.pytorch.org/whl/cu113

三、数据集准备

准备下面格式的数据集

其中,fall.yaml文件内容如下,路径,类别以及类别数量需要根据自己的进行修改:

train: C:/Users/24480/Desktop/yolov9-main/data/pp_fall/train/images
val: C:/Users/24480/Desktop/yolov9-main/data/pp_fall/val/images
test: C:/Users/24480/Desktop/yolov9-main/data/pp_fall/test/images

# number of classes
nc: 1


# class names
names: ['fall']

四、预训练权重下载

目前只能下载YOLOv9-C和YOLOv9-E

五、训练

如果加载的是YOLOv9-C的预训练权重的话,需要修改yolov9-c.yaml

修改train_dual.py中的参数

然后运行

训练结束,保存在下面这个路径下:

六、模型评估

修改val_dual.py的参数


七、模型推理

修改detect.py中的参数

此时会发现报错:

bug解决:

修改general.py,将903行prediction = prediction[0]改为prediction = prediction[0][1]

问题解决

大佬链接:

大佬1

大佬2

举报

相关推荐

0 条评论