我一直在尝试使用YOLO(v3)来实现和训练带有OpenImage
数据集的Tank对象检测。我试图从本教程中获得帮助,我的代码看起来很像。另外,我正在使用Google Colab和Google云端硬盘服务。通过我的程序,一切都很好。但是在运行darknet
训练检测时,我在最后一步遇到了错误。
!./darknet detector train "data/obj.data" cfg/yolov3_custom.cfg "darknet53.conv.74" -dont_show
经过100次迭代后,当尝试将进度保存到文件中已解决的备份文件夹中时obj.data
,出现以下错误:
Saving weights to /content/drive/My\Drive/YOLOv3/backup/yolov3_custom_last.weights
Couldn't open file: /content/drive/My\Drive/YOLOv3/backup/yolov3_custom_last.weights
起初,我以为我在使用地址时犯了一个错误;因此,我尝试使用ls命令检查地址
!ls /content/drive/My\Drive/YOLOv3/backup/
结果是一个空文件夹(但是,这不是一个错误,表示我已经正确写入了地址并且可以在我的Google驱动器中访问该地址)。
以下是data.object文件的内容:
classes = 1
train = data/train.txt
valid = data/test.txt
names = data/obj.names
backup = /content/drive/My\ Drive/YOLOv3/backup
我还对配置文件进行了必要的更改,所以我认为问题不在于此。但是只是为了确保这是我在yolov3.cfg
文件中所做的更改:
max_batches
值更改为2000 * number_of_classes(如果像我们的案例一样有一个类,则设置为4000)classes
值更改为类数,在这种情况下为1,并filters
根据以下公式更改此值(在这种情况下为18)转换层的公式过滤器值:(class_of_classes + 5)* 3
我搜索了错误,并在Github上发现了此问题。但是,我尝试了推荐的以下方法,但问题仍然相同:
backup
文件夹 backup = backup
我的yolo.data
文件夹中的文件中,.cfg
但是cfg文件夹中没有这样的文件。yolov3_custom_last.weights
在备份文件夹中创建一个空白本期提到的其他解决方案是关于在PC而非google Colab上运行YOLO的时间。另外,在这里,我的文件夹YOLOv3的树结构存储在我的Google Drive我的云端硬盘(主文件夹)中。
YOLOv3
darknet53.conv.74
obj.data
obj.names
Tank.zip
yolov3.weights
yolov3_custom.cfg
yolov3_custom1.cfg.txt
所以,我有点卡住,我不知道该怎么解决。我会感谢您的帮助。
我已经解决了通过ln
命令更改本地驱动器地址的问题。问题不是来自我的代码,而是来自yolov3开发人员space
在目录地址中的处理方式!显然,正如我在他们的文档中认为的那样,他们对目录中的空间处理得不够好。因此,我创建了一个虚拟地址,该地址没有“我的云端硬盘”所拥有的空间。PS:您知道Google云端硬盘中已经有我的云端硬盘文件夹,因此您实际上无法对其进行重命名。这是您可以用来实现此目的的代码:
!ln -s /content/drive/My\ Drive/ /mydrive
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句