SeriesNetworkでのエラーについて

1 view (last 30 days)
HY
HY on 28 Jul 2020
Commented: Kenta on 29 Jul 2020
yolov2を学習させる際に、CNNを転移学習をさせようと考えています。
yolo v2 深層学習を使用したオブジェクトの検出ではResNet-50を使用していましたが、今回はSeriesNetworkであるalexnetを検討しました。(ResNet18を試しましたが、検証でエラーが発生してしまったため。)
そこで以下のように、例にのっとって事前学習済みのCNNを指定して、yoloに変換しようとしましたが、以下のようなエラーが発生してしまいます。ResNetではうまくいくので、DAGNetworkとSeriesNetworkでは、何か操作が違うかと考えていますが、対処方法が見つかりません。
不勉強であり申し訳ございませんが、ご指摘いただければ幸いです。
よろしくお願いいたします。
-------------------------------------------------------------------------------------------------
featureExtractionNetwork = SignNet;%事前学習済みのCNNを選択
%%
featureLayer = 'relu_5';%最後の特徴層を選択しその層以降をYOLOに変換する
lgraph = yolov2Layers(inputSize,numClasses,anchorBoxes,featureExtractionNetwork,featureLayer);
----------------------------------------------------------------------------------------------------------------
↑このコードを実行すると以下のエラーが発生します。
featureExtractionNetwork =
SeriesNetwork のプロパティ:
Layers: [18×1 nnet.cnn.layer.Layer]
InputNames: {'imageinput'}
OutputNames: {'classoutput'}
エラー: convolution2dLayer>iParseInputArguments (line 155)
'NumFilters' の値は無効です。 入力は整数値にする必要があります。
エラー: convolution2dLayer (line 125)
args = iParseInputArguments(varargin{:});
エラー: yolov2Layers>iAddDetectionSubNetwork (line 363)
yolov2Conv1 = convolution2dLayer(3,outFilters,'Name',names.yolov2Conv1,...
エラー: yolov2Layers (line 121)
lgraph = iAddDetectionSubNetwork(lgraph,params,names);
エラー: trainYOLOv2_2 (line 46)
lgraph = yolov2Layers(inputSize,numClasses,anchorBoxes,featureExtractionNetwork,featureLayer);

Accepted Answer

Kenta
Kenta on 28 Jul 2020
もう1つ手前の層のReLuを指定してはどうでしょうか?HYさんの指定した特徴の次元は4096×1になっていますか?
  2 Comments
HY
HY on 29 Jul 2020
回答いただきありがとうございます。
指定していたひとつ前に全結合層があったみたいで、エラーが起きていたみたいです。
ご指摘の通り、1つ前のReLuを指定したらうまくできました。
大変ありがとうございました。
Kenta
Kenta on 29 Jul 2020
解決し、よかったです。
また時間があればmatlabのYOLOの説明のページやもとの論文を見てみるとよいと思います。
M×N×チャンネル数の特徴マップをつかって、入力画像で、その特徴マップの位置に相当する場所に物体があるかとかそのようなことを推論します。そのため、M×1になった特徴ベクトルを返す層のあとにYOLO用のネットワークを作ろうとしてもエラーがでます。コードを動かしたりして、自分でも見ながら、論文も読みながらと同時にすると効率が良い気がします。

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!