MATLAB Answers

0

error "Error using nnet.inter​nal.cnn.la​yer.util.i​nferParame​ters>iInfe​rSize (line 86) The output of layer 13 is incompatible with the input expected by layer 14."

Asked by As Has on 7 Jan 2018
Latest activity Edited by Johannes Bergstrom on 31 May 2018
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 Comments

I'm encountering a similar problem when trying to use googlenet. Likewise, inceptionv3 gives a similar error between layers 24 and 25. What's going on?
i didn't find what is wrong ? if you know please post the answer...thanks

Sign in to comment.

1 Answer

Answer by Joakim Lindblad on 9 Mar 2018

It's because GoogLeNet is a DAG which matlab handles differently than a layered network.
You can try with
trainNetwork(trainingimages,layerGraph(Layers),opts);
but I'm not sure that will be enough in this case.

  1 Comment

For an example showing how to do transfer learning with DAG networks, see Transfer Learning Using GoogLeNet.

Sign in to comment.