Я новичок в наборе инструментов глубокого обучения и сам изучаю сверточную нейронную сеть (CNN).Мой набор данных состоит из 1000 изображений RGB размером 100x40.Поэтому Xdata = 1x1x1000
типа данных double.
Из них я использовал первые 700 для обучения, Xtrain = 1x1x700
типа данных Image.
Я получаю эту ошибку
Ошибка при использовании trainNetwork (строка 150) Неверные данные обучения.X должен быть 4-D массивом изображений, ImageDatastore или таблицей.
Я не могу понять, как использовать структуру данных таблицы и Как правильно вводить данные в CNN?Невозможно ввести изображение RGB напрямую как тип данных изображения или мне нужно преобразовать каждый канал и подать 3 матрицы по 2 D?
Пожалуйста, помогите.
imageSize = [100 40];
dropoutProb = 0.1;
numF = 8;
layers = [
imageInputLayer(imageSize)
convolution2dLayer(3,numF,'Padding','same')
batchNormalizationLayer
reluLayer
maxPooling2dLayer(3,'Stride',2,'Padding','same')
convolution2dLayer(3,2*numF,'Padding','same')
batchNormalizationLayer
reluLayer
maxPooling2dLayer(3,'Stride',2,'Padding','same')
convolution2dLayer(3,4*numF,'Padding','same')
batchNormalizationLayer
reluLayer
maxPooling2dLayer(3,'Stride',2,'Padding','same')
convolution2dLayer(3,4*numF,'Padding','same')
batchNormalizationLayer
reluLayer
convolution2dLayer(3,4*numF,'Padding','same')
batchNormalizationLayer
reluLayer
maxPooling2dLayer([1 13])
dropoutLayer(dropoutProb)
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer];
miniBatchSize = 50;
validationFrequency = floor(numel(Ytrain)/miniBatchSize);
options = trainingOptions('adam', ...
'InitialLearnRate',3e-4, ...
'MaxEpochs',25, ...
'MiniBatchSize',miniBatchSize, ...
'Shuffle','every-epoch', ...
'Plots','training-progress', ...
'Verbose',false, ...
'ValidationData',{XValidation,YValidation}, ...
'ValidationFrequency',validationFrequency, ...
'LearnRateSchedule','piecewise', ...
'LearnRateDropFactor',0.1, ...
'LearnRateDropPeriod',20);
trainedNet = trainNetwork(Xtrain,layers,options);