Error while using Resnet-50 for transfer learning
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I am using Matlab 2024a version . I have done a transfer learning using resnet50 on a x-ray dataset (code and dataset link given below) , showing the following error. but the same code working fine for alexnet, google net etc. showing error in all resnet versions.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1669911/image.jpeg)
imds = imageDatastore('E:\dataset\chest-xray', ...
'IncludeSubfolders',true, ...
'LabelSource','foldernames');
[imdsTrain,imdsValidation] = splitEachLabel(imds,0.7,'randomized');
numTrainImages = numel(imdsTrain.Labels);
idx = randperm(numTrainImages,16);
figure
for i = 1:16
subplot(4,4,i)
I = readimage(imdsTrain,idx(i));
imshow(I)
end
net=resnet50;
analyzeNetwork(net)
inputSize=net.Layers(1).InputSize
layersTransfer = net.Layers(1:end-3);
numClasses = numel(categories(imdsTrain.Labels))
layers = [
layersTransfer
fullyConnectedLayer(numClasses,'WeightLearnRateFactor',20,'BiasLearnRateFactor',20)
softmaxLayer
classificationLayer];
pixelRange = [-30 30];
imageAugmenter = imageDataAugmenter( ...
'RandXReflection',true, ...
'RandXTranslation',pixelRange, ...
'RandYTranslation',pixelRange);
augimdsTrain = augmentedImageDatastore(inputSize(1:2),imdsTrain, ...
'DataAugmentation',imageAugmenter,"ColorPreprocessing","gray2rgb");
augimdsValidation = augmentedImageDatastore(inputSize(1:2),imdsValidation,"ColorPreprocessing","gray2rgb");
options = trainingOptions('sgdm', ...
'MiniBatchSize',10, ...
'MaxEpochs',6, ...
'InitialLearnRate',1e-4, ...
'Shuffle','every-epoch', ...
'ValidationData',augimdsValidation, ...
'ValidationFrequency',3, ...
'Verbose',false, ...
'Plots','training-progress');
netTransfer = trainNetwork(augimdsTrain,layers,options);
[YPred,scores] = classify(netTransfer,augimdsValidation);
idx = randperm(numel(imdsValidation.Files),4);
figure
for i = 1:4
subplot(2,2,i)
I = readimage(imdsValidation,idx(i));
imshow(I)
label = YPred(idx(i));
title(string(label));
end
YValidation = imdsValidation.Labels;
accuracy = mean(YPred == YValidation)
0 Commenti
Risposte (1)
Ayush Modi
il 16 Apr 2024
Hi Bushra,
Please refer to the following MathWorks documentation for more information on:
0 Commenti
Vedere anche
Categorie
Scopri di più su Image Data Workflows in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!