How to use setwb?

6 views (last 30 days)
John F
John F on 4 Dec 2021
Answered: Abhaya on 3 Dec 2024
Say I have an already fully configured Neural Network net. I am trying to write the algorithm for the cascade k-fold cross validation of this network. For the first fold I initialize the weights randomly (using initnw). I would like all following folds to get the weights that resulted from the training of the previous fold using initwb and setwb. The relevant code snippet looks like the following:
for i=1:numberOfFolds
if (i==1)
net = init(net); % Random initialization
else
% bestIW{i-1} and bestLW{i-1} are the net.IW and net.LW
% of the best trained network of the previous fold
net.layers{1:end}.initFcn = 'initwb';
net = setwb(net,[bestIW{i-1},bestLW{i-1}]);
end
end
When I run the full code I get the following error message:
Index exceeds the number of array elements (12).
I'm not sure how to format the second arguement of the setwb command in order for this to work. Also, do I need to run init(net) after setwb?

Answers (1)

Abhaya
Abhaya on 3 Dec 2024
Hi John,
The error message Index exceeds the number of array elements (12) indicates that the size of the second input, [bestIW{i-1},bestLW{i-1}], does not align with the structure expected by the net in the MATLAB setwb function. Specifically, the setwb function requires a single vector that contains the combined weights and biases of the network, but the second input currently includes only the weights.
To solve the issue, you can follow the steps given below.
  • Create the Weight Vector: Combine bestIW{i-1}, bestLW{i-1} and bias net.b into one vector:
weights = [bestIW{i-1}(:); bestLW{i-1}(:); net.b(:)]
  • Set the Network Weights: Pass the combined vector to setwb():
net = setwb(net, weights);
After using MATLAB ‘setwb’ function, you do not need to run init(net) again, because the MATLAB setwb function directly sets the weights and biases.
For more information, please refer to following MATLAB documentation for ‘setwb’ function.
Hope it resolves your query.

Categories

Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!