How to load a fully connected Pytorch model (trained.model) into matlab ?
Show older comments
I have i fully connected neural networks which was trained in pytorch, the model was saved as (.model) i would like to load this model to matlab is there any way how to di it?
1 Comment
QUAN WANG
on 12 Nov 2022
Hello, have you solved the issue ?
Answers (2)
Ameer Hamza
on 8 Oct 2020
4 votes
Yes, the deep learning toolbox supports Framework Interoperability: https://www.mathworks.com/products/deep-learning.html#frm. It directly supports importing models from TensorFlow and Caffe. For PyTorch, you might need to use the ONNX format to load it in MATLAB: https://www.mathworks.com/help/deeplearning/ref/importonnxnetwork.html. This webpage shows how to convert PyTorch to ONNX: https://pytorch.org/tutorials/advanced/super_resolution_with_onnxruntime.html.
4 Comments
Oualid Doukhi
on 8 Oct 2020
Ameer Hamza
on 8 Oct 2020
I haven't tried it myself; however, documentation shows that it is supported.
Yam Alcaraz
on 22 Mar 2021
Just to help out, I tried it with pytorch and it works:
- imported alexnet from torchvision
- exported as an .onnx file
- imported in matlab as importONNXNetwork('alexnet.onnx','OutputLayerType','classification');
Med Future
on 11 Mar 2022
@Yam Alcaraz Can you share your code for both pytorch and MATLAB
Sivylla Paraskevopoulou
on 7 Oct 2022
1 vote
In R2022b we introduced the Deep Learning Toolbox Converter for PyTorch Models support package. This initial release supports importing image classification models. Support for other model types will be added in future releases. Use the function importNetworkFromPyTorch to import a PyTorch model. Make sure that the PyTorch model that you are importing is pretrained and traced.
For more details, check out the blog post What’s New in Interoperability with TensorFlow and PyTorch and the importNetworkFromPyTorch documentation page.
If you want to import another type (not image classification) model from PyTorch, convert you model to the ONNX model format and then, use the importONNXNetwork function.
4 Comments
QUAN WANG
on 12 Nov 2022
Hello, do you know how to import .pth pre-trained model from pytorch into matlab?
Sivylla Paraskevopoulou
on 12 Nov 2022
Edited: Sivylla Paraskevopoulou
on 12 Nov 2022
At the moment, the importNetworkFromPyTorch function accepts only pretrained image classification PyTorch models that are traced and are saved as .pt
To trace and save your model in Python:
X_rnd = torch.rand(1,3,224,224)
traced_model = torch.jit.trace(model.forward,X_rnd)
traced_model.save('traced_model.pt')
And then you can import your PyTorch model in MATLAB:
net = importNetworkFromPyTorch("traced_model.pt")
You can find some additional information in the recent blog post What’s New in Interoperability with TensorFlow and PyTorch.
Jean-Robert Philippe
on 13 Dec 2022
In the opposite direction, how can we export a .pt model from Matlab? I obtained very good results with a model pre-trained in Matlab, but this kind of model doesn't exist in PyTorch.
I tried onnx format and onnx2pytorch, but it doesn't work.
Sivylla Paraskevopoulou
on 13 Dec 2022
Glad to hear you obtained good results with MATLAB!
At the moment, there is no direct path to convert MATLAB models to PyTorch models. You have to do it via ONNX by using the exportONNXNetwork function.
If exporting to TensorFlow is suitable for your workflow, you can use the exportNetworkToTensorFlow function to export MATLAB models to TensorFlow.
Categories
Find more on Pretrained Networks from External Platforms 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!