問題タブ [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.

0 投票する
3 に答える
780 参照

pointers - ペアの配列を関数に渡すときに、タイプ `&A` の特性が実装されていません

setRust LMDB ライブラリ( docs ) を呼び出す関数と、私が取り組んでいる例を作成しようとしています。

私は一生これを機能させることはできません。これが私の現在の試みです:

は次setのように定義されます。

これにより、次のエラーが吐き出されます。


も試しdb.set(id, note).unwrap();ましたが、今回は次のようになります。


私も次のようなものを試しました:

しかし、それもうまくいきません...理由は完全にはわかりません。タイプがidありませんか?note&strstr

0 投票する
2 に答える
2525 参照

database - LMDB を使用したメモリ内データベース

何億もの小さなレコードのキー バリュー ストアとして BerkelyDB を使用するプロジェクトがあります。

それが使用される方法は、すべての値がデータベースに挿入され、すべて単一のスレッドからシーケンシャル アクセスとランダム アクセスの両方を使用して繰り返されることです。

BerkeleyDB を使用すると、「ディスク上に保存することを意図していない」インメモリ データベースを作成できます。データベースが BerkeleyDB キャッシュに収まるほど小さい場合、ディスクに書き込まれることはありません。キャッシュよりも大きい場合は、オーバーフローを保持するために一時ファイルが作成されます。このオプションを使用すると、アプリケーションがデータベースを閉じるときにギガバイト単位の不要なデータをディスクに書き込むことがなくなるため、処理速度が大幅に向上します。

SSD でも BerkeleyDB の書き込みパフォーマンスが低すぎることがわかったので、LMDBに切り替えたいと思います。ただし、ドキュメントに基づくと、非永続データベースを作成するオプションはないようです。

永続性や同時アクセスをまったく気にしない場合、LMDB から最高のパフォーマンスを得るには、どの構成/オプションの組み合わせを使用すればよいですか? つまり、一時的なバッキング ディスク ストレージを備えた「メモリ内データベース」のように機能させるには?

0 投票する
1 に答える
502 参照

machine-learning - lmdb 内で 16 ビット データを受け入れるように Caffe を変更する

16 ビット データを受け入れるために、Caffe にいくつかの変更を加えようとしています。
通常の Caffe 8 ビット符号なしデータの代わりに、16 ビット符号なし、エンコードされていない 256x256 画像で満たされた lmdb データセットを作成することに成功し、DIGITS ユーティリティで作成できる通常の 8 ビット lmdb のように「文字列」として保存されましたimage_convert。関数を
変更し、この lmdb を 16 ビットの「文字列」データで作成するようにしました。ここで、この lmdb をカフェ (4 つのクラスのみ) で使用すると、ネットワークは実行されますが、収束しません。私のデータを正しく読み取っていないのではないかと強く疑っています。問題は、関数と内部データの内容を区別していないように見えることです。io.pyarray_to_datumdatum_to_arrayio.pyarray_to_blobprotoblobproto_to_array
どこで取り組むべきか、誰か私にヒントを教えてもらえますか?

編集:コードをいじって、lmdbを介さずにpngで直接作業したい場合は、新しいデータレイヤーまたは新しい画像データレイヤーを作成する必要があると思います。しかし、その C++ コードを変更しようとすることは、特に私にとって簡単な作業ではありません。コード内のデータ フローを簡単にたどることができません。新しいレイヤーはPythonで記述できることがわかりました。新しい入力データ層はうまく機能すると思いますか、それとも cnn のパフォーマンスを低下させると思いますか?

0 投票する
1 に答える
881 参照

python - numpy 配列を使用した Caffe 用の大きな LMDB の作成

2 つの 60 x 80921 行列があり、1 つはデータで埋められ、もう 1 つは参照で満たされています。
値をキーと値のペアとして 2 つの異なる LMDB に格納したいと考えています。1 つはトレーニング用 (たとえば、60000 列のマークの周りをスライスします) で、もう 1 つはテスト用です。これが私の考えです。それは機能しますか?

私は本当にコードがわかりません。そして、最後の行は何format(i)を指していますか?

0 投票する
2 に答える
7352 参照

machine-learning - チェックに失敗しました: mdb_status == 0 (2 対 0) そのようなファイルまたはディレクトリはありません

データのトレーニング中に次のエラーを受け取りました。インターネットで提供されているすべての解決策を試しましたが、何もうまくいかないようです。lmdb ファイルのパスとサイズを確認しましたが、ゼロではありません。しかし、問題はまだ存在します。この問題を解決する方法がわかりません。

以下は私のファイル設定です:

0 投票する
1 に答える
788 参照

python - Pythonを使用したLMDBデータのマトリックスとしてのラベル

ラベルがスカラーではなく、各ラベルが (1,K) ベクトルで、K がクラスの数である Python で lmdb データを作成したいと考えています。より具体的には、ラベル ベクトルには、1 の対応するクラス インデックスを除いて、どこでもゼロがあります。

Python で次のコードをテストしました。

しかし、上記のようにnumpy (1,k) ベクトルであるこのエラーTypeError: only length-1 arrays can be converted to Python scalarsが発生しました。y[i]

また、カフェがそのような形式のラベルを受け入れるかどうかも疑問に思っています。

どんな助けでも大歓迎です

0 投票する
1 に答える
441 参照

python - Python with Caffe: ソルバーから読み取るとカスタム データがすべてゼロになる

ここで定義されている Lenet をトレーニングしようとしています。 Solving in Python with LeNet を使用して、kaggle で数字認識データ セットをトレーニングします。ここで提供されているチュートリアルを最初に使用します。 lmdb を作成して、データを lmdb 形式に転送します。次に、リンク 1 (LeNet を使用した Python での解決) の指示に従って、トレーニング、テスト、およびソルバーの prototxt を作成します。しかし、solver.prototxt からソルバーを抽出すると、画像データの各要素がゼロであることがわかりました。私のコードに何か問題がありますか?

0 投票する
1 に答える
957 参照

python - lmdb 利用可能なロックがありませんエラー

test/ ディレクトリに data.mdb と lock.mdb ファイルがあります。python lmdb パッケージを使用して、lmdb データベースからデータを読み書きしようとしていました。私は試した

しかし、次のエラーが発生しました:

それから私は試しました

ソースからコンパイルされた個別にインストールされた lmdb ライブラリを使用すると、次のエラーが発生しました。

ただし、pythonでも試しました

これは機能し、データベースからデータを正常に読み取ることができます。

「lmdb no locks available error」についてGoogleで非常に一生懸命検索しましたが、何も得られませんでした。このエラーがどこから来たのか、誰にも分かりますか?

ありがとう!

0 投票する
1 に答える
1094 参照

c++ - 2 つの異なる LMDB を使用したマルチラベル

私はカフェフレームワークが初めてで、カフェを使用してマルチラベルでトレーニングを実装したいと考えています。2 つの LMDB を使用して、それぞれデータとラベルを保存します。データ LMDB の次元は Nx1xHxW であり、ラベル LMDB の次元は Nx1x1x3 です。ラベルは float データです。

テキストファイルは次のとおりです。

C++ を使用して LMDB を作成します。私のmain.cpp:

2 つの LMDB を正常に作成できます。しかし、caffe を使用して 2 つの LMDB でトレーニングを実装すると、結果は常に間違っています。損失レイヤーは EUCLIDEAN_LOSS であり、損失は下降できません。2つのLMDBを作成できるコードが間違っているかどうかはわかりません。誰が私を助けることができます ?ありがとうございます。

0 投票する
1 に答える
1233 参照

python - python LMDB大規模DB(メモリ制限エラー)

約 800K の画像を含む大きな lmdb があります。エントリを1つずつ読みたいだけです。私のコードは非常に単純で、次のようになります。

しかし、約 70000 のエントリを読み取った後、メモリ (~10GB) が不足します。理由がわかりません。以下のようにしようとしましたが、うまくいきませんでした。

なにか提案を?