Hi Asma,
I understand that you want to get the output data from the hidden layers of a feedforward network.
One way to achieve the same is forward propagating through the feedforward network and performing the necessary computations by accessing the transfer function and weights/biases for the different layers in the network. You can refer the following code in MATLAB:
% Define and train the network
[x,t] = simplefit_dataset;
net = feedforwardnet([10, 8, 10]);
net = train(net, x, t);
% Initialize the input
input = x;
% Initialize a cell array to store data from hidden layers
activations = cell(1, length(net.layers));
% Loop through each layer to compute activations
for i = 1:length(net.layers)
if i == 1
% For the first layer, use input weights and biases
weights = net.IW{1,1};
else
% For subsequent layers, use layer weights and biases
weights = net.LW{i, i-1};
end
biases = net.b{i};
% Compute the activation using feval
transferFcn = str2func(net.layers{i}.transferFcn);
% set input for next layer as output of previous layer
input = feval(transferFcn, weights * input + biases);
% Store the activation in the defined cell array
activations{i} = input;
end
The following documentation links can helpful to get more information on the class properties used in the code above:
- network - https://www.mathworks.com/help/deeplearning/ref/network.html
- network object properties - https://www.mathworks.com/help/deeplearning/ug/neural-network-object-properties.html
- network subobject properties - https://www.mathworks.com/help/deeplearning/ug/neural-network-subobject-properties.html