YOLOV5跑自己的数据集遇到的问题
模型和数据集
官网下载代码:ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite (github.com)
数据集:3D打印故障数据集,
地址3Dprinting Dataset and Pre-Trained Model by Additive Manufacturing QA
数据
yolov5训练自己的数据集
修改yaml文件,将data.yaml放入data当中,
在models当中复制一个coco.yaml,修改为名字如3dprint.yaml,里面
nc: 1 # number of classes
在train.oy中修改参数
'--weights', type=str, default=ROOT / 'yolov5s.pt'
'--cfg', type=str, default=r'models\3dprint.yaml'
'--data', type=str, default=ROOT / 'data\data.yaml',
'--epochs', type=int, default=500
数据集修改完成了,但在运行时遇到问题
1、TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
这是因为下载Downloading https://ultralytics.com/assets/Arial.ttf to C:\Users\dell\AppData\Roaming\Ultralytics\Arial.ttf...时网络遇到问题
解决办法:直接https://ultralytics.com/assets/Arial.ttf 下载Arial.ttf
pip install Arial,tff
2、Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
错误 #15:正在初始化 libiomp5md.dll,但发现 libiomp5md.dll 已初始化。
解决办法:直接在代码最上面的地方
import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'
3、NotImplementedError: Could not run ‘torchvision::nms‘ with arguments from
torch和torchvison版本不匹配,对应表
查看版本
import torch
import torchvision
print(torch.__version__)
print(torchvision.__version__)
有些人直接用就成功了
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html -i Simple Index
我删了下,下了删一直不行,最后从根本上解决问题——重装一个环境,用yolov5-6.2中的requirements.txt
终端运行
pip install -r requirements.txt
重新建个虚拟环境
运行日志的含义
Epoch: 当前训练的轮数。
gpu_mem: 当前GPU使用的显存量,这里是 8.05G。
box: 该损失值反映了预测框和真实框在位置和大小上的误差。预测框越接近真实框,该损失值越小。它通过调整网络让预测框更准确地匹配真实框来训练模型。
obj: 该损失值对应每个预测框是否包含一个对象的置信度。模型会区分背景和包含对象的预测框,降低包含对象框的obj损失,提高其置信度。
cls: 该损失值对应每个预测框预测的类别分数。真实框的类别置信度为1,其他为0。模型通过最小化该损失调整每个框的分类预测,进行多类分类。labels: 当前batch中包含的目标框的数量,59。
img_size: 当前训练使用的输入图像分辨率,这里是640x640。
20/20: 表示已经完成当前epoch的20个batch,共20个batch。
00:07: 完成当前epoch的训练耗时,7秒。
2.50it/s: 当前epoch的平均迭代速度,每秒2.5个iter。
Class: 类别名称,这里只有1个类别"fail"。
Images: 这类目标的总图像数量。
Labels: 这类目标的总框的数量。
P: Precision: 精度,预测正类中有多少真正属于正类,即TP/(TP+FP)。反映了预测为正的样本中真正正类样本的比例。
R: Recall: 召回率,真正正类中预测正确的比例,即TP/(TP+FN)。反映模型检测正类的完整性。
mAP@.5: 在IoU大于等于0.5的情况下计算平均精度。IoU反映预测框与真值框的重合程度。该指标考察不同门限下的精度。
mAP@.5:.95: 在IoU从0.5到0.95范围内计算平均精度。通常对象检测取0.5为阈值,这里给出一个范围的mAP作为模型精度的衡量。
all: 表示统计所有类别的结果。