2

https://github.com/deep-diver/Soccer-Ball-Detection-YOLOv2

我开始加载 yolo.weights .... 然后

AssertionError:预计 202335260 字节,发现 203934260

但是,当我使用默认数据集运行相同的命令时,它可以工作。我从https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU下载了权重文件

我修改文件self.offset = 16中的行./darkflow/utils/loader.py并替换为self.offset = 20. 但不能解决问题。

我该如何解决这个问题?

4

3 回答 3

2

只是为了添加到@Zrufy 的答案在 darkflow/utils/loader.py

class weights_walker(object):
"""incremental reader of float32 binary files"""
def __init__(self, path):
    self.eof = False # end of file
    self.path = path  # current pos
    if path is None: 
        self.eof = True
        return
    else: 
        self.size = os.path.getsize(path)# save the path
        major, minor, revision, seen = np.memmap(path,
            shape = (), mode = 'r', offset = 0,
            dtype = '({})i4,'.format(4))
        self.transpose = major > 1000 or minor > 1000
        self.offset = 16 + 203934260 - 202335260

进行更改,使最后一行的形式为

self.offset = 16 + found_value - expected_value

found_value 和 expected_value 可以从您面临的断言错误中获取。

于 2019-11-12T04:44:07.873 回答
1

我遇到了同样的问题,并在 Ign0reLee 的帮助下解决了它。您可以在https://github.com/deep-diver/Soccer-Ball-Detection-YOLOv2/issues/3中找到详细信息

基本上,它发生在您的网络配置 (.cfg) 和权重文件 (.weights) 不匹配时。,我认为这个 repo 中的 cfg 文件对于官方的 weight 文件是不正确的。

请试试这个重量文件

https://pjreddie.com/media/files/yolov2.weights

将此 cfg 文件 Ign0reLee 放入问题页面

祝您好运

于 2019-07-18T04:12:20.193 回答
0

您需要从更改1620的方法self.offset不起作用。此错误的唯一工作方法是:

updated self.offset = old_offset_value + (found_value - expected_value)

例如在你的情况下放在 self.offset 而不是 16 这个:

16+(203934260-202314760)

让我知道!

于 2019-10-07T12:34:28.013 回答