How to load a fully connected Pytorch model (trained.model) into matlab ?

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?

Answers (2)

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

im trying to load my custom fully connected ONNX model. is this possible
I haven't tried it myself; however, documentation shows that it is supported.
Just to help out, I tried it with pytorch and it works:
  1. imported alexnet from torchvision
  2. exported as an .onnx file
  3. imported in matlab as importONNXNetwork('alexnet.onnx','OutputLayerType','classification');
@Yam Alcaraz Can you share your code for both pytorch and MATLAB

Sign in to comment.

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

Hello, do you know how to import .pth pre-trained model from pytorch into matlab?
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')
For more information on how to trace a PyTorch model, see Torch documentation: Tracing a function
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.
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.
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.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!