如何解决尝试运行暗网检测时无法打开文件yolov3_custom_last.weights
我一直在尝试使用YOLO(v3)来实现和训练OpenImage
数据集对Tank的对象检测。
我试图从this tutorial获得帮助,我的代码看起来很像。
另外,我正在使用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
文件中所做的更改:
- 首先,我们将注释第3行和第4行(批处理,细分)以取消设置测试模式
- 我们将取消注释第6行和第7行(批处理,细分)以设置为训练模式
- 我们将
max_batches
的值更改为 2000 * number_of_classes (如果像我们的案例那样有一个类,则设置为4000) - 我们将类似于步元组的值更改为max_baches值的80%,即90%。在这种情况下,它将是3200、3600。
- 对于所有所有 YOLO层和其之前的卷积层,将
classes
的值更改为类数,在这种情况下为1,并根据以下内容更改filters
的值以下公式(在这种情况下为18)
转化层的公式可过滤值:(类数+ 5)* 3
我搜索了错误,并在Github上找到了this issue。 但是,我尝试了推荐的以下方法,但问题仍然相同:
- 删除并重新创建
backup
文件夹 - 试图将行
backup = backup
添加到文件夹yolo.data
的{{1}}文件中,但是cfg文件夹中没有这样的文件。 - 在备份文件夹中创建一个空的
.cfg
本期提到的其他解决方案是关于在PC而非google Colab上运行YOLO的时间。 另外,这是我的YOLOv3文件夹的树状结构,它存储在我的Google Drive我的云端硬盘(主文件夹)中。
yolov3_custom_last.weights
所以,我有点受阻,我不知道该怎么解决。我会感谢您的帮助。
解决方法
我在Windows 10上遇到了同样的错误,并且我想设法解决了该错误。我要做的就是将我的“ weights”文件夹(里面有yolov3.weights)移到更靠近.exe文件的位置,在我的情况下,该文件位于“ x64”文件夹中。此后,错误停止出现,应用程序能够正常预测测试图像。
,我已经解决了使用ln
命令更改本地驱动器地址的问题。
问题不是来自我的代码,而是来自yolov3开发人员在目录地址中处理space
的方式!显然,正如我在他们的文档中认为的那样,他们对目录中的空间处理得不够好。
因此,我创建了一个虚拟地址,该地址没有“我的云端硬盘”所拥有的空间。
附注:您知道Google云端硬盘中已经有我的云端硬盘文件夹,因此您实际上无法对其进行重命名。
这是您可以用来实现此目的的代码:
!ln -s /content/drive/My\ Drive/ /mydrive
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。