Clear Filters
Clear Filters

YOLOv2における学習前のエラーについて

10 views (last 30 days)
HY
HY on 8 Jul 2020
Commented: Kenta on 9 Jul 2020
今回、YOLOを使用して学習を行うことになりました。
自分の現状理解では、転移学習させたCNNを最後の特徴層?以後を切り離し、YOLOのサブネットワークをつなげ学習させる手順だと認識しています。
今回は、事前学習のネットワークとしてResNet18を転移学習させました。その後、YOLO仕様に変換さて学習を行ったところ、以下のようなエラーが起きてしまいました。エラー内容からして、変換後と変換前で特徴層のチャンネル数?が一致していないのではないかと考えていますが、どこに手をつければ良いか思いつきません。
よろしければ、ご指摘とアドバイスしていただければ幸いです。
よろしくお願いいたします。
inputSize = [224 224 3];
numClasses = width(vehicleDataset)-1;
trainingDataForEstimation = transform(trainingData,@(data)preprocessData(data,inputSize));
numAnchors = 7;
load('Resnet18v1');%転移学習したCNN
featureExtractionNetwork = Resnet18v1;
featureLayer = 'res5b_relu';
lgraph = yolov2Layers(inputSize,numClasses,anchorBoxes,featureExtractionNetwork,featureLayer);
options = trainingOptions('sgdm', ...
'MiniBatchSize', 16, ....
'InitialLearnRate',1e-3, ...
'MaxEpochs',20,...
'CheckpointPath', tempdir, ...
'Shuffle','never');
[detector,info] = trainYOLOv2ObjectDetector(preprocessedTrainingData,lgraph,options);
これを実行すると以下のエラーが発生します。
エラー: trainYOLOv2ObjectDetector (line 166)
[trainingData, lgraph, params] = iParseInputsYolov2(...
エラー: trainYOLOv2_2 (line 75)
[detector,info] = trainYOLOv2ObjectDetector(preprocessedTrainingData,lgraph,options);
原因:
ネットワーク: YOLO v2 変換層への入力は、7 個のアンカー ボックスと 21 個のクラスをサポートするために 182 個のチャネルをもたなければなりません。チャネ
ル数は numAnchors * (5 + numClasses) と等しくなければなりません。学習データ、yolov2Transform 層で指定されたアンカー ボックス数、または変換層の
前の層を更新します。

Accepted Answer

Kenta
Kenta on 8 Jul 2020
こんにちは、そちらのネットワーク構成が質問文からのみではわからないので確認させてください。
res5b_reluの直後にyolov2Conv1が来ている形で正しいですか?
anchorBoxesという変数は7行2列の変数になっていますか?
また、analyzeNetwork(lgraph)というコマンドで、ネットワークを確認したとき、最後の出力はどうなってますか(例:7×7×182など)
  8 Comments
HY
HY on 9 Jul 2020
指摘していただいた部分を確認したところ、学習させるラベルの数の設定が間違っていたようで、確認したら何とか学習に入りました!!
お騒がせしてすみません。Kenta様のアドバイスのおかげです。
誠にありがとうございました。
Kenta
Kenta on 9 Jul 2020
はい、解決し、よかったです!

Sign in to comment.

More Answers (0)

Categories

Find more on 深層学習、セマンティック セグメンテーション、検出 in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!