ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

挑战学院科创项目——训练自己的数据集(一)

2021-12-29 13:34:04  阅读:222  来源: 互联网

标签:False 训练 挑战 科创 默认 参数 images path


两种方式:

  • 本地训练
  • 云端GPU训练

乐乐新买的幻14也是有显卡的,所以可以先用自己的rtx3060训练少量数据试一试。。

基础知识

  • 超参数(hyper-parameter):是一种手工可配置的设置,需要为它根据已有或现有的经验,指定“正确”的值,也就是人为为它设定一个值,它不是通过系统学习得到的。

    • 超参\(\rightsquigarrow\)在开始机器学习之前,就人为设置好的参数
    • 模型参数\(\rightsquigarrow\)通过训练得到的参数数据

    通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果

  • 锚框(anchor box):锚框就是在目标检测算法中,围绕中心点,由算法预定义的多个不同长宽比的先验框。锚框的长宽比是一个在已有数据集上的先验值,是一个超参数,可以在模型的配置文件中配置。

  • TensorBoard是TensorFlow 提供的实用工具(utility),可以将TensorFlow程序的执行步骤都显示出来,非常直观。还可以对训练的参数(比如loss值)进行统计,用的方式来查看变化的趋势。

训练文件train.py

opt参数解析:

参数名 作用
weights 选用的模型权重,训练时一般置为空值
cfg 模型配置文件,指定网络结构.yaml文件
data 数据集配置文件,数据集路径,类名等
hyp 超参数文件
epochs 训练总轮次
batch-size 批次大小
img-size 输入图片分辨率大小
rect 是否采用矩形训练(只填充有必要的矩形部分,加快推理速度),默认False
resume 接着打断训练上次的结果接着训练(需要指定位置)
nosave 不保存模型,默认False
notest 不进行test,默认False
noautoanchor 不自动调整anchor,默认False
evolve 是否进行超参数进化(用于超参数调优),默认False
bucket 谷歌云盘bucket,一般不会用到
cache-images 是否提前缓存图片到内存,以加快训练速度,默认False
weights 加载的权重文件
name 数据集名字,如果设置:results.txt to results_name.txt,默认无
device 训练的设备,cpu;0(表示一个gpu设备cuda
multi-scale 是否进行多尺度训练,默认False
single-cls 数据集是否只有一个类别,默认False
adam 是否使用adam优化器(否则采用随机梯度下降)
sync-bn 是否使用跨卡同步BN,在DDP模式使用
local_rank gpu编号
entity W&B Entity
quad 可能让图像在大于640时效果更好
linear-lr 线性方式进行学习速率的处理(否则采用余弦退火)
label-smoothing 标签平滑,用来防止过拟合
logdir 存放日志的目录
workers dataloader的最大worker数量,可以先设置为0

调试小技巧:可以通过 ctrl+f 查找同名参数位置

,如果查找不到其他位置,有可能因为程序中还没有实现。

训练方法

官方文档:Train Custom Data · ultralytics/yolov5 Wiki (github.com)

  • 标注
    • 人工——手工标注
    • 半人工——先用模型检测,再手工调整
    • 仿真数据集(GAN,数字图像处理方式)——”自己造数据“
    • 工具:CVAT或Make Sense(在线工具:Make Sense
  • 创建dataset.yaml配置文件,指定训练集(train),验证集(val)和测试集(test),指定类别(nc)和类别列表(names)
# hotpot.yaml
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
train: hotpot/images/train  # train images (relative to 'path') 128 images
val: hotpot/images/test  # val images (relative to 'path') 128 images

# Classes
nc: 3  # number of classes
names: [ 'yudoufu', 'qinqinchang','xiebang']  # class names
  • 修改train.py中的参数,开始训练。时间比较久,但也不算太慢。

训练完成后再调整detect.py中的参数进行检测。。。好吧或许是因为我只给了16张图片做训练集,或许是这些鱼豆腐亲亲肠和蟹棒太密集了以至于什么都检测不出来。。

标签:False,训练,挑战,科创,默认,参数,images,path
来源: https://www.cnblogs.com/zouludaxia/p/15744566.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有