cfg→training下面的yolov7配置文件具体见原作者的博客yolov7.yaml文件详解_yolov7 yaml-CSDN博客
二是data文件下的数据相关配置文件和超参数配置文件
三、train参数详解
1、weights(权重)
parser.add_argument('--weights', type=str, default='yolov7.pt', help='initial weights path')
网络权重,默认是'yolov7.pt'可根据需求设置不同尺寸大小的权重
2、cfg(权重的一些重要信息文件)
parser.add_argument('--cfg', type=str, default='yolov7.yaml', help='model.yaml path')
指定模型配置文件路径的;源码里面提供了几个配置文件,配置文件里面指定了一些参数信息和backbone的结构信息。
3、data(数据)
parser.add_argument('--data', type=str, default='datasets/Drozy/data_Drozy.yaml', help='data.yaml path')
4、hyp(超参数)
parser.add_argument('--hyp', type=str, default='data/hyp.scratch.tiny.yaml', help='hyperparameters path')
里面包含了超参数的信息
5、 epochs(训练的代数)
parser.add_argument('--epochs', type=int, default=300)
6、batch-size
parser.add_argument('--batch-size', type=int, default=16, help='total batch size for all GPUs')
每批次的输入数据量;default=-1将时自动调节batchsize大小,default=16,代表一次输入16张图片进行训练。
7、img-size
parser.add_argument('--img-size', nargs='+', type=int, default=[640, 640], help='[train, test] image sizes')
8的倍数:不满足是会自动向上最小调整
8、rect矩形训练???
parser.add_argument('--rect', action='store_true', help='rectangular training')
图像是否采用矩形的方式去训练模型,采用矩阵推理的话就不要求送入的训练的图片是正方形了——默认好像是否##########################
9、resume(断点训练)
parser.add_argument('--resume', nargs='?', const=True, default=False, help='resume most recent training')
断点续训:即是否在之前训练的一个模型基础上继续训练,default 值默认是 false
假如你想进行断点训练,那就先将default=True
随后输入
python train.py --resume runs/train/exp_yolov7-tiny-2/weights/last.pt
10、nosave
不使用,不管
parser.add_argument('--nosave', action='store_true', help='only save final checkpoint')
是否保存最后一轮的pt文件,我们默认保存的是best.pt和last.pt
11、notest
不使用,不管
parser.add_argument('--notest', action='store_true', help='only test final epoch')
12、noautoanchor自动锚框
parser.add_argument('--noautoanchor', action='store_true', help='disable autoanchor check')
最好使用,默认开启
是否禁用自动锚框;默认是开启的,可以简化训练过程;
在这里解释一下anchor
人工标注的边框(bounding box,有时简写bbox 或者 box)是人告诉机器的正确答案叫ground truth bounding box,简写 gt bbox或者gt box,表示已知正确的意思。
程序生成的一堆box,想要预测正确的gt box,这些生成的box叫anchor。
在这里介绍两个指标
bpr(best possible recall)
aat(anchors above threshold)
当配置文件中的anchor计算bpr(best possible recall)小于0.98时才会重新计算anchor。
best possible recall最大值1,如果bpr小于0.98,程序会根据数据集的label自动学习anchor的尺寸
13、evolve
parser.add_argument('--evolve', action='store_true', help='evolve hyperparameters')
超参数进化,模型提供的默认参数是通过在COCO数据集上使用超参数进化得来的(由于超参数进化会耗费大量的资源和时间,如果默认参数训练出来的结果能满足你的使用,使用默认参数也是不错的选择)默认不开启
14、bucket
parser.add_argument('--bucket', type=str, default='', help='gsutil bucket')
谷歌云盘;通过这个参数可以下载谷歌云盘上的一些东西。
15、cache-images缓存图片到内存
parser.add_argument('--cache-images', action='store_true', help='cache images for faster training')
是否提前缓存图片到缓存,以加快训练速度,默认为False
在train.py中修改,一劳永逸:添加 const='ram'
# const='ram'缓存到内存
parser.add_argument('--cache', type=str, nargs='?', const='ram', help='--cache images in "ram" (default) or "disk"')
16、image-weights加权训练图像,解决样本图片不平衡问题
parser.add_argument('--image-weights', action='store_true', help='use weighted image selection for training')
是否启用加权训练图像,默认为Flase,主要为了解决样本图片不平衡问题;开启后会对上一轮训练不好的图片,在下一轮中增加权重。
17、device
parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
多gpu训练修改##########
18、multi-scale多尺度训练
parser.add_argument('--multi-scale', action='store_true', help='vary img-size +/- 50%%')
采用多尺度训练,默认是False,设置几种不同的图片输入尺度,训练时每隔一定的ierations随机选取一种尺度训练。——未尝试
19、single-cls
parser.add_argument('--single-cls', action='store_true', help='train multi-class data as single-class')
不动它
设定训练的数据集是单类别还是多类别,默认为多类别。
20、adam优化器
parser.add_argument('--adam', action='store_true', help='use torch.optim.Adam() optimizer')
使用它——默认Flase???
启用#####代码》》》
21、sync-bn
parser.add_argument('--sync-bn', action='store_true', help='use SyncBatchNorm, only available in DDP mode')
同步Batch Normalization,是否跨多设备进行Batch Normalization
多GPU使用?未使用
22、local_rank
parser.add_argument('--local_rank', type=int, default=-1, help='DDP parameter, do not modify')
DDP参数,请勿修改
使用DDP进行单机多卡训练时,通过多进程在多个GPU上复制模型,每个GPU都由一个进程控制,同时需要将参数local_rank
传递给进程,用于表示当前进程使用的是哪一个GPU。
详情见:PyTorch单机多卡训练(DDP-DistributedDataParallel的使用)备忘记录_ddp多卡训练-CSDN博客
23、workers
parser.add_argument('--workers', type=int, default=8, help='maximum number of dataloader workers')
workers指数据装载时cpu所使用的线程数,默认为8。和batch--size的区别,batch--size是指训练一组放入多少张照片,消耗的是GPU
windows一般为0
24、project
parser.add_argument('--project', default='runs/train', help='save to project/name')
训练模型存放的路径
25、entity
parser.add_argument('--entity', default=None, help='W&B entity')
wandb 库的使用
26、name
parser.add_argument('--name', default='exp', help='save to project/name')
用于设定保存的模型文件名
27、exist-ok
parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')
用于设定预测结果的保存存在位置情况,
一般为true。
当为 false,在新命名的文件夹下保存;
当为 true,在 name 指定文件夹下保存,源码中保存在 exp 文件夹下
一般不动
28、quad
parser.add_argument('--quad', action='store_true', help='quad dataloader')
简单理解,生效后可以在比前面 “--img-size” 部分设置的训练测试数据集更大的数据集上训练。
好处是在比默认 640 大的数据集上训练效果更好,副作用是在 640 大小的数据集上训练效果可能会差一些
29、linear-lr
parser.add_argument('--linear-lr', action='store_true', help='linear LR')
用于对学习速率进行调整,默认为 false,含义是通过余弦函数来降低学习率
30、label-smoothing
parser.add_argument('--label-smoothing', type=float, default=0.0, help='Label smoothing epsilon')
用于对标签进行平滑处理。作用是防止在分类算法中过拟合情况的产生。
31、upload_dataset
parser.add_argument('--upload_dataset', action='store_true', help='Upload dataset as W&B artifact table')
wandb 库对应的东西,不必考虑
32、bbox_interval
parser.add_argument('--bbox_interval', type=int, default=-1, help='Set bounding-box image logging interval for W&B')
wandb 库对应的东西,不必考虑
33、save_period
parser.add_argument('--save_period', type=int, default=-1, help='Log model after every "save_period" epoch')
用于记录每个epoch训练日志信息,int 型,默认为 -1
34、artifact_alias
parser.add_argument('--artifact_alias', type=str, default="latest", help='version of dataset artifact to be used')
可能以后更新的参数
35、freeze
parser.add_argument('--freeze', nargs='+', type=int, default=[0], help='Freeze layers: backbone of yolov7=50, first3=0 1 2')
“冻结”层指的是该层不参加网络训练,yolov7的冻结层是50层
版权声明:本文为CSDN博主「把爱留给SCI」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43397302/article/details/126732241