Я использую 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;
ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ