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)需要指定训练模型的位置(yolov5在这个文件夹下面)

 

--nosave:在模型训练过程中 为ture就是保存最后一次训练的权重数据(核)为pt文件
--notest:是否在最后一个核进行测试
--noautoanchor:是否采用锚点(锚点是网页制作中超级链接的一种,又叫命名锚记,像一个迅速定位器一样,是一种页面内的超级链接,运用相当普遍。使用命名锚记可以在文档中设置标记,这些标记通常放在文档的特定主题处或顶部。然后可以创建到这些命名锚记的链接,这些链接可快速将访问者带到指定位置。创建到命名锚记的链接的过程分为两步。首先,创建命名锚记,然后创建到该命名锚记的链接)默认开启
--evolve:对参数进行进化
--bucket:实现下载作者存放在谷歌云盘上的一些数据(默认是false)
--cache-images:是否对图片进行缓存以至于更好的训练
--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:还没实现的变量
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO系列是基于深度学习的端到端实时目标检测方法。 PyTorch版的YOLOv5轻量而性能高,更加灵活和易用,当前非常流行。 本课程将手把手地教大家使用labelImg标注和使用YOLOv5训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv5使用ultralytics/yolov5,在Windows系统上做项目演示。包括:安装YOLOv5、标注自己的数据集、准备自己的数据集、修改配置文件、使用wandb训练可视化工具、训练自己的数据集、测试训练出的网络模型和性能统计。 希望学习Ubuntu上演示的同学,请前往 《YOLOv5(PyTorch)实战:训练自己的数据集(Ubuntu)》课程链接:https://edu.csdn.net/course/detail/30793  本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括:《YOLOv5(PyTorch)目标检测实战:训练自己的数据集》Ubuntu系统 https://edu.csdn.net/course/detail/30793Windows系统 https://edu.csdn.net/course/detail/30923《YOLOv5(PyTorch)目标检测:原理与源码解析》课程链接:https://edu.csdn.net/course/detail/31428《YOLOv5目标检测实战:Flask Web部署》课程链接:https://edu.csdn.net/course/detail/31087《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》课程链接:https://edu.csdn.net/course/detail/32303《YOLOv5目标检测实战:Jetson Nano部署》课程链接:https://edu.csdn.net/course/detail/32451《YOLOv5+DeepSORT多目标跟踪与计数精讲》课程链接:https://edu.csdn.net/course/detail/32669《YOLOv5实战口罩佩戴检测》课程链接:https://edu.csdn.net/course/detail/32744《YOLOv5实战国交通标志识别》课程链接:https://edu.csdn.net/course/detail/35209《YOLOv5实战垃圾分类目标检测》课程链接:https://edu.csdn.net/course/detail/35284       
您好!针对Mx-yolov3模型的训练和K210模型的使用,您可以按照以下步骤进行操作: 1. 准备数据集:首先,您需要准备一个包含标记好的目标边界框的数据集。确保每个图像文件都有对应的标签文件,标签文件的格式可以是YOLO格式或者其他常用格式,如Pascal VOC。 2. 配置Mx-yolov3模型:根据您的需求,您可以在MxNet下载预训练的yolov3模型,然后根据您的数据集和目标进行微调。您可以参考MxNet官方文档来了解如何配置和使用Mx-yolov3模型。 3. 数据增强和预处理:为了提高模型的泛化能力,您可以使用数据增强技术来扩充您的数据集。数据增强包括随机裁剪、缩放、旋转、翻转等操作。此外,还需要对输入图像进行预处理,例如归一化和调整大小。 4. 模型训练:使用准备好的数据集和配置好的模型,您可以开始训练过程了。根据您的硬件资源和实际情况,可以选择在本地或者云端进行训练。通常情况下,训练过程需要花费一定的时间和资源。 5. 模型转换和部署:在训练完成后,您需要将模型转换为适用于K210芯片的格式。K210芯片使用的是KPU神经网络加速器,所以您需要将模型转换为KPU可以识别的格式。您可以使用K210提供的工具和库来进行模型转换和部署。 请注意,以上步骤仅为一般指导,具体操作可能因您的环境和需求而有所不同。建议您参考相关文档和教程,以获得更详细的指导和支持。祝您成功训练和使用K210模型!如果您有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值