Training Image Labelerを使っ​て学習用データを作成​しました。それをOb​ject Detection Using Deep Learningを参​考にtrainNet​workを使って学習​させたいのですがどう​すればよいでしょうか​?また、具体的にスク​リプトをどう作成すれ​ばいいのか教えていた​だけますか?

1 view (last 30 days)
32×32のサイズの画像が57枚入ったデータセットです
  4 Comments
Takashi Miyatsuji
Takashi Miyatsuji on 5 Dec 2016
日本語翻訳を参考にして32×32×3×20のデータセットを作成してtrainNetworkにかけたのですが次のようなエラーが出ました。 エラー: nnet.cnn.layer.Layer>iInferSize (line 261) Layer 4 is expected to have a different size.
エラー: nnet.cnn.layer.Layer.inferParameters (line 53) layers = iInferSize(layers, i, inputSize);
エラー: trainNetwork (line 61) layers = nnet.cnn.layer.Layer.inferParameters(layers);
どういうことでしょうか?
mizuki
mizuki on 5 Dec 2016
Edited: mizuki on 5 Dec 2016
Layer4ということで、4番めに定義している層 (おそらく max pooling 層) でデータサイズの問題が生じているようです。 今回、32x32x3x50000 -> 32x32x3x20 にされたことが関連していると考えられます。
データ読み込み時に、例のまま helperCIFAR10Data 関数を使用されていますでしょうか。(53行目) もしそうであれば、これはCIFAR-10のデータ読み込み専用関数ですので、今回用意されているデータに対して使用する必要はありません。
自前のデータセットを使う場合、 trainNetwork のドキュメントにある1つめ例の初めの部分を参考にしてください。
まず imageDatastore で画像ファイルのあるフォルダを指定します。その後、 splitEachLabel を使って学習/テストに分割します。あとは Object Detection Using Deep Learning で定義されている層を使って trainingNetwork で学習をします。
これでもうまく動作しない場合はまたエラー内容とともにお知らせください。

Sign in to comment.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!