私の16ビットデータを受け入れるためにCaffeをいくつか修正しようとしています。
image_convert
またはDIGITSユーティリティで作成できる通常の8ビットのlmdbと同じように、通常のcaffe 8ビットの符号なしデータの代わりに、16ビットの符号なし、符号化されていない256x256イメージでlmdbデータセットを作成することに成功しました。
このlmdbを16ビットの "文字列"データで作成するために、io.py
関数array_to_datum
とdatum_to_array
を変更しました。 このlmdbをcaffe(ちょうど4つのクラス)で使用すると、ネットワークは動作しますが、収束しません。私は強く、自分のデータを正しく読んでいないと思う。 問題は、io.py
関数array_to_blobproto
とblobproto_to_array
は内部データの内容を区別していないようですが、16ビットを扱うために変更する必要があるコードを見つけることができません。
誰かが私に仕事のヒントを教えてもらえますか?lmdb内の16ビットデータを受け入れるようにCaffeを変更しました
編集: コードを使いこなすと、lmdbを使わずにpngに直接作業したい場合は、新しいデータレイヤーまたは新しいイメージデータレイヤーを作成する必要があります。しかし、そのC++コードを修正しようとすることは、私にとって些細な作業ではありません。私はコード内のデータフローに簡単に従うことができません。私は新しい層がPythonで記述できることを知っています。新しい入力データレイヤーがうまく動作するか、またはcnnのパフォーマンスが低下すると思いますか?