https://github.com/deep-diver/Soccer-Ball-Detection-YOLOv2
我正在加载yolo.weights ....然后
AssertionError:期望202335260字节,找到203934260
但是,当我使用默认数据集运行相同的命令时,它将起作用。我从https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU
下载了权重文件我修改@csrf_exempt
@require_http_methods(['POST', 'GET'])
@login_required()
def getUserContext(request):
文件中的行self.offset = 16
,并替换为./darkflow/utils/loader.py
。但是无法解决问题。
我该如何解决这个问题?
答案 0 :(得分:0)
我遇到了同样的问题,并在Ign0reLee的帮助下解决了。 您可以在https://github.com/deep-diver/Soccer-Ball-Detection-YOLOv2/issues/3
中找到详细信息基本上,发生在您的网络配置(.cfg)和重量文件(.weights)不匹配时。,我认为此仓库中的cfg文件不适用于官方重量文件。< / p>
请尝试此重量文件
https://pjreddie.com/media/files/yolov2.weights
将此cfg文件Ign0reLee放在问题页面中
祝你好运
答案 1 :(得分:0)
您需要将16
从20
更改为self.offset
的方法。
此错误的唯一有效方法是:
updated self.offset = old_offset_value + (found_value - expected_value)
例如,在您的情况下,将其放置在self.offset中,而不是16个:
16+(203934260-202314760)
让我知道!
答案 2 :(得分:0)
只需添加到@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可以从您遇到的断言错误中获取。