How to get Gradient from Network Created by Neural Network Toolbox?

8 Ansichten (letzte 30 Tage)
How can the gradient of the performance function with respect to the weights and biases of a neural network created by the Neural Network Toolbox be obtained? I am looking for a function analogous to "getwb".
[x,t] = simplefit_dataset;
net = feedforwardnet(10);
net = train(net,x,t);
wb = getwb(net);
gwb = ????; % something analogous to getwb(net)
% resulting in a 31x1 vector
Thanks, Ahmed

Akzeptierte Antwort

Ahmed
Ahmed am 6 Jun. 2013
Actully, the function 'staticderivative' can do this for a static network. In general, however, it is likely that defaultderiv is the better choice.
help defaultderiv
help staticderiv

Weitere Antworten (1)

Greg Heath
Greg Heath am 3 Jun. 2013
[x,t] = simplefit_dataset;
net = fitnet; % No need for feedforwardnet
rng(0) % Convenient for duplicating the run
[ net tr ] = train(net,x,t);
wb = getwb(net);
tr = tr % No semicolon...Look at all of the goodies!
stopcrit = tr.stop
bestepoch = tr.best_epoch
gradient = tr.gradient; %complete history
Hope this helps
Thank you for formally accepting my answer
Greg ;
  7 Kommentare
Greg Heath
Greg Heath am 19 Dez. 2017
Bearbeitet: Greg Heath am 19 Dez. 2017
Sorry, Each year it seems that MATLAB modifies code, presumably to make it better in some esoteric way.
However an annoying result is that the code has become more and more difficult for the average user to understand.
Greg
PS Try contacting MATLAB directly.
Zheng Chai
Zheng Chai am 20 Dez. 2017
Thank you so much Greg. Indeed Matlab modified its code. I could not find a proper helper function in my R2013b, but after updating it to R2017b, I found it. Thank you again for your kind help.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by