Я использую Matlab для классификации медицинских изображений, и у меня возникает эта проблема:

Примечание: я использовал предварительно обученную сеть (alexnet) с набором данных файлов .dicom.

сначала я готовлю свою дизайнерскую сеть

во-вторых, я запускаю свой код.

>> deepNetworkDesigner
>> SHIVANCLASSIFY 
net = 
  SeriesNetwork with properties:
         Layers: [25×1 nnet.cnn.layer.Layer]
     InputNames: {'data'}
    OutputNames: {'output'}
Error using trainNetwork (line 170)
The training images are of size 227x227x1 but the input layer expects images of size 227x227x3.
Error in SHIVANCLASSIFY (line 36)
net = trainNetwork(augimdsTrain,layers_1,options)
net=alexnet
imds = imageDatastore('lung dataset-Labeled', ...
    'IncludeSubfolders',true, 'LabelSource','foldernames', ... % this for labeling by folder names
    'FileExtensions','.dcm','ReadFcn',@readDicomDatastoreImage); % this a function
[imdsTrain,imdsValidation] = splitEachLabel(imds,0.7);
augmenter = imageDataAugmenter( ...
    'RandRotation',[-20,20], ...
    'RandXReflection',1,...
    'RandYReflection',1,...
    'RandXTranslation',[-3 3], ...
    'RandYTranslation',[-3 3]);
%augimdsTrain = augmentedImageDatastore([224 224],imdsTrain,'DataAugmentation',augmenter);
%augimdsValidation = augmentedImageDatastore([224 224],imdsValidation,'DataAugmentation',augmenter);

augimdsTrain = augmentedImageDatastore([227 227],imdsTrain);
augimdsValidation = augmentedImageDatastore([227 227],imdsValidation);
options = trainingOptions('rmsprop', ...
    'MiniBatchSize',10, ...
    'MaxEpochs',20, ...
    'InitialLearnRate',1e-3, ...
    'Shuffle','every-epoch', ...
    'ValidationData',augimdsValidation, ...
    'ValidationFrequency',3, ...
    'Verbose',false, ...
    'Plots','training-progress');
net = trainNetwork(augimdsTrain,layers_1,options)
[YPred, probs] = classify(net,augimdsValidation);
accuracy = mean(YPred ==imdsValidation.Labels)
figure
cm=confusionchart (imdsValidation.Labels, YPred);

ОТВЕЧАТЬ

Matlabsolutions.com предоставляет последнюю Справку по домашнему заданию MatLab, Справку по назначению MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech , ME, M.Tech, Ph.D. Ученым со 100% гарантией конфиденциальности. Получите проекты MATLAB с исходным кодом для вашего обучения и исследований.

вы не можете использовать предварительно обученную сеть, если не настроите ее под свои данные

1. для alexnet эта предварительно обученная сеть занимает 227x227x3, потому что она работает с изображениями RGB

2. и это также относится к первому ConveNet, который занимает 3 канала, потому что его ядра имеют 3 канала, в которых вы также должны обновить

3. вы должны обновить последние три слоя классификации, чтобы классифицировать их на основе ваших классов.

Я также думаю, что вы пытаетесь изменить размер набора данных легких до 227x227, в котором вы можете потерять часть его качества

этот код должен работать на вас, и если он не ясен, я могу уточнить его для вас

clear all; close all; clc;
imds = imageDatastore('lung dataset-Labeled', ...
    'IncludeSubfolders',true, 'LabelSource','foldernames', ... % this for labeling by folder names
    'FileExtensions','.dcm','ReadFcn',@readDicomDatastoreImage); % this a function
[imdsTrain,imdsValidation] = splitEachLabel(imds,0.7);

net = alexnet(); % analyzeNetwork(lgraph)
numClasses = numel(categories(imdsTrain.Labels)); % number of classes = number of folders
imageSize = [227 227]; % you can use here the original dataset size
global GinputSize
GinputSize = imageSize;

ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ