Export LSTM to ONNX with proper input information
4 views (last 30 days)
Show older comments
I have created a LSTM network and converted it to onnx using matlabs exportONNXNetwork. The onnx-network will be loaded in Java using OrtSession.
Layers: [5x1 nnet.cnn.layer.Layer]
layers =
Sequence Input Sequence input with 6 dimensions (numberOfFeatures)
LSTM LSTM with 50 hidden units
Fully connected 2 fully connected layers
Softmax softmax
Clasification Output crossentropyex
Sequence length is 24.
Using exportONNXNetwork(netlstm,filename), the only reported input is 'sequenceinput'.
How can i set up exportONNXNetwork so the onnx-model holds more/all input information needed when loading the model in Java?
0 Comments
Answers (1)
Sivylla Paraskevopoulou
on 7 Jul 2022
I am not sure what you mean by "more/all input information". If you mean that you want a network that can be used for prediction, you must train the layer graph that you created and then export the trained network and not the layer graph.
2 Comments
Sivylla Paraskevopoulou
on 12 Jul 2022
In MATLAB, if your input data is a vector sequence, the sequenceInputLayer expects the data in the format CSN, where C is the number of features or channels, S is the sequence length, and N is the number of observations. For an example on how to train a network with a vector sequence input, Train Network for Sequence Classification.
When you export the network to ONNX, the input tensor shape should be NSC. I am not sure what is happenning to the input when you convert from ONNX to ortSession.
See Also
Categories
Find more on Deep Learning Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!