Darkflow: AssertionError с разницей в четыре байта при преобразовании

Созданный на 3 нояб. 2017  ·  17Комментарии  ·  Источник: thtrieu/darkflow

Я получаю довольно странную ошибку при попытке преобразовать darknet обученный Tiny YOLO (скорректированная модель, передача изучена с использованием пользовательского набора данных) с помощью flow --savepb , который жалуется на обнаружение неожиданного размера файла. Однако разница в размерах составляет ровно четыре байта:

Traceback (most recent call last):
  File "./flow", line 6, in <module>
    cliHandler(sys.argv)
  File "/home/mmayer/dev/ml/darkflow/darkflow/cli.py", line 22, in cliHandler
    tfnet = TFNet(FLAGS)
  File "/home/mmayer/dev/ml/darkflow/darkflow/net/build.py", line 58, in __init__
    darknet = Darknet(FLAGS)
  File "/home/mmayer/dev/ml/darkflow/darkflow/dark/darknet.py", line 27, in __init__
    self.load_weights()
  File "/home/mmayer/dev/ml/darkflow/darkflow/dark/darknet.py", line 82, in load_weights
    wgts_loader = loader.create_loader(*args)
  File "/home/mmayer/dev/ml/darkflow/darkflow/utils/loader.py", line 105, in create_loader
    return load_type(path, cfg)
  File "/home/mmayer/dev/ml/darkflow/darkflow/utils/loader.py", line 19, in __init__
    self.load(*args)
  File "/home/mmayer/dev/ml/darkflow/darkflow/utils/loader.py", line 77, in load
    walker.offset, walker.size)
AssertionError: expect 63184556 bytes, found 63184560

Я пробовал это с разными версиями TensorFlow, в частности 1.0.1 и 1.3.1, но это ничего не меняло.
Кто-нибудь знает, что может вызвать эту проблему?

Самый полезный комментарий

Может помочь изменение loader.py в darkflow / utils.
Измените строку 121 с self.offset = 16 на self.offset = 20 ~~~
Эта работа для меня, надеюсь, поможет ~

Все 17 Комментарий

Этот комментарий к # 107 предполагает, что обучение с нуля может решить эту проблему. Я переобучил сеть с помощью darknet и снова преобразовал ее, но все равно получаю ту же ошибку.

Этот комментарий предлагает изменить self.offset = 16 на self.offset = 20 в методе utils/loader.py weights_walker.__init__() . Если я это сделаю, ошибка исчезнет, ​​но я понятия не имею, стоит ли это делать.

Я тоже сталкиваюсь с этой проблемой, я думаю, что это вызвано несоответствием пары между .weight и .cfg, возможно, это небольшая подсказка, но я понятия не имею, как ее решить, извините

Может помочь изменение loader.py в darkflow / utils.
Измените строку 121 с self.offset = 16 на self.offset = 20 ~~~
Эта работа для меня, надеюсь, поможет ~

спасибо за вашу помощь , я решил это , еще раз спасибо

发 自我 的 iPhone

在 2017 年 11 月 16 日 , 03:52 , shangliy [email protected]写道 :

Может помочь изменение loader.py в darkflow / utils.
Измените строку 121 с self.offset = 16 на self.offset = 20 ~~~
Эта работа для меня, надеюсь, поможет ~

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub или отключите чат.

Я изменил строку 121 с self.offset = 16 на self.offset = 20! но та же ошибка не исчезнет!

почему мы должны изменить значение этого числа "self.offset"

Я предполагаю, что смещение, которое касается разницы между c и python, но я мог ошибаться. Можете ли вы попробовать уменьшить смещение до 12, чтобы ожидаемые байты оставались равными фактическим байтам. Сообщите мне, как это происходит.

Это мой тренировочный результат с использованием darkflow, скажите, пожалуйста, какой формат файла, почему бы не получить файл формата .CKPT! Как я могу сгенерировать файл необходимого веса для tenorflow? (. Ckpt)
image

@ yw455801125 как у вас он

@ yw455801125 Веса, которые я использовал для преобразования, взяты из Darknet, а не из darkflow. Формат хранения весов у Darkflow и Darknet отличается. Итак, я думаю, мое решение может не сработать в вашем случае.

@ yw455801125 Я думаю, это потому, что размер заголовка самых последних весов yolo v2 изменился с 16 до 20 байтов, поэтому weights_walker не достигает конца файла, потому что ожидает более старый размер заголовка. Если я столкнусь с той же проблемой, я попробую изменить self.offset с 16 на file size - expected size , на случай, если файлы веса снова изменятся.

@ yw455801125, если вы еще не решили эту проблему или для других, вам необходимо обновить установку darkflow после модификации darkflow / utils / loader.py
вы можете использовать: pip install. --Обновить
в любом случае у меня появилась еще одна ошибка с несоответствием меток:
/anaconda2/lib/python2.7/site-packages/darkflow/net/yolo/__init__.py ", строка 24, в конструкторе
) .format (мета ['модель'])
AssertionError: labels.txt и ../darknet/cfg/yolov2-tiny.cfg указывают на несовместимые номера классов.

иди с той же ошибкой
AssertionError: labels.txt и ../darknet/cfg/yolov2-tiny.cfg указывают на несовместимые номера классов.
пожалуйста, у кого-нибудь есть ответ ОТВЕТИТЕ

@HsGaurav
чтобы исправить ошибку в метках, я просто связываю label.txt с соответствующим файлом со списком меток, используемых в наборе данных, на котором сеть была обучена.
например, для yolov2-voice я связался с darknet / data / voice.names
так далее...

@fbadaud как связать файл

Ошибка: - AssertionError: ожидайте 63184556 байт, найдено 63184560

Решение: "./darkflow/utils/loader.py" в строке 121 вы найдете self.offset = 16 или 20.
обновление, которое необходимо выполнить: - найдено 63184560 - ожидайте, что 63184556 = 4, затем добавьте 4 к self.offset = добавьте эту разницу 4 (или любое другое значение) к 16 или 20, а затем снова запустите вашу команду.

С удачей, это сработает для меня, надеюсь, это сработает и для вас, продолжайте помогать другим.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

pribadihcr picture pribadihcr  ·  5Комментарии

LeeroyHannigan picture LeeroyHannigan  ·  4Комментарии

humanova picture humanova  ·  4Комментарии

wonny2001 picture wonny2001  ·  4Комментарии

borasy picture borasy  ·  3Комментарии