处理步骤参考:YOLOv5 实现目标检测(训练自己的数据集实现猫猫识别)
1.XML转yolo格式程序报错
b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text),
AttributeError: 'NoneType' object has no attribute 'find'
错误提示为'NoneType' object has no attribute 'find',意味着xmlbox的值为None
,无法调用find
方法。这种情况通常发生在XML文件中缺少了某个子元素或子元素的值为空。后来打开xml文件发现xml文件中并没有bonbox元素,取而代之的是polygon。产生不同的原因是使用精灵标注助手时,使用多边形框框选区域与矩形框框选区域产生的xml文件表示方式不同。此时将使用多边形框选的区域删除,重新使用矩形进行框选,然后导出。
2.module 'numpy' has no attribute 'int'
原因是在numpy版本更新时numpy.int在NumPy 1.20中已弃用,在NumPy 1.24中已删除,此时进入虚拟环境卸载numpy并重新下载,这里我下载的为numpy 1.23
pip uninstall numpy
pip install numpy==1.23 -i https://pypi.tuna.tsinghua.edu.cn/simple
3.OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized
参考:http://t.csdn.cn/bNX5X。我试了方法一。在"D:\Anaconda\envs\yolov5\Library\bin"中删除libiomp5md.dll。但个人比较建议添加os.environ['KMP_DUPLICATE_LIB_OK']='True'。
比较意外的是:在第二次训练程序集的时候,未删除结果无任何错误也未添加os.environ['KMP_DUPLICATE_LIB_OK']='True'程序无此报错。
4.RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory
在下载与训练模型时,由于网络问题,导致我中途退出,再运行时报错。此时删除Yolov5目录下的yolov5m.lp文件并重新下载。GitHub有时候下载很慢,百度云下载地址:https://pan.baidu.com/s/1dXGVu9MWzOrYDEOzPGUK8A?pwd=k2ka
5.assert len(names) == nc, f'{len(names)} names found for nc={nc} dataset in {data}' # check AssertionError: 1 names found for nc=2 dataset in data\licenseplate.yaml
nc打多了 有个地方打成了2,不够细心
6.页面文件太小,无法完成操作
应该是内存问题,同时出现错误:CUDA内存不足:
解决方式:
第一次修改将workers值修改为了0,然后将batch-size的值降低,成功解决问题。
第二次训练比较大的数据集时,将batch-size的值降低到一时仍然报错。,故参考Pytorch训练提示错误:“页面文件太小,无法完成操作”,修改虚拟内存成功解决问题。调大batch-size时不会报错。
7.RuntimeError: result type Float can't be cast to the desired output type __int64
8.localhost打不开
运行tensorboard --logdir 日志文件 --port=6006 参考:http://t.csdn.cn/e6pxj
tensorboard --logdir runs/train --port=6006