Number of observations in X and Y disagree. For convolution neural network
23 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Nathaniel Porter
am 5 Dez. 2021
Kommentiert: yanqi liu
am 13 Dez. 2021
clc; clear all; close all;
%Import/Upload data
load generated_data.mat
%transposing glucose data
X1_T = X1';
%transposing insulin data
X2_T = X2';
%Separating data in training, validation and testing data
X1_train = X1_T;
%Partioning data for training
train_X1 = X1_train(1:120,:);
train_Y1 = Y1(1:120);
%DataParts = zeros(size(Train_inputX1,1), size(Train_inputX1,2),1,2); %(4500,400,1,2)
%DataParts(:,:,:,1) = real(cell2mat(Train_inputX1));
%DataParts(:,:,:,2) = imag(cell2mat(Train_inputX1)) ;
XTrain=(reshape(train_X1, [120,1,1,2289])); %Train data
%Separating and partioning for validation data
val_X1 = X1_train(121:150,:);
val_Y1 = Y1(121:150);
XVal=(reshape(val_X1, [30,1,1,2289])); %Train data
%Separating and partioning for test data
test_X1 = X1_train(151:180,:);
test_Y1 = Y1(151:180);
XTest=(reshape(test_X1, [30,1,1,2289])); %Train data
%Xtest=(reshape(test_X1, [120,1,1,2289])); %Train data
%Separating data in training, validation and testing data
%X2_train = X2_T;
%Partioning data for training
%train_X2 = X2_train(1:120,:);
%Separating and partioning for validation data
%val_X2 = X2_train(121:150,:);
%Separating and partioning for test data
%test_X2 = X2_train(151:180,:);
%The number of features chosen to be two representing both glucose and
%insulin
%% NETWORK ARCHITECTURE
layers = [imageInputLayer([120 1 1]) % Creating the image layer
convolution2dLayer([102 1],3,'Stride',1)
maxPooling2dLayer(2,'Stride',2,'Padding',[0 0 0 1])
% convolution2dLayer([24 1],10,'Stride',1)
% maxPooling2dLayer(2,'Stride',2,'Padding',[0 0 0 1])
% convolution2dLayer([11 1],10,'Stride',1)
% maxPooling2dLayer(2,'Stride',2,'Padding',[0 0 0 1])
% convolution2dLayer([9 1],10,'Stride',1)
% maxPooling2dLayer(2,'Stride',2,'Padding',[0 0 0 1])
fullyConnectedLayer(6)
%fullyConnectedLayer(6)
%fullyConnectedLayer(6)
softmaxLayer
classificationLayer];
% Specify training options.
opts = trainingOptions('adam', ...
'MaxEpochs',50, ...
'Shuffle','every-epoch', ...
'Plots','training-progress', ...
'Verbose',false, ...
'ValidationData',{XVal,val_Y1},...
'ValidationPatience',Inf);
%% Train network
%net = trainNetwork(XTrain,Trainoutfinal,layers,opts);
net1 = trainNetwork(XTrain,categorical(train_Y1),layers,opts);
%% Compare against testing Data
miniBatchSize =27;
YPred = classify(net1,test_X1, ...
MiniBatchSize=miniBatchSize, ...
SequencePaddingDirection="left");
acc = mean(YPred == categorical(test_Y1));
figure
t = confusionchart(categorical(test_Y1),YPred);
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Find more on Image Data Workflows in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!