MATLAB: What is the order of the InputWeigths vector in a NARX net

Deep Learning ToolboxMATLABnarxnn

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 3×13 and not a vector of size 1×39.
I tried transforming the input matrix into a 1×39 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?

Best Answer

  • 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.