ディープラーニングに使用する画像のサイズについて
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
ネットから拾ってきた画像を学習さえたいのですが
%% 画像読み込み
imds = imageDatastore('catdog','IncludeSubfolders',true,'LabelSource','foldernames');
labelCount = countEachLabel(imds)
%% データで振り分ける
rateTrainFiles = 0.6;
[imdsTrain,imdsValidation] = splitEachLabel(imds,rateTrainFiles,'randomize');
%%画像サイズ
layers = [256,256,3];
aug_imdsTrain = augmentedImageDatastore(layers,imdsTrain);
aug_imdsValidation = augmentedImageDatastore(layers,imdsValidation);
options = trainingOptions('sgdm', ...
'InitialLearnRate',0.01,...
'MaxEpochs',4,...
'Shuffle','every-epoch',...
'ValidationData',imdsValidation,...
'VerboseFrequency',30,...
'Verbose',false, ...
'Plots','training-progress');
net=trainNetwork(imdsTrain,layers,options);
これでエラーが学習イメージサイズが違いますってでてしまいました
どこを直せばよろしいでしょうか?
0 commentaires
Réponse acceptée
Atsushi Ueno
le 25 Juin 2022
aug_imdsTrain = augmentedImageDatastore([256,256,3],imdsTrain);
は良いのですが、
net=trainNetwork(imdsTrain,[256,256,3],options);
は求められているネットワーク層の情報が与えられていません。2番目の引数layersは、学習させるニューラルネットワークのネットワーク層を指定する為の引数で、画像サイズではありません。
>どこを直せばよろしいでしょうか?
例えば以下の様にすればエラーは解消すると思います。
layers_for_trainNetwork = [imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer];
options = ...% optionsは修正不要
net=trainNetwork(imdsTrain,layers_for_trainNetwork,options);
2 commentaires
Atsushi Ueno
le 25 Juin 2022
すいません。それでしたら下記の様にすれば良いです。
layers_for_trainNetwork = [imageInputLayer([800 1200 3]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer];
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur イメージを使用した深層学習 dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!