Darkflow: 断言错误:过度读取 yolo.weights

创建于 2017-03-28  ·  35评论  ·  资料来源: thtrieu/darkflow

我试图运行 ./flow --test test/ --model cfg/yolo.cfg --load yolo.weights --gpu 1.0

我正在加载 yolo.weights .... 然后断言错误:Over-read yolo.weights。

但是,当我使用 tiny-yolo.cfg 和 tiny-yolo.weights 运行相同的命令时,它可以工作。 我从https://pjreddie.com/darknet/yolo/下载了权重文件

最有用的评论

@Dhruv-Mohan @kinhunt查看更新的 README,我上传了一些权重文件。

所有35条评论

我猜你使用了错误的权重,它与 cfg 不匹配。 我尝试使用 yolo.cfg 和 yolo.weights 效果很好。
但是,当我使用自定义类训练 yolo-voc.cfg 时,我的训练权重会收到相同的错误消息。 如果有人能解释这个错误的含义,我将不胜感激。

.weights解析器逐层跟随.cfg ,从.weights读取相应的字节块,但是当解析器已经到达末尾时仍有层要读取.weights ; 那是您遇到断言错误的时候。

请给出导致此错误的命令。 如果你想自定义你的类,那么有几个地方可以进行修改:

  1. .cfg最后conv层中的过滤器数量
  2. class region层中的class数字
  3. labels.txt

然后运行

./flow --model cfg/model.cfg --load bin/model.weights --train

尝试从头开始训练您的网络,最新的权重https://pjreddie.com/darknet/yolo/似乎与 cfg 文件不一致。
我在使用 yolo.weights 和 yolo-voc.weights 时遇到了同样的问题,但是我的自定义训练网络的权重工作得很好

您能否提供使用 yolo.cfg 文件进行训练的说明。 谢谢

2017 年 3 月 29 日星期三下午 12:20,Dhruv-Mohan [email protected]
写道:

尝试从头开始训练你的网络,最新的权重
https://pjreddie.com/darknet/yolo/不与 cfg 文件对齐。
我遇到了与 yolo.weights 和 yolo-voc.weights 相同的问题,
但是我的自定义训练网络的权重工作得很好


您收到此消息是因为您编写了该主题。
直接回复此邮件,在 GitHub 上查看
https://github.com/thtrieu/darkflow/issues/107#issuecomment-289999490
或使线程静音
https://github.com/notifications/unsubscribe-auth/AZgJMHWUgCDnwlS_s1HY5RcBNrVSAWusks5rqf9CgaJpZM4Mrj84
.

同样的问题。 使用带有 yolo.cfg 和 v2 权重的自述说明http://pjreddie.com/media/files/yolo-voc.weights

@kinhunt yolo.cfgyolo-voc.weights不匹配。 即使是新的yolo.weights也不匹配yolo.cfg ,似乎 YOLO 官方网站不能可靠地保存他们的文件。

@thtrieu谢谢你的清理。 你知道在哪里可以找到匹配的文件吗?

@kinhunt我已经狩猎了很多天,但没有找到它们。 你最好是从头开始训练

我可以上传我的。 等待〜24小时。

@thtrieu好消息。 谢谢

@Dhruv-Mohan @kinhunt查看更新的 README,我上传了一些权重文件。

收到了。谢谢。 有用

@thtrieu您能否提供在 coco 数据集上进行训练以生成 yolo.weights 文件所遵循的步骤。 我想重复相同的操作并在 coco 数据集上为 yolov2 生成权重文件。

@thtrieu
我已按照您提到的步骤使用自定义数量的类重新训练模型

[卷积]
大小=1
步幅=1
垫=1
过滤器=30
激活=线性

[地区]
锚点 = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11, 16.62,10.52
偏差匹配=1
类=1
坐标=4
数量=5

我在 label.txt 中也只有一个标签。 但是,当我使用从您的谷歌共享下载的微小权重文件 [ https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU tiny-yolo-voc.weights] 运行此程序时,它会因断言错误而失败

AssertionError: 期望 63082056 字节,发现 63471556

你能帮我理解这里可能有什么问题吗?

我以前从暗网定制训练的权重也有类似的问题,我复制了相同的 .cfg 文件和权重,在暗流上尝试它并得到:
AssertionError: expect 202314760 bytes, found 202314764
它仅相差 4 个字节,所以我错过了一些设置吗?

@deng1028你的问题解决了吗? 我也有同样的问题。

@helloGitHub1993你的问题解决了吗? 我也有同样的问题。

@helloGitHub1993进入 utils 文件夹中的 loader.py ,然后在第 121 行更改 self.offset = 20

@beerboaa我用了另一种方式。 flow -model cfg/yolo-new.cfg(将其替换为您的训练 cfg)--load -1 --imgdir yourimgdir。 它对我有用,你可以试一试。顺便说一句,你不需要再次训练。

@itsayush你的问题解决了吗? 我也遵循了与您相同的步骤,并且在训练自定义数据(1 类)时遇到了同样的问题。 我尝试在 loader.py 中更改 self.offset = 1,但没有成功。
我的命令:
流程 --train --model cfg/tiny-yolo-voc-1c.cfg --load bin/tiny-yolo-voc.weights --annotation train/Annotations/ --dataset train/Images/ --config cfg/ - -GPU 0.9
但它适用于:
流 --imgdir sample_img/ --model cfg/tiny-yolo-voc.cfg --load bin/tiny-yolo-voc.weights --gpu 0.9
AssertionError:期望 63471541 字节,找到 63471556

谁能帮我?

我在使用这个 git 的代码https://github.com/bendidi/Tracking-with-darkflow和 tiny-yolo 时遇到了同样的问题

@hyperfraise
image
我也有同样的问题,你解决了吗?

面临同样的问题。 我尝试将您的谷歌驱动器中的权重与相应的 .cfg 一起使用,直到我尝试将类数更改为 1(=> 最后一层中的过滤器 = 30)。 是否还有机会使用预训练模型训练自定义类数?

当我使用 pjreddie 网站上的自定义数据集训练 Yolo 并尝试使用 darkflow 运行生成的 .weights 文件时,我遇到了同样的问题。 我遇到了“断言错误:期望 268283952 字节,找到 268283956”的问题。 一旦我像@beerboaa所说的那样在utils文件夹中的loader.py中的第121行更改了self.offset = 20,它就可以正常工作。 谢谢。

@MartinBrisiak你从哪里得到相应的.cfg?

没关系,我让它在一个环境中运行,使用来自@thtrieu 的 yolo.weights和这个 repo 中的 yolo.cfg
其他环境有问题...

@helloGitHub1993进入 utils 文件夹中的 loader.py ,然后在第 121 行更改 self.offset = 20

是的,它有效,非常感谢

@beerboaa谢谢mahn ..它有效

似乎 PJ Reddie 文件不完全兼容,所以我必须从 README 中提供的链接下载预构建的权重: https :

似乎 PJ Reddie 文件不完全兼容,所以我必须从 README 中提供的链接下载预构建的权重: https :

在哪里可以找到 yolov2-voc.weights? 失踪了……有什么想法吗?

混合了 2 个不同的问题,第一个问题如果与现有的权重文件不同,并且在这种情况下正好 4 个字节的配置,您需要将第 121 行的偏移量更改为 20(在我的情况下是使用 yolov2)第二种情况,如果差异超过 4 个字节,这是重量文件的错误配置文件,或者如果您想训练自己的对象,请确保 yolov2-voc.cfg 存在于配置文件夹中,我附上解决的那个问题
cfg-yolov2-voc.zip

当我使用 pjreddie 网站上的自定义数据集训练 Yolo 并尝试使用 darkflow 运行生成的 .weights 文件时,我遇到了同样的问题。 我遇到了“断言错误:期望 268283952 字节,找到 268283956”的问题。 一旦我像@beerboaa所说的那样在utils文件夹中的loader.py中的第121行更改了self.offset = 20,它就可以正常工作。 谢谢。

对我来说它不起作用,还有其他想法吗? :(

你好,
我终于能够通过使用这个 .cfg 文件https://github.com/pjreddie/darknet/blob/master/cfg/yolov2.cfg使它工作
它适用于此处的“yolov2 608X608”重量: https ://pjreddie.com/darknet/yolo/

处理错误

AssertionError:期望 64701556 字节,发现 180357512

赶紧跑

$ cd /content/darkflow
$ !sed -i "s/self.offset = 16/self.offset = 20/g"  ./darkflow/utils/loader.py

关于断言错误,可能是由于配置文件和权重不匹配。

所以,我在它周围找到了一个黑客。 使用Zoltan Szabo 的这个笔记本
作者只提供了 2 个类的 demo。 因此,他的 cfg 文件有 2 个类并使用 yolov2-tiny-voc-10000 权重,可在此处找到。
但实际模型(v2-tiny)是在 20 个类上训练的。 因此,要为实际模型生成 pb 文件,请使用模型的实际配置文件,由 pJreddie 在
https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov2-tiny-voc.cfg

并用这个替换原来的cfg文件。 让权重保持不变。

现在,您必须进行的最后更改是对包含类名的文本文件。 为此,请转到由 pj reddie 维护的类名文件,并将它们粘贴到/content/darkflow/labels.txt (在 Google Collab 中)中的文本文件中。

现在只需运行您正在运行的命令
!./flow --model cfg/yolo-v2-tiny.cfg --load weights/yolov2-tiny-voc_10000.weights --savepb

你应该得到想要的 protobuf 文件 :yum:

此页面是否有帮助?
0 / 5 - 0 等级