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."
조회 수: 12 (최근 30일)
이전 댓글 표시
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
답변 (1개)
Joakim Lindblad
2018년 3월 9일
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
Johannes Bergstrom
2018년 5월 31일
편집: Johannes Bergstrom
2018년 5월 31일
For an example showing how to do transfer learning with DAG networks, see Transfer Learning Using GoogLeNet.
참고 항목
카테고리
Help Center 및 File Exchange에서 Image Data Workflows에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!