1

これは caffe ユーザー グループで質問する方がよいかもしれませんが、ユーザー グループにアクセスできず、git で問題として提起する必要があるかどうかわからないため、どこに質問すればよいかわかりません。いずれにせよ、私がやっていることはこれです:

Caffe を使用して CNN をトレーニングするために使用したい一連のグレースケール画像があります。私は提供されたカフェネット モデル定義の修正版を使用しており、マイナーな修正が加えられています (つまり、グレースケール画像があるため、チャネル = 3 ではなく 1 です)。これまでのところ、imagenet が提供する平均画像を使用して CNN をトレーニングし、トレーニングして結果を生成しました。ここで、自分のトレーニング/テスト データセットの画像平均を計算し、それを平均画像として使用したかったので、build/tools/ のファイルを使用してこれを行いました。画像が lmdb にある必要があるため、最初に convert_imageset を使用して画像を lmdb に変換し、次に compute_mean を使用して平均を計算しました。イメージがグレースケールであるため、convert_imageset を使用する場合は --gray フラグを使用するようにしました。caffe を再実行すると、次のエラーが表示されます。私が理解できることから、それはチャネルの不一致ですが、これを修正する方法がわかりません.

I0829 20:41:50.429733 17065 layer_factory.hpp:77] Creating layer data
I0829 20:41:50.429764 17065 net.cpp:100] Creating Layer data
I0829 20:41:50.429769 17065 net.cpp:408] data -> data
I0829 20:41:50.429790 17065 net.cpp:408] data -> label
I0829 20:41:50.429805 17065 data_transformer.cpp:25] Loading mean file from: data/flickr_style/train_mean.binaryproto
I0829 20:41:50.438251 17065 image_data_layer.cpp:38] Opening file data/flickr_style/train.txt
I0829 20:41:50.446666 17065 image_data_layer.cpp:58] A total of 31740 images.
I0829 20:41:50.451941 17065 image_data_layer.cpp:85] output data size: 10,3,227,227
I0829 20:41:50.459661 17065 net.cpp:150] Setting up data
I0829 20:41:50.459692 17065 net.cpp:157] Top shape: 10 3 227 227 (1545870)
I0829 20:41:50.459697 17065 net.cpp:157] Top shape: 10 (10)
I0829 20:41:50.459699 17065 net.cpp:165] Memory required for data: 6183520
I0829 20:41:50.459707 17065 layer_factory.hpp:77] Creating layer conv1
I0829 20:41:50.459728 17065 net.cpp:100] Creating Layer conv1
I0829 20:41:50.459733 17065 net.cpp:434] conv1 <- data
I0829 20:41:50.459744 17065 net.cpp:408] conv1 -> conv1
F0829 20:41:50.463794 17106 data_transformer.cpp:257] Check failed: img_channels == data_mean_.channels() (3 vs. 1) 
*** Check failure stack trace: ***
    @     0x7f0712106daa  (unknown)
    @     0x7f0712106ce4  (unknown)
    @     0x7f07121066e6  (unknown)
    @     0x7f0712109687  (unknown)
    @     0x7f071287d6cd  caffe::DataTransformer<>::Transform()
    @     0x7f07127fde60  caffe::ImageDataLayer<>::load_batch()
    @     0x7f0712839539  caffe::BasePrefetchingDataLayer<>::InternalThreadEntry()
    @     0x7f0712886020  caffe::InternalThread::entry()
    @     0x7f070a762a4a  (unknown)
    @     0x7f070603e184  start_thread
    @     0x7f07111eb37d  (unknown)
    @              (nil)  (unknown)

私はtrain_val.prototxtに以下を持っています

name: "FlickrStyleCaffeNet"
layer {
  name: "data"
  type: "ImageData"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {
    mirror: true
    crop_size: 227
    mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
  }
  image_data_param {
    source: "data/flickr_style/mri_train.txt"
    batch_size: 10
    new_height: 256
    new_width: 256
  }
}

これは deploy.prototxt にあります

name: "FlickrStyleCaffeNet"
layer {
  name: "data"
  type: "Input"
  top: "data"
  input_param { shape: { dim: 10 dim: 3 dim: 227 dim: 227 } }
}
4

2 に答える 2

0

これを行う方法を理解しました。train_val.prototxt には、image_data_paramデータ層の下にセクションがあります。私はそれを追加is_color: falseする必要があり、それで問題が解決しました。

コメントや返信をくださった皆様、ありがとうございます。

于 2016-08-30T23:53:42.600 に答える