Math used for BiLSTMLayer in predict function
Mostrar comentarios más antiguos
I am trying to convert a trained Bi-LSTM network to use on another platform, and wish to know the exact math used for the BiLSTM layer in Matlab predict function, just like the equations used in the LSTM layer Architecture section on this page.
The reason I am asking is that, the output given by the "predict" function is different from the output I calculate using my own code.
So I am trying to figure out the problem.
(pretty sure that I got the parameters like the input weights, recurrectweight, and bias correctly.)
The way I was calculating is as follows:
% forward
ft = sigmoid(wf*xt + uf*ht +bf);
it = sigmoid(wi*xt + ui*ht +bi);
ot = sigmoid(wo*xt + uo*ht +bo);
ctb = tanh(wc*xt + uc*ht +bc);
ct = ft.*ct + it.*ctb;
ht = ot.*tanh(ct);
% backward
xtb = flip(xt);
ftb = sigmoid(wfb*xtb + ufb*htb +bfb);
itb = sigmoid(wib*xtb + uib*htb +bib);
otb = sigmoid(wob*xtb + uob*htb +bob);
ctbb = tanh(wcb*xtb + ucb*htb +bcb);
ctb = ftb.*ctb + itb.*ctbb;
htb = otb.*tanh(ctb);
% output hidden states
Ht = [ht;htb];
Can anyone help? Thank you very much!
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Deep Learning Toolbox en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!