YOLOv7--复现并训练自己的数据集(简单)

本文详细介绍了如何从官网下载Yolov7代码,上传至服务器,配置环境,包括安装依赖和数据集处理。遇到的错误如UnpicklingError和torch.meshgrid警告的解决方法也被分享。
摘要由CSDN通过智能技术生成

目录

1、官网下载代码

2、上传代码至服务器

3、配置环境

4、上传数据集

5、新建yaml文件

6、修改Yolov7.yaml文件

7、修改train.py文件

8、开始训练

9、复现Yolov7遇到的错误:


1、官网下载代码

 Yolov7代码下载网址:

https://github.com/WongKinYiu/yolov7/tree/main

2、上传代码至服务器

将代码上传到autodl云服务器上,上传步骤见博客:

上传数据到--云服务器Autodl_autodl上传项目-CSDN博客

3、配置环境

 使用autodl云服务器可以直接创建环境

在该环境中,进入到yolov7-main文件夹下:

安装依赖环境 requirements.txt,建议使用清华源安装,速度比较快,命令如下:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 

 等安装成功之后,就ok了。接下来就可以测验。

4、上传数据集

与Yolov7-main同目录下,创建一个datasets文件夹,将ua-detrac数据集上传到该文件夹下。

5、新建yaml文件

新建 ua-detrac.yaml 文件,代码如下:

注意:这里路径建议使用绝对路径,不然有可能会报错哦!!

train: /root/autodl-tmp/datasets/ua-detrac/images/train
val: /root/autodl-tmp/datasets/ua-detrac/images/val

nc: 4   
names:
  0: car
  1: bus 
  2: van
  3: others

将ua-detrac.yaml 文件上传到yolov7-main/data文件夹下: 

 

6、修改Yolov7.yaml文件

将yolov7.yaml 中的 nc 改为4

7、修改train.py文件

将红框内的改为ua-detrac.yaml

8、开始训练

运行train.py文件:

则,复现成功。

9、复现Yolov7遇到的错误:

1、出现下面错误:

Scaled weight_decay = 0.0005
Optimizer groups: 95 .bias, 95 conv.weight, 98 other
Traceback (most recent call last):
  File "train.py", line 616, in <module>
    train(hyp, opt, device, tb_writer)
  File "train.py", line 245, in train
    dataloader, dataset = create_dataloader(train_path, imgsz, batch_size, gs, opt,
  File "/root/autodl-tmp/yolov7-main/utils/datasets.py", line 69, in create_dataloader
    dataset = LoadImagesAndLabels(path, imgsz, batch_size,
  File "/root/autodl-tmp/yolov7-main/utils/datasets.py", line 392, in __init__
    cache, exists = torch.load(cache_path), True  # load
  File "/root/miniconda3/lib/python3.8/site-packages/torch/serialization.py", line 595, in load
    return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
  File "/root/miniconda3/lib/python3.8/site-packages/torch/serialization.py", line 764, in _legacy_load
    magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: STACK_GLOBAL requires str

解决方法:

删除数据集labels文件中的.cache文件,需要先删除。

 感谢博客:在跑YOLOv7的官方代码时,出现了这个错误:_pickle.UnpicklingError: STACK_GLOBAL requires str-CSDN博客

2、出现UserWarning: torch.meshgrid 错误

解决方法:找到虚拟环境下的functional.py文件,在下图的位置上加上

,indexing = 'ij' 

推荐博客:UserWarning: torch.meshgrid_userwarning: torch.meshgrid: in an upcoming releas-CSDN博客 

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
complex-yolov4-pytorch是一个基于PyTorch实现的复杂目标检测算法,其复现过程涉及到模型结构、参数设置以及训练测试流程等多个方面。 首先,复现complex-yolov4-pytorch需要详细了解论文中提出的模型结构和损失函数等细节,然后根据论文中的描述在PyTorch框架下构建模型,包括网络层的搭建、激活函数的选择等,并且要注意模型参数的初始化和正则化操作。 其次,对于训练数据的处理也是复现过程中的重要环节,需要根据论文中提供的数据集或自己的数据集进行预处理,包括数据增强、标签生成等操作,以及构建数据加载器并进行合适的数据分割。 接着,需要根据论文中给出的训练策略和超参数设置来实现模型的训练过程,包括学习率的调度、优化器的选择、损失函数的定义等,同时要注意在训练过程中记录和保存模型参数和训练日志。 最后,针对复现模型的性能进行评估和测试,可以使用论文中提出的评价指标来计算模型在测试集上的表现,并根据实际需求对模型进行调优和改进。 总之,复现complex-yolov4-pytorch是一个综合性的任务,需要对目标检测算法有深入的理解,并具备较高的PyTorch编程能力和实践经验。在复现过程中要注重细节,对比论文中的描述和代码实现进行验证,并根据实际情况进行适当的调整和优化,以获得更好的模型性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zmysunshine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值