1

convert_imageset.bin を使用して作成したトレイン lmdb から MatCaffe の実装がポップできない理由を理解しようとしています。

私がしていることは基本的にこれだけです:

solver = caffe.Solver(solverFile);
solver.step(500);

端末を見ると、最後のステートメントの後の出力は次のとおりです。

I0322 11:15:11.830241 **098 net.cpp:228] data does not need backward computation.
I0322 11:15:11.830250 **098 net.cpp:270] This network produces output accuracy
I0322 11:15:11.830257 **098 net.cpp:270] This network produces output loss
I0322 11:15:11.830281 **098 net.cpp:283] Network initialization done.
I0322 11:15:11.830377 **098 solver.cpp:60] Solver scaffolding done.
I0322 11:15:16.625566 **098 solver.cpp:341] Iteration 0, Testing net (#0)
I0322 11:15:19.976579 **098 solver.cpp:409]     Test net output #0: accuracy = 0.445407
I0322 11:15:19.976654 **098 solver.cpp:409]     Test net output #1: loss = 0.693147 (* 1 = 0.693147 loss)
I0322 11:15:20.317916 **098 solver.cpp:237] Iteration 0, loss = 0.693147
I0322 11:15:20.317989 **098 solver.cpp:253]     Train net output #0: loss = 0.693147 (* 1 = 0.693147 loss)
I0322 11:15:20.318009 **098 sgd_solver.cpp:106] Iteration 0, lr = 0.001
I0322 11:15:21.342550 **098 blocking_queue.cpp:50] Data layer prefetch queue empty

この手順を再開したときにロックが残っていないことを確認するために locks.mdb を削除しても、この問題を再現できます。メッセージの後、Matlab のハード シャットダウンしか実行できません。Matlab LMDB を使用して lmdb を確認しましたが、両方の内容を確認しました。電車とテストの lmdb は問題ないようです。lmdb を生成するために使用したパラメーター: shuffle.

注 (ここで問題が発生する可能性があります): 現在、このコンスタレーションで MEX 問題に直面しています。私の実装の最初の実行で、エラーメッセージが表示されます

" MEX ファイルからの予期しない不明な例外.. "

端末出力は次のようになります。

I0322 11:42:09.465801 **875 layer_factory.hpp:77] Creating layer data
I0322 11:42:09.466012 **875 net.cpp:106] Creating Layer data
I0322 11:42:09.466030 **875 net.cpp:411] data -> data
I0322 11:42:09.466053 **875 net.cpp:411] data -> label
I0322 11:42:09.469091 **151 db_lmdb.cpp:38] Opened lmdb /home/user/caffe-master/data/train/lmdbTrain

私がこれまでに試したこと: 「caffe.reset_all();」を使用してポインター、スペースなどが解放されるように (願わくば) try-catch ブロックを実装し、どのような場合でもこのメソッドが呼び出されるようにしました。出力. 私の最初の実行は lmdb アクセスをブロックしているようです.1 回目と 2 回目の実行の間に locks.mdb を手動で削除することになりました -> 残念ながら同じ結果です.コマンドラインによる「手動」トレインは同じ lmdb で動作します. matcaffe の実行のみがこれらの問題と疑問を引き起こすようです. レイヤーの重みを手動で初期化するために Matcaffe を使用したいことに注意してください.prototxt の "weight_filler" はオプションではありません. 私の Matcaffe の実装は 2016 年 1 月のもので、私は'また、caffe_ の mex ファイルを正しい gcc バージョンで再コンパイルしました (gcc バージョンを "x" にする必要があるという警告が表示される前に、-> "x" に変更して再コンパイルしました)。

他にアイデア、推奨事項、または情報があれば教えてください。

ありがとうございました!

4

0 に答える 0