资讯详情

YOLOv5 神经网络训练(本地训练)

在训练文件train.py中

找到main的部分

if __name__ == '__main__':     parser = argparse.ArgumentParser()     parser.add_argument('--weights', type=str, default='yolov5s.pt', help='initial weights path')     parser.add_argument('--cfg', type=str, default='', help='model.yaml path')     parser.add_argument('--data', type=str, default='data/coco128.yaml', help='data.yaml path')     parser.add_argument('--hyp', type=str, default='data/hyp.scratch.yaml', help='hyperparameters path')     parser.add_argument('--epochs', type=int, default=300)     parser.add_argument('--batch-size', type=int, default=16, help='total batch size for all GPUs')     parser.add_argument('--img-size', nargs=' ', type=int, default=[640, 640], help='[train, test] image sizes')     parser.add_argument('--rect', action='store_true', help='rectangular training')     parser.add_argument('--resume', nargs='?', const=True, default=False, help='resume most recent training')     parser.add_argument('--nosave', action='store_true', help='only save final checkpoint')     parser.add_argument('--notest', action='store_true', help='only test final epoch')     parser.add_argument('--noautoanchor', action='store_true', help='disable autoanchor check')     parser.add_argument('--evolve', action='store_true', help='evolve hyperparameters')     parser.add_argument('--bucket', type=str, default='', help='gsutil bucket')     parser.add_argument('--cache-images', action='store_true', help='cache images for faster training')     parser.add_argument('--image-weights', action='store_true', help='use weighted image selection for training')     parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')     parser.add_argument('--multi-scale', action='store_true', help='vary img-size  /- 50%%')     parser.add_argument('--single-cls', action='store_true', help='train multi-class data as single-class')     parser.add_argument('--adam', action='store_true', help='use torch.optim.Adam() optimizer')     parser.add_argument('--sync-bn', action='store_true', help='use SyncBatchNorm, only available in DDP mode')     parser.add_argument('--local_rank', type=int, default=-1, help='DDP parameter, do not modify')     parser.add_argument('--workers', type=int, default=8, help='maximum number of dataloader workers')     parser.add_argument('--project', default='runs/train', help='save to project/name')     parser.add_argument('--entity', default=None, help='W&B entity')     parser.add_argument('--name', default='exp', help='save to project/name')     parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')     parser.add_argument('--quad', action='store_true', help='quad dataloader')     parser.add_argument('--linear-lr', action='store_true', help='linear LR')     parser.add_argument('--label-smoothing', type=float, default=0.0, help='Label smoothing epsilon')     parser.add_argument('--upload_dataset', action='store_true', help='Upload dataset as W&B artifact table')     parser.add_argument('--bbox_interval', type=int, default=-1, help='Set bounding-box image logging interval for W&B')     parser.add_argument('--save_period', type=int, default=-1, help='Log model after every "save_period" epoch')     parser.add_argument('--artifact_alias', type=str, default="latest", help='version of dataset artifact to be used')     opt = parser.parse_args()

这主要是一些训练参数 (建议workers 中的default设置为0 这是管理线程)

运行后出现

tensorboard:可视化工具

hyperparameters:超参数值

wandb:建议你安装wandb库

再讲一下main函数中的参数

--weights:训练好的模型参数路径(如果从头开始训练 则可以赋值为空)

--cfg:模型配置 可以在models中查,赋值为相对路径

--data:训练数据集路径 (coco128数据集下载地址coco128.yaml中查看 https://github.com/ultralytics/yolov5/releases/download/v1.0/coco128.zip)也可以选择其他数据集data文件夹下的yaml查看文件中的下载路径

--hyp:超参数 如上图 scratch为冲头开始的文件,finetune微调模型
--epochs:训练多少次 步长
--batch-size:将多少数据打包成一个数据集中在网络中
--img-size:分别设置训练集和测试集的图片大小
--rect:矩阵训练方法(可参考)Rect函数详解_coder_Alger的博客-CSDN博客_rect函数)
--resume:是否在当前训练模型的基础上继续训练(默认情况下)false)训练模型的位置需要指定(yolov在这个文件夹下)

--nosave:在模型训练过程中 为ture保存最后一次训练的权重数据(核)pt文件
--notest:是否在最后一个核进行测试
--noautoanchor:是否使用锚点(锚点是网页制作中的一种超级链接,也叫命名锚点,就像快速定位器一样,是页面中的超级链接,应用相当广泛。使用命名锚可以在文档中设置标记,通常放在文档的特定主题或顶部。然后可以创建这些命名锚定链接,可以快速将访问者带到指定位置。创建命名锚定链接的过程分为两个步骤。首先,创建命名锚记,然后创建命名锚记的链接)默认打开
--evolve:进化参数
--bucket:在谷歌云盘上下载作者存储的一些数据(默认为false)
--cache-images:是否缓存图片以更好地训练
pre>--image-weights:对训练效果不好的图片加一些相关的权重
--device:cuda device, i.e. 0 or 0,1,2,3 or cpu
--multi-scale:对图片尺寸进行变换
--single-cls 训练数据集是单类别还是多类别 多类别为false
--adam:优化器 true选择adam优化器 false选用随机梯度下降
--sync-bn:多GPU设置
--local_rank:多GPU设置
--workers:是否多线程运行
--project:保存在哪里
--entity:W&B库
--name:结果保存名字
--exist-ok:结果是否保存到一个文件中(是否增加文件存储结果)
--quad:ture使用LoadImagesAndLabels.collate_fn4处理数据 false使用LoadImagesAndLabels.collate_fn处理数据(可以参考what is the new quad dataloader? · Issue #1898 · ultralytics/yolov5 · GitHub)
--linear-lr:如果开启 学习速率就会按照
lf = lambda x: (1 - x / (epochs - 1)) * (1.0 - hyp['lrf']) + hyp['lrf']

的线性方式处理,不开启按照余弦方式处理

lf = one_cycle(1, hyp['lrf'], epochs) 
--label-smoothing:标签平滑防止过拟合的情况发生
--upload_dataset:W&B库
--bbox_interval:W&B库
--save_period:对模型打印一些日志 默认值为-1
--artifact_alias:还没实现的变量

标签: 三极管lrf2807

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台