Math used for BiLSTMLayer in predict function
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
James He
el 27 de En. de 2022
Comentada: James He
el 28 de En. de 2022
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!
0 comentarios
Respuesta aceptada
David Willingham
el 27 de En. de 2022
Hi James,
One option for exporting is to export the network to onnx format using exportONNXnetwork. Once exported you could either import the onnx version into the other framework as well as look at how the network wax exported.
3 comentarios
David Willingham
el 28 de En. de 2022
I checked with our developers and what you have looks correct. Without having both your full MATLAB code and python? code it may be difficult for us to find the reason why they maybe different.
Más respuestas (0)
Ver también
Categorías
Más información sobre Image Data Workflows en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!