問題タブ [lmdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lmdb - エントリを上書きするときに余分なスペースを使用する LMDB
LMDB では、同じトランザクション内で前のエントリを上書きすると、データがコミットされるまで前のエントリのスペースが解放されないようです。私のアプリケーションでは、特定のエントリが何度も上書きされたために LMDB のスペースが不足するケースに遭遇したため、この問題を回避するためにデータベースのサイズを増やしました。
この状況が発生しないように、LMDB の未使用領域を解放する方法はありますか?
deep-learning - カフェでオブジェクト検出用のデータセットを作成するにはどうすればよいですか?
画像のデータベース ( LMDB/LEVELDB
) を作成することは、caffe では簡単です。しかし、オブジェクト検出用のそのようなデータセットをどのように作成するのでしょうか?
このシーケンスは正しい方法ですか?
- すべての画像をフォルダに入れる
- 画像ごとに、対応する画像と同じ名前のテキスト ファイルを作成します*
- 画像内の各オブジェクトの境界ボックスの座標を別の行に配置します
このような構造を lmdb に変換するにはどうすればよいでしょうか。
すべてのtxtファイルをバイトに変換し、バイトストリーム全体を各画像の1つのラベルとして保存する必要がありますか?
Caffe はそのような変換されたデータベースから自動的に読み取ることができますか、それとも必要な情報を読み取ってネットワークに供給するための特定のレイヤーを作成する必要がありますか?
machine-learning - caffe を使用して独自のデータセットから正確に lmdb ファイルを生成する方法は?
Caffe を使用して CNN をトレーニングするために lmdbs を生成しようとしています。
データ セットとして Stanford Dogs Dataset を使用しました。データ セットをダウンロードした後、トレーニング データ セットとテスト データ セットを準備しました。構成をファイル train.txt および val.txt に保存しました。
次に、コンソールで次の 2 つのコマンドを使用して、lmdb ファイルを生成しようとしました。
ただし、最初のコマンドでこれらのエラーが発生しました。
2 番目のコマンドのエラーは次のとおりです。
ファイル train.txt および val.txt のアクセス許可を変更して、問題を解決しようとしました。しかし、同じエラーが残っていました。したがって、この問題を解決するための提案はありません。
ありがとう
python - Caffe のシャム ニューラル ネットワーク - データ入力
私は Caffe フレームワークを初めて使用し、シャム ネットワークを作成したいと考えています。
私のデータセットには、目を持つ複数の画像があります: x_left.jpgとx_right.jpg : 人物xの左目と右目で、列車のサンプルは次のようになります。
レベルは、糖尿病性網膜症という病気の進行度を示すため、レベルは 0 ~ 5 のカテゴリと見なすことができます。
2 つの入力は、2 つの画像、つまり 15_left.jpg と 16_right.jpg になります。シャム ネットワークをトレーニングした後、それをエクストラクタ フィーチャとして使用したいと考えています。
私の質問は、シャム ネットワークを使用するために lmdb ファイルを作成するにはどうすればよいですか?
ありがとうございました!
python - numpy 配列を lmdb に書き込む
Pythonでnumpy配列をlmdbに書き込もうとしています:
numpy 配列をread_lmdb
lmdb に書き込む適切な方法は何ですか?
更新: @frankyjuang の回答に基づいて、私はなんとかそれを行うことができましたが、非常にエレガントな方法ではありません: 多次元配列は形を失い、各配列には独自の名前が必要です。
テスト スクリプトの出力は次のようになります。
numpy - LMDB データセットに挿入する前に numpy 配列を圧縮する方法は?
uint8 形式で [82,3,780,1024] テンソル (82 の異なる画像フレームのマージ) のサイズがあります。これらを挿入し始めると、LMDBはサイズの点でワイルドになります。挿入する前にこれらのテンソルを圧縮する方法はありますか?
挿入するには、ここで質問に従います
cv2.encode
andで解決策を見つけましたcv2.decode
が、そのようなテンソルには当てはまりません。
machine-learning - Ubuntu での LMDB エラー
caffe2 で MNIST チュートリアルを行っていたところ、次のエラーが発生しました。
なぜこうなった?
python - Caffe トレーニング用の LMDB のキー
カフェ初心者です。私の質問のトピックに関するドキュメントは明確ではありません。
Caffe の LMDB でトレーニング/テスト データベースを作成する場合、データベース内のキーには意味がありますか?
言い換えれば、Caffe は LMDB キーからの情報を使用するのか、それともキーを無視して関連付けられた値だけを使用するのか?
私が見つけたすべての例は、データ項目のいくつかの列挙を確立し、データベースに (文字列に変換された数値、データ) のペアを配置します。例:
数値を文字列に変換する代わりに、他の一意の値を割り当てて にstr_id
送信するとどうなりtxn.put
ますか?
トレーニング結果は変わりますか?
キーを持たない HDF5 フォーマットも使用できるという事実は、Caffe がそれらを無視していることを示唆していますが、確認したいと思います。
更新LMDB はキーと値のストレージであるのに対し、ニューラル ネットワークは表形式のデータを必要とするため、LMDB のそのような列挙は LMDB の行インデックスをエミュレートするために確立されたと考えるのは正しいですか?
java - Clojure で lmdbjava を使用する
Clojure で lmdbjava を使おうとしていますが、苦労しています。
(ps もっときれいな方法があることはわかっています。これはテスト目的のためだけです。)
これはエラーです:
私もこれを試しました:
この:
そして、私はこのエラーを受け取ります:
私はJavaとClojureの両方に慣れていないので、おそらく何かばかげたことをしていることに気づきました。どんな助けでも大歓迎です!
ちなみに、これは私がフォローしているチュートリアルです:
https://github.com/lmdbjava/lmdbjava/blob/master/src/test/java/org/lmdbjava/TutorialTest.java
ありがとう!
python - Caffe Net はトレーニングを行いません (トレーニング中の損失は変化しません)。
円(ラベル: "1") と 長方形(ラベル: "0")を使用して白黒画像で AlexNet をトレーニングすることにより、Caffe を学習しようとしています。1800 個のトレーニング画像 (900 個の円と 900 個の四角形) を使用しています。例えば:
私の train_val.prototxt は次のようになります。
私のsolver.prototxtは次のようになります:
トレーニング中に、次の出力が得られます。
ご覧のとおり、損失は一定の 0.873365 または 0 であり、その理由はわかりません。画像のテストに次のコードを使用すると、常にゼロが返されます。
LMDB ファイルを作成するには、次のスクリプトを使用しました。
これは私のコードの間違いですか、それともネットワークのパラメーターを不適切に選択しましたか?
編集
データレイヤーを編集して、ゼロ平均入力を取得しました。
トレーニング画像の数を 10000 に、テスト画像の数を 1000 に増やし、データをシャッフルして、solver.prototxt を編集しました。
デバッグ情報のある時点で、次のことが起こりました。
そこで、base_lr を 0.0001 に減らしました。しかし、その後の時点で勾配がゼロに落ちます。