Unexpected image size: All images must have the same size.
20 次查看(过去 30 天)
显示 更早的评论
Hi, I'm having some problems with a bench of chest xray images. I tryed to use the code from the link below, but it did not work.
Error using trainNetwork (line 165)
Unexpected image size: All images must have the same size.
Error in chestXray1 (line 49)
net = trainNetwork(imdsTrain,layers,options);
inputSize = [224 224 1];
numClasses = 2;
layers = [
imageInputLayer(inputSize)
convolution2dLayer(5,20)
batchNormalizationLayer
reluLayer
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer];
options = trainingOptions('sgdm', ...
'MaxEpochs',3, ...
'ValidationData',imdsValidation, ...
'ValidationFrequency',30, ...
'Verbose',false, ...
'Plots','training-progress');
net = trainNetwork(imdsTrain,layers,options);
8 个评论
Geoff Hayes
2019-7-9
try putting a breakpoint at the line
allfiles = fullfile({dinfo.folder}, {dinfo.name});
and then run the code. When the debugger pauses at thisline, step through the subsequent lines. What is thisfile set to? What is thisinfo?
采纳的回答
Dheeraj Singh
2019-8-5
Use the following code for your problem:
dataChest = fullfile('/Users/andrebr4/Documents/MATLAB/chestXray/chest_xray');
imds = imageDatastore(dataChest, ...
'IncludeSubfolders',true, ...
'LabelSource','foldernames');
%% Dividir o conjunto de dados em cada categoria
numTrainingFiles = 750;
[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainingFiles,'randomize');
%%%%%%%code for resizing
inputSize=[224 224 1];
imdsTrain=augmentedImageDatastore(inputSize, imdsTrain,'ColorPreprocessing','rgb2gray');
imdsValidation=augmentedImageDatastore(inputSize, imdsValidation,'ColorPreprocessing','rgb2gray');
%% Configurar a rede neural
inputSize = [224 224 1];
numClasses = 2;
layers = [
imageInputLayer(inputSize)
convolution2dLayer(5,20)
batchNormalizationLayer
reluLayer
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer];
%% Opções de treino
options = trainingOptions('sgdm', ...
'MaxEpochs',5, ...
'ValidationData',imdsValidation, ...
'ValidationFrequency',30, ...
'Verbose',false, ...
'Plots','training-progress');
%% Treinar a rede neural
net = trainNetwork(imdsTrain,layers,options);
%% Executar rede treinada no conjunto de teste
YPred = classify(net,imdsValidation);
YValidation = imdsValidation.Labels;
%% Calcular a precisão
accuracy = sum(YPred == YValidation)/numel(YValidation)
3 个评论
Mohamed Nasr
2020-4-28
and make error in YPred = classify(net,imdsValidation);
YValidation = imdsValidation.Labels;
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Data Workflows 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!