yolo8训练模型中遇到的问题

1.遇到的第一个问题就是不知道该怎样去使用自己的数据集训练模型。

        第一步:是在GitHub上下了yolo8(yolo本地测试也可以正常运行),但是不知道该怎么用自己的数据集。

再把自己的数据存放到datasets下就好,再将images和labels都分成train和val(images和labels里的图片命名要保持一致!)至于labels怎么根据images生成,可以去看看别的博主的,我搜的时候看见过好几个,这里不再过多赘述。

至于测试数据集,看自己情况,test也是分成images和labels。(labels为.txt文件夹)

 第二步:其实在根目录下边创建一个.yaml和train.py文件就好。

yaml文件就是定义自己数据集的位置以及标签的名称。我的yaml内容如下:

我们只需要把yolo文件夹cfg文件夹下的coco8.yaml复制到根目录下,改成自己的data.yaml文件就好。

在根目录下,创建一个train.py,train.py是用来训练自己的模型的。其实就两行代码。

相关的具体参数这里也不再过多赘述。windows系统的话建议works设为0,要不然容易报错!

2.当模型正常训练后,我遇到了第二个问题:有报错,'str' object has no attribute 'items'

这个问题很简单,就是你的yaml文件少空格了!!

我都加上空格之后就好了。

3.模型训练完成后,会将计算好的 权重保存到保存到runs/train3/weights下

best.pt为最好,last.pt为最差。

好!现在模型训练好了,就差预测了。

在根目录创建一个predict.py,也就几行代码。

# 导入ultralytics的YOLO库
from ultralytics import YOLO

# 加载模型
model = YOLO('runs/detect/train3/weights/best.pt')  # 加载自定义的训练模型

if __name__ == '__main__':
    results = model.predict(
        "datasets/fire-8/test/images",save=True)

运行结束后,会将预测后的结果保存到runs下的predict文件夹下。这是出现了第三个问题。

3.调用自己训练后的模型,发现没有预测结果,也就是所谓的标签框

这个问题困惑了我好久,下面直接说发现这个问题的具体过程以及解决方法:

我发现在runs/train3下的results.csv文件中的val/box_loss,val/cls_loss,val/dfl_loss这三列的数据显示为nan,这就很奇怪。

直接说解决办法:

在cfg文件夹下找到default.yaml,将其中的amp改为False!

之后再重新训练,就恢复正常了,可以使用自己训练的模型进行预测!!!

完结撒花!

### YOLO v8 模型训练教程和配置方法 #### 设备参数设定 对于YOLO-v8模型训练而言,设备的选择至关重要。当仅有一个GPU可供利用时,应当通过`device=0`来指明使用该GPU进行运算;若存在多枚GPU,如编号为0,1,2,3,则应逐一列举各设备号以便充分利用硬件资源加速计算过程;倘若缺乏GPU支持,则可选用`device=cpu`作为替代方案以确保程序正常运作[^2]。 #### 准备必要文件 在着手训练之前,需准备两份不可或缺的文件——yaml配置文件与预训练模型权重(.pt)文件。前者用于定义数据集结构及相关参数,后者则包含了经过预先训练得到的基础模型参数。这两者均可以从官方渠道获取并放置于项目目录下,例如: ```bash # 假设项目路径为e:/yolotrain/ data=e:/yolotrain/blood.yaml # 数据集描述文件 model=e:/yolotrain/yolov8s.pt # 预训练模型权重文件 ``` 完成上述准备工作之后便可以直接启动训练流程了[^3]。 #### 执行训练命令 具体操作是在Anaconda环境下切换至对应的工作空间(如sicisp2023),随后定位到包含ultralytics库在内的工程根目录,并安装必要的依赖项。最后一步则是调用特定指令开始正式训练阶段,如下所示: ```bash cd <YOUR_PROJECT_PATH>/ultralytics pip install . yolo detect train \ data=<path_to_your_data_yaml> \ model=<path_to_pretrained_weights>.pt \ epochs=20 \ imgsz=2100 ``` 此段脚本中的各个选项分别代表不同的含义:`data`指向自定义的数据源位置;`model`用来加载初始状态下的神经网络架构及其对应的权值矩阵;而`epochs`以及`imgsz`则决定了整个迭代周期次数同输入图片尺寸大小这两个重要属性[^4]。 #### 关键超参数调整 除了基本的环境搭建外,合理地调节一系列关键性的超参数同样不可忽视。这其中包括但不限于批处理规模(batch size),起始学习速率(learning rate),动量(momentum)因子还有正则化强度(weight decay)等等。这些因素共同作用影响着最终产出模型的质量优劣程度,因此建议依据实际情况灵活变动直至找到最优组合方式为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值