Я пытаюсь использовать Deep Learning для matlab для классификации изображений, основываясь на этом примере.
Я создал набор данных изображений с X и O для их дифференциации, теперь я пытаюсь изменить код для обучения моей собственной модели, я изменился на:
digitDatasetPath = fullfile(matlabroot,'toolbox','nnet','nndemos', ...
'nndatasets','XODataset');
imds = imageDatastore(digitDatasetPath, ...
'IncludeSubfolders',true,'LabelSource','foldernames');
figure;
perm = randperm(20,4);
for i = 1:4
subplot(2,2,i);
imshow(imds.Files{perm(i)});
end
labelCount = countEachLabel(imds);
img = readimage(imds,1);
size(img)
numTrainFiles = 16;
[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,'randomize');
layers = [] % as the example I linked
net = trainNetwork(imdsTrain,layers,options);
YPred = classify(net,imdsValidation);
YValidation = imdsValidation.Labels;
accuracy = sum(YPred == YValidation)/numel(YValidation);
Но когда я добираюсь до trainNetwork()
, я получаю следующую ошибку:
Ошибка при использовании trainNetwork (строка 165). Неожиданный размер изображения: все изображения должны иметь одинаковый размер.
Но все мои изображения имеют размер 28x28 пикселей, как в примере. Я искал решение и нашел этот код для сбора информации об изображении. используя это, я заметил, что одно из моих изображений «truecolor», а другие «grayscale», может ли это быть проблемой? Как я могу преобразовать все изображения в папке из «truecolor» в «grayscale»?