Как решить «Неожиданный размер изображения: все изображения должны иметь одинаковый размер»? - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь использовать 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»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...