私が変換しようという奇妙なエラーになっていますdarknet
訓練を受けたタイニーYOLO使用して(調整したモデルを、転送は、カスタムデータセットを使用して学んだ) flow --savepb
予期しないファイルのサイズを見つけることについて文句たが、。 ただし、サイズの違いは正確に4バイトのようです。
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
を使用してネットワークを再トレーニングし、再度変換しましたが、それでも同じエラーが発生します。
このコメントは、 utils/loader.py
のweights_walker.__init__()
メソッドでself.offset = 16
をself.offset = 20
に変更することを提案しています。 そうすればエラーは消えますが、それが賢明なことかどうかはわかりません。
私もこの問題に直面しています。これは.weightと.cfgのペアリングの不一致が原因だと思います。少し手がかりかもしれませんが、解決する方法がわからないので、申し訳ありません。
darkflow / utilsの下に修正loader.pyは役立つかもしれません。
行121をself.offset = 16からself.offset = 20 ~~~に変更します。
この仕事は私のために、助けてくれることを願っています〜
あなたの助けをありがとう、私はそれを解決しました、もう一度ありがとう
pul自我的iPhone
在2017年11月16日、03:52、shangliy [email protected]写道。
darkflow / utilsの下でloader.pyを変更すると役立つ場合があります。
行121をself.offset = 16からself.offset = 20 ~~~に変更します。
この仕事は私のために、助けてくれることを願っています〜—
あなたがコメントしたのであなたはこれを受け取っています。
このメールに直接返信するか、GitHubで表示するか、スレッドをミュートしてください。
121行目をself.offset = 16からself.offset = 20に変更しました! しかし、同じエラーは消えません!
この数値「self.offset」の値を変更する必要があるのはなぜですか
私の推測では、cとpythonの違いを扱うオフセットですが、間違っている可能性があります。 予想されるバイトを実際のバイトと等しく保つために、オフセットを12に減らしてみてください。 それがどうなるか教えてください。
これはdarkflowを使用したトレーニング出力です。ファイルの形式を教えてください。.CKPT形式のファイルを入手してみませんか。 tensorflowに必要なウェイトファイルを生成するにはどうすればよいですか?(。ckpt)
@ yw455801125どうやってそれを機能させましたか? --savepbなどを使用して変換できます。 それはReadmeにあります。
@ yw455801125変換に使用した重みは、darkflowではなくDarknetからのものです。 DarkflowとDarknetのウェイトストレージ形式は異なります。 だから、私の解決策はあなたのケースではうまくいかないかもしれないと思います。
@ yw455801125最新のyolov2ウェイトのヘッダーのサイズが16バイトから20バイトに変更されたためだと思います。そのため、 weights_walker
は、予期しているため、ファイルの最後に到達しません。古いヘッダーサイズ。 同じ問題が発生した場合、ウェイトファイルが再び変更された場合に備えて、 self.offset
を16からfile size - expected size
に変更しようとします。
@ yw455801125この問題をまだ解決していない場合、または他の人の場合は、darkflow / utils / loader.pyを変更した後、darkflowインストールをアップグレードする必要があります。
使用できるもの:pipinstall。 -アップグレード
とにかく、ラベルの不一致で別のエラーが発生しました:
/anaconda2/lib/python2.7/site-packages/darkflow/net/yolo/__init__.py "、24行目、コンストラクター
).format(meta ['model'])
AssertionError:labels.txtと../darknet/cfg/yolov2-tiny.cfgは一貫性のないクラス番号を示しています
同じエラーになります
AssertionError:labels.txtと../darknet/cfg/yolov2-tiny.cfgは一貫性のないクラス番号を示しています
誰かが答えを持ってください返信
@HsGaurav
ラベルのエラーを修正するには、labels.txtを、ネットワークがトレーニングされたデータセットで使用されているラベルのリストを含む対応するファイルにリンクするだけです。
たとえば、yolov2-vocの場合、darknet / data /voc.namesにリンクしました
NS...
@fbadaudファイルをどのようにリンクしますか
エラー:-AssertionError:63184556バイトが必要です。63184560が見つかりました
解決策:121行目の「./darkflow/utils/loader.py」では、self.offset = 16または20が見つかります。
更新が実行されます:-見つかった63184560-63184556 = 4を期待し、self.offsetに4を追加します=この4(または他の値)の差分を16または20に追加してから、コマンドを再実行します。
幸運を祈ります、それは私のために働きます、それがあなたのためにも働くかもしれないことを願っています、他を助け続けてください。
最も参考になるコメント
darkflow / utilsの下に修正loader.pyは役立つかもしれません。
行121をself.offset = 16からself.offset = 20 ~~~に変更します。
この仕事は私のために、助けてくれることを願っています〜