目录
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博客