u-netによるセマンティックセグメンテーション
2 ビュー (過去 30 日間)
古いコメントを表示
深層学習を使用したセマンティック セグメンテーションをもとにU-netを用いて自分で用意したデータセットでセマンティックセグメンテーションを行ったところ以下のようなエラーが発生しました.
>> i_learning
エラー: nnet.cnn.LayerGraph>iValidateLayerName (line 663)
層 'pixelLabels' は存在しません。
エラー: nnet.cnn.LayerGraph/removeLayers (line 234)
iValidateLayerName( ...
エラー: i_learning (line 17)
lgraph = removeLayers(lgraph,'pixelLabels');
以下にi_learningのコードを示します.
%ネットワークの作成
imageSize = [352 480 3];
%imageSize = [180 240 3];
numClasses = numel(classes);
lgraph = unetLayers(imageSize,numClasses);
%クラスの重み付けを使用したクラスのバランス調整
imageFreq = tbl.PixelCount ./ tbl.ImagePixelCount;
classWeights = median(imageFreq) ./ imageFreq;
pxLayer = pixelClassificationLayer('Name','labels','ClassNames',tbl.Name,'ClassWeights',classWeights);
lgraph = removeLayers(lgraph,'pixelLabels'); %エラー発生箇所
lgraph = addLayers(lgraph, pxLayer);
lgraph = connectLayers(lgraph,'softmax','labels');
%学習オプションの選択
options = trainingOptions('sgdm', ...
'Momentum',0.9, ...
'InitialLearnRate',1e-3, ...
'L2Regularization',0.0005, ...
'MaxEpochs',200, ...
'MiniBatchSize',1, ...
'Shuffle','every-epoch', ...
'VerboseFrequency',2);
%データ拡張
augmenter = imageDataAugmenter('RandXReflection',true,...
'RandXTranslation',[-10 10],'RandYTranslation',[-10 10]);
%学習の開始
pximds = pixelLabelImageDatastore(imdsTrain,pxdsTrain,'DataAugmentation',augmenter);
net= trainNetwork(pximds,lgraph,options);
採用された回答
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!