1

トレーニング セットとテスト セットの 2 セットのイメージ パッチ データがあります。これらは両方とも LMDB ファイルに書き込まれています。Caffe を使用して、このデータに対して畳み込みニューラル ネットワークを実行しています。

問題は、ハードディスクに保存されたデータがかなりの量のスペースを占めており、モデルをより堅牢にするために意図的にノイズを追加してより多くのトレーニング データを導入する私の努力を妨げていることです。

画像パッチを LMDB に保存せずに、プログラムから CNN (Caffe 内) に直接送信する方法はありますか? 現在、Python を使用して、トレーニング データ セットの画像からパッチを生成しています。

4

2 に答える 2

2

カスタム Python レイヤーを定義する以外に、次のオプションを使用できます。

  • レイヤーを使用ImageData: ソース パラメータがあります (ソース: テキスト ファイルの名前で、各行に画像のファイル名とラベルを指定します)

  • レイヤを使用MemoryData: これを使用すると、Python で「setinputarrays」メソッドを使用して、入力画像をメモリからネットワークに直接ロードできます。このレイヤーは単一の値であるラベルのみを受け入れ、画像をラベルとして使用できないため、このレイヤーの使用には注意してください (セマンティック セグメンテーションなど)。

  • 次のように、ネットワークの展開バージョンを使用します。

    input: "data"
    input_shape {
    dim: n # batch size
    dim: c # number of channels
    dim: r # image size1
    dim: w # image size2
    }
    
    input: "label"
    input_shape {
    dim: n # batch size
    dim: c # number of channels
    dim: r # label image size1
    dim: w # label image size2
    }
     ... #your other layers to follow
    
  • HDF5 入力レイヤーを使用します (多かれ少なかれ lmdb を使用しますが、lmdb の方が計算効率が高くなります)。

これらのレイヤーの詳細については、http: //caffe.berkeleyvision.org/tutorial/layers.htmlを参照してください。

オンラインで入手できる例もあります。

于 2016-08-23T09:15:38.630 に答える