Error while training for a deep learning network
Mostrar comentarios más antiguos
I am trying to build neural network which will detect circular objects with low contrast from many grayscale images.
The following error showed up while I was trying to plot a lgraph.
Error using trainNetwork (line 184)
Invalid network.
Error in Scaledetection_deeplearning (line 92)
training_net = trainNetwork(imds_train,lgraph,options);
Caused by:
Layer 'fuse': Unconnected input. Each layer input must be connected to the output of another layer.
Detected unconnected inputs:
input 'in2'
Layer 'score': Unconnected input. Each layer input must be connected to the output of another layer.
Detected unconnected inputs:
input 'ref'
Layer 'score_pool4c': Unconnected input. Each layer input must be connected to the output of another
layer.
Detected unconnected inputs:
input 'ref'
I am attaching the output of the Lgraph. Could anyone guide me as to how do I connect the layers and which ones do I connect.
dataDir = fullfile('D:\M.Sc Research Project\Data');
imDir = fullfile(dataDir, 'ImageSetRevised');
imds = imageDatastore(imDir, 'LabelSource', 'foldernames');
[trainSet,testSet] = splitEachLabel(imds,0.7,'randomized'); %Dividing the dataset into test and train
%%code for resizing
%% Saving training and test data into separate folders
location_train = 'D:\M.Sc Research Project\Deep Learning Approach\Deep Learning Method for Scale Detection\traindata\TrainingImages';
location_test = 'D:\M.Sc Research Project\Deep Learning Approach\Deep Learning Method for Scale Detection\testdata\TestingImages';
%writeall(trainSet,location_train);
%writeall(testSet,location_test);
PD = 0.30;
cv = cvpartition(size(gTruth.LabelData,1),'HoldOut',PD);
trainGroundTruth = groundTruth(groundTruthDataSource(gTruth.DataSource.Source(cv.training,:)),gTruth.LabelDefinitions,gTruth.LabelData(cv.training,:));
testGroundTruth = groundTruth(groundTruthDataSource(gTruth.DataSource.Source(cv.test,:)),gTruth.LabelDefinitions,gTruth.LabelData(cv.test,:));
dataSetDir = fullfile('D:\','M.Sc Research Project','Deep Learning Approach','Deep Learning Method for Scale Detection','traindata','TrainingImages');
imageDir = fullfile(dataSetDir,'ImageSetRevised');
imds_train = imageDatastore(imageDir);
classNames = ["scales","background"];
imageSize = [461 461];
numClasses = 2;
%lgraph = fcnLayers(imageSize,numClasses,'Type','16s');
layers = [
imageInputLayer([461 461 1],'Name','input','Normalization','zerocenter')
convolution2dLayer(3,64,'Name','conv1_1','Stride',1,'Padding',100)
reluLayer('Name','relu1_1')
convolution2dLayer(3,64,'Name','conv1_2','Stride',1,'Padding',1)
reluLayer('Name','relu1_2')
maxPooling2dLayer(2,'Name','pool1','Stride',2,'Padding',0)
convolution2dLayer(3,128,'Name','conv2_1','Stride',1,'Padding',1)
reluLayer('Name','relu2_1')
convolution2dLayer(3,128,'Name','conv2_2','Stride',1,'Padding',1)
reluLayer('Name','relu2_2')
maxPooling2dLayer(2,'Name','pool2','Stride',2,'Padding',0)
convolution2dLayer(3,256,'Name','conv3_1','Stride',1,'Padding',1)
reluLayer('Name','relu3_1')
convolution2dLayer(3,256,'Name','conv3_2','Stride',1,'Padding',1)
reluLayer('Name','relu3_2')
convolution2dLayer(3,256,'Name','conv3_3','Stride',1,'Padding',1)
reluLayer('Name','relu3_3')
maxPooling2dLayer(2,'Name','pool3','Stride',2,'Padding',0)
convolution2dLayer(3,512,'Name','conv4_1','Stride',1,'Padding',1)
reluLayer('Name','relu4_1')
convolution2dLayer(3,512,'Name','conv4_2','Stride',1,'Padding',1)
reluLayer('Name','relu4_2')
convolution2dLayer(3,512,'Name','conv4_3','Stride',1,'Padding',1)
reluLayer('Name','relu4_3')
maxPooling2dLayer(2,'Name','pool4','Stride',2,'Padding',0)
convolution2dLayer(3,512,'Name','conv5_1','Stride',1,'Padding',1)
reluLayer('Name','relu5_1')
convolution2dLayer(3,512,'Name','conv5_2','Stride',1,'Padding',1)
reluLayer('Name','relu5_2')
convolution2dLayer(3,512,'Name','conv5_3','Stride',1,'Padding',1)
reluLayer('Name','relu5_3')
maxPooling2dLayer(2,'Name','pool5','Stride',2,'Padding',0)
convolution2dLayer(7,4096,'Name','fc6','Stride',1,'Padding',0)
reluLayer('Name','relu6')
dropoutLayer(.5,'Name','drop6')
convolution2dLayer(1,4096,'Name','fc7','Stride',1,'Padding',0)
reluLayer('Name','relu7')
dropoutLayer(.5,'Name','drop7')
convolution2dLayer(1,2,'Name','score_fr','Stride',1,'Padding',0)
transposedConv2dLayer(4,2,'Name','upscore2','Stride',2,'Cropping',0)
additionLayer(2)
transposedConv2dLayer(32,2,'Name','upscore16','Stride',16,'Cropping',0)
crop2dLayer('centercrop','Name','score')
convolution2dLayer(1,2,'Name','score_pool4','Stride',1,'Padding',0)
crop2dLayer('centercrop','Name','score_pool4c')
softmaxLayer('name','softmax')
pixelClassificationLayer('Name','pixelLabels')];
lgraph = layerGraph(layers);
% lgraph = connectLayers(lgraph,'score_pool4c','add_1/in1');
% lgraph = connectLayers(lgraph,'score_pool4','add_1/in2');
%
% lgraph = connectLayers(lgraph,'softmax','add_1/in3');
% lgraph = connectLayers(lgraph,'pixelLabels','add_1/in4');
plot(lgraph)
options = trainingOptions('sgdm', ...
'MaxEpochs',20,...
'InitialLearnRate',1e-4, ...
'Verbose',false, ...
Plots','training-progress');
training_net = trainNetwork(imds_train,lgraph,options);
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Deep Learning Toolbox en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!