- Convert DAGNetwork object to LayerGraph object
- Replace the last few layers
- Freeze bias/weight of initial layers (optional)
- Re-connect all the layers in the original order by using the support function createLgraphUsingConnections
Errors in transfer learning using resnet101
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
KEN SUEMATSU
am 15 Mär. 2021
Kommentiert: Tan
am 14 Mai 2023
I would like to use resnet101 to do transfer learning.
When I build the network and use the trainNetwork function as shown below, I get the following error. What is the cause?
Layer 'res2a': unconnected input. The input of each layer must be coupled with the output of another layer.
An unconnected input was detected:
net = resnet101;
layers = net.Layers;
layers = [
layers(1:344)
fullyConnectedLayer(Numberofclasses)
layers(346)
classificationLayer];
options = trainingOptions('sgdm',...
'MiniBatchSize',16,...
'InitialLearnRate', 0.0001, ...
...)
trainNetwork(TrainImage,TrainData,layers,options);
0 Kommentare
Akzeptierte Antwort
Akira Agata
am 18 Mär. 2021
Since ResNet-101 is imported as a DAGNetwork object, the following steps will be needed (more details can be found in this Link)
So the MATLAB code will be like this.
net = resnet101;
% 1. Convert DAGNetwork object to LayerGraph object
lgraph = layerGraph(net);
% 2. Replace the last few layers
lgraph = replaceLayer(lgraph,'fc1000',...
fullyConnectedLayer(Numberofclasses,'Name','fcNew'));
lgraph = replaceLayer(lgraph,'ClassificationLayer_predictions',...
classificationLayer('Name','ClassificationNew'));
% 4. Re-connect all the layers in the original order
% by using the support function createLgraphUsingConnections
layers = lgraph.Layers;
connections = lgraph.Connections;
lgraph = createLgraphUsingConnections(layers,connections);
% Train the network
options = trainingOptions('sgdm',...
'MiniBatchSize',16,...
'InitialLearnRate', 0.0001, ...
...)
net = trainNetwork(imdsTrain,lgraph,options);
3 Kommentare
baby
am 18 Feb. 2022
I dont think its an error, its a warning but somehow it appears in red. You can ignore this and proceed with the training procedure, and to make sure you can use command:
analyzeNetwor(lgraph)
if found no error, the traning will process very nicely. ( I hope).
Tan
am 14 Mai 2023
hi although using the command
layers = lgraph.Layers;
connections = lgraph.Connections;
lgraph = createLgraphUsingConnections(layers,connections);
it also show the same error:
trainedNet = trainNetwork(augmentedTrainingSet,lgraph,options);
Error using trainNetwork
Invalid network.
Caused by:
Layer 'inception_3a-output': Unconnected input. Each layer input must be connected to the output of another
layer.
Layer 'inception_3b-output': Unconnected input. Each layer input must be connected to the output of another
layer.
Layer 'inception_4a-output': Unconnected input. Each layer input must be connected to the output of another
layer.
Layer 'inception_4b-output': Unconnected input. Each layer input must be connected to the output of another
layer.
Layer 'inception_4c-output': Unconnected input. Each layer input must be connected to the output of another
layer.
Layer 'inception_4d-output': Unconnected input. Each layer input must be connected to the output of another
layer.
Layer 'inception_4e-output': Unconnected input. Each layer input must be connected to the output of another
layer.
Layer 'inception_5a-output': Unconnected input. Each layer input must be connected to the output of another
layer.
Layer 'inception_5b-output': Unconnected input. Each layer input must be connected to the output of another
layer.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Pretrained Networks from External Platforms 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!