Clear Filters
Clear Filters

Extracting features from one layer of dlnetwork model MATLAB 2023a

18 views (last 30 days)
I have used the multi-input CNN network example on the following link :
After the traing and getting the predction, I need to extract the features from one of the max pooling layers of the dlnet model.
Can you help by writing the code to do so?
I have tried to use activations function with the dlnet model but not working
for example, using activation with SeriesNetwork or DAGNetwor , the code is
layer = "pool10";
featuresTrain = activations(net,augimdsTrain,layer,OutputAs="rows");
featuresTest = activations(net,augimdsTest,layer,OutputAs="rows");
What is the code to do the same if I have dlnetwork model?

Answers (1)

V Sairam Reddy
V Sairam Reddy on 19 Apr 2023
Hi Mahmoud,
I understand that you want a way to visualise the activations in a dl network.
The 'activations' function in MATLAB is however only supported in SeriesNetwork or DAGNetwork object. Instead you can use the 'foward' function to get the activations in a dl network.
Please find the attached code below:
features = forward(dlNetwork, dlArray, 'Outputs', layerName);
% In your case:
features = forward(dlnet, dlarray(single(XUpper),'SSCB'), 'Outputs', 'pool10');
To know more about the forward function, please check the following link from the documentation:
https://www.mathworks.com/help/deeplearning/ref/dlnetwork.forward.html
  1 Comment
MAHMOUD EID
MAHMOUD EID on 22 Apr 2023
Hi. The issue is how to pass the two inputs to the command predict. when I run the mentioned command , I have recived this error message @V Sairam Reddy
Error using deep.internal.network.dlnetwork/validateForwardInputs
Incorrect number of network inputs. Network has 2 inputs, but 1 inputs were passed.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!