Я получаю довольно странную ошибку при попытке преобразовать 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, но это ничего не меняло.
Кто-нибудь знает, что может вызвать эту проблему?
Этот комментарий к # 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)
@ 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, а затем снова запустите вашу команду.
С удачей, это сработает для меня, надеюсь, это сработает и для вас, продолжайте помогать другим.
Самый полезный комментарий
Может помочь изменение loader.py в darkflow / utils.
Измените строку 121 с self.offset = 16 на self.offset = 20 ~~~
Эта работа для меня, надеюсь, поможет ~