load('C:\Users\myROIFC_GroupTwo.mat');
load('C:\Users\myROIFC_GroupZero.mat');
trainingLabels = [zeros(30,1);2*ones(23,1)];
trainingLabels = categorical(trainingLabels);
trainingImages=[myROIfc_GroupZero;myROIfc_GroupTwo];
testImages = trainingImages;
trainingImagesNew = shiftdim(trainingImages,1);
testImagesNew = shiftdim(testImages,1);
trainingImagesNew= (reshape(trainingImagesNew,116,116,53));
testImagesNew= (reshape(testImagesNew,116,116,53));
numTrainingImages=size(trainingImagesNew,3);
idx = randperm(size(trainingImagesNew,3),floor(numTrainingImages/2));
XValidation = trainingImagesNew(:,:,idx);
trainingImagesNew(:,:,idx) = [];
YValidation = trainingLabels(idx);
trainingLabels(idx) = [];
opts = trainingOptions('sgdm', 'Plots', 'training-progress', ...
'InitialLearnRate', 0.01, ...
'LearnRateSchedule', 'piecewise', ...
'LearnRateDropFactor', 0.1, ...
'LearnRateDropPeriod', 8, ...
'L2Regularization', 0.004, ...
'ValidationFrequency',15,...
'ValidationData',{XValidation,YValidation}, ...
[height,width,numChannels, ~] = size(trainingImagesNew);
imageSize = [height width numChannels];
inputLayer = imageInputLayer(imageSize);
numImageCategories = length(unique(trainingLabels));
convolution2dLayer(filterSize,numFilters,'Padding',3)
maxPooling2dLayer(3,'Stride',2)
convolution2dLayer(filterSize,numFilters,'Padding',3)
maxPooling2dLayer(3, 'Stride',2)
convolution2dLayer(filterSize,2 * numFilters,'Padding',2)
maxPooling2dLayer(3,'Stride',2)
fullyConnectedLayer(numImageCategories)
layers(2).Weights = 0.0001 * randn([filterSize numChannels numFilters]);
GWI_RCNNv0 = trainNetwork(trainingImagesNew, trainingLabels, layers, opts);
0 Comments
Sign in to comment.