前言:觉得网上的教程都太繁琐了,自己写了个快速简单的教程,针对有一定基础的
这里写目录标题
1.下载代码
将yolov7的代码zip下载下来
https://github.com/WongKinYiu/yolov7?tab=readme-ov-file
并且记得连权重文件 yolov7.pt 下载,放到yolov7根目录下面
2.数据集处理
- 将自己数据集放到data文件夹下
我的数据集是这样
- 在data下创建mydata.yaml文件,内容如下,对应修改为自己的数据集
# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
train: ./lamb/images/train
val: ./lamb/images/val
test: ./lamb/images/test
# number of classes
nc: 1
# class names
names: ['lamb']
- 修改模型文件
打开yolov7.yaml,将nc类别修改为自己数据集的类别
3.训练
先安装检查配置环境有没有遗漏(前提是已有pytorch)
pip install -r requirements.txt
然后进入环境,命令行输入指令
python train.py --workers 8 --device 0 --batch-size 16 --data data/mydata.yaml --img 640 640 --cfg cfg/training/yolov7.yaml --epoch 300
4.报错
subprocess.CalledProcessError: Command ‘git tag’ returned non-zero exit status 128.
就这样直接训练,会出现这个报错。原因是找不到yolov7.pt权重,从github上又下载不下来。我的成功解决方案是:
- 找到train.py文件这85、86两行,将其注释掉
- 将权重文件修改为yolo7.pt 因为我发现在现在的yolov7新代码里,全局都是使用的yolo7.pt这个名称。然后就可以成功运行啦。