What is the order of the InputWeigths vector in a NARX net?

1 view (last 30 days)
Hello everyone, I am trying to replicate a previously trained NARX net from the net weights.
The net was buit with the following parameters:
inputDelays = 0:12;
feedbackDelays = 1:12;
hiddenLayerSize = 2;
Where the inputs are three elements and the output is one.
When I get the weights from the net, it returns the following:
2×2 cell array
{2×39 double} {2×12 double}
{0×0 double} {0×0 double}
ans =
2×2 cell array
{0×0 double} {0×0 double}
{1×2 double} {0×0 double}
2×1 cell array
{2×1 double}
{1×1 double}
I understand that the element net.IW{1,1} corresponds to the weights of the input vector for each neuron, but since I have three input variables, the input is a matrix of size 3x13 and not a vector of size 1x39.
I tried transforming the input matrix into a 1x39 vector, following the order: [X1(t),X2(t),X3(t),X1(t-1),X2(t-1,X3(t-1),...,X1(t-12),X2(t-12),X3(t-12)], but I do not get the same result as using the network. Is this the correct order? If not, how should it be?

Accepted Answer

Maria Duarte Rosa
Maria Duarte Rosa on 5 Jul 2019
Hi Francisco,
One suggestion is to use genFunction(net) to generate a MATLAB script from the trained network that contains all the operations and parameters of the network. This might help clarifying some of your questions.

More Answers (0)


Find more on Deep Learning Toolbox in Help Center and File Exchange





Community Treasure Hunt

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

Start Hunting!

Translated by