Saved DAGNetwork model is empty when accessed on a differnt machine

I have trained a CNN in pytorch and loaded it into Matlab via ONNX import and saved it is an DAGNetwork. The created DAGNetwork works fine on my computer but when I try to load the same .mat file on another machine, the DAGNetwork cannot be properly loaded. Connections, Layer fields, etc. cannot be accessed. Does anyone know why that is the case?
To my understanding everything that you need to use the model is stored in the DAGNetwork.

3 Comments

What version is the MATLAB on the other machine and does it have Deep Learning Toolbox installed? Does the .mat file load correctly on the machine it was saved on?
Typically I see this happen when I try to load a .mat file where the necessary classes/objects are not available on the other machine. Potentially the imported network required some custom layers that were generated when you imported the network on the original machine, and those layer definitions don't exist on the other machine. These custom layers should be defined in a +modelfile package/folder as described here:
So in that case you would need to copy those files to the new machine too, and make sure MATLAB can see them.
Yes, the issue was that matlab created a custom flatten layer. I replaced this layer with the Matlab FlattenLayer and then the net could be loaded on another machine.
In R2022b, MATLAB introduced the Deep Learning Toolbox Converter for PyTorch Models support package. This initial release supports importing image classification models directly from PyTorch. For more details, check out the blog post What’s New in Interoperability with TensorFlow and PyTorch and the importNetworkFromPyTorch documentation page.

Sign in to comment.

Answers (0)

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Products

Release

R2022a

Community Treasure Hunt

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

Start Hunting!