error "Error using nnet.internal.cnn.layer.util.inferParameters>iInferSize (line 86) The output of layer 13 is incompatible with the input expected by layer 14."
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
where is the error in this code ..i only use googlenet as deep tuning without change any thing in it's Layers except the last 3 layers . i changed the size of my images to be similar of googlenet (224 224) so what wrong
net=googlenet;
TransfereLayers= net.Layers(2:end-3);
%% my layers Layers =[...
imageInputLayer([224 224 3],'Name','input')
TransfereLayers
fullyConnectedLayer(2,'Name',fc)
softmaxLayer
classificationLayer('Name','coutput')];
%% define the weights and biase
Layers(142).Weights = randn([2 1024]) * 0.001;
Layers(142).Bias = randn([2 1])*0.001 + 1;
%% options opts=trainingOptions('sgdm','Initiallearnrate',0.0001,'maxEpoch',maxEpochs ,..... 'Minibatchsize',miniBatchSize ,... 'Plots','training-progress',.... 'LearnRateSchedule', 'piecewise', ... 'LearnRateDropFactor', 0.1, ... 'LearnRateDropPeriod', 1, ... 'ValidationData',valDigitData,'ValidationFrequency',50 );
[mynet, traininfo] = trainNetwork(trainingimages,Layers,opts);
3 Kommentare
Antworten (1)
Joakim Lindblad
am 9 Mär. 2018
It's because GoogLeNet is a DAG which matlab handles differently than a layered network.
Checkout https://se.mathworks.com/help/nnet/ref/dagnetwork.html and https://se.mathworks.com/help/nnet/ref/googlenet.html
You can try with
trainNetwork(trainingimages,layerGraph(Layers),opts);
but I'm not sure that will be enough in this case.
1 Kommentar
Johannes Bergstrom
am 31 Mai 2018
Bearbeitet: Johannes Bergstrom
am 31 Mai 2018
For an example showing how to do transfer learning with DAG networks, see Transfer Learning Using GoogLeNet.
Siehe auch
Kategorien
Mehr zu Image Data Workflows finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!