16 ビット データを受け入れるために、Caffe にいくつかの変更を加えようとしています。
通常の Caffe 8 ビット符号なしデータの代わりに、16 ビット符号なし、エンコードされていない 256x256 画像で満たされた lmdb データセットを作成することに成功し、DIGITS ユーティリティで作成できる通常の 8 ビット lmdb のように「文字列」として保存されましたimage_convert
。関数を
変更し、この lmdb を 16 ビットの「文字列」データで作成するようにしました。ここで、この lmdb をカフェ (4 つのクラスのみ) で使用すると、ネットワークは実行されますが、収束しません。私のデータを正しく読み取っていないのではないかと強く疑っています。問題は、関数と内部データの内容を区別していないように見えることです。io.py
array_to_datum
datum_to_array
io.py
array_to_blobproto
blobproto_to_array
どこで取り組むべきか、誰か私にヒントを教えてもらえますか?
編集:コードをいじって、lmdbを介さずにpngで直接作業したい場合は、新しいデータレイヤーまたは新しい画像データレイヤーを作成する必要があると思います。しかし、その C++ コードを変更しようとすることは、特に私にとって簡単な作業ではありません。コード内のデータ フローを簡単にたどることができません。新しいレイヤーはPythonで記述できることがわかりました。新しい入力データ層はうまく機能すると思いますか、それとも cnn のパフォーマンスを低下させると思いますか?