Serialization#

Load a model#

onnx.load(f: Union[IO[bytes], str], format: Optional[Any] = None, load_external_data: bool = True) ModelProto#

Loads a serialized ModelProto into memory load_external_data is true if the external data under the same directory of the model and load the external data If not, users need to call load_external_data_for_model with directory to load

Parameters:
  • f – can be a file-like object (has “read” function) or a string containing a file name

  • format – for future use

Returns:

Loaded in-memory ModelProto

from onnx import load

onnx_model = load("model.onnx")

Or:

from onnx import load

with open("model.onnx", "rb") as f:
    onnx_model = load(f)

Save a model#

This ONNX graph needs to be serialized into one contiguous memory buffer. Method SerializeToString is available in every ONNX objects.

with open("model.onnx", "wb") as f:
    f.write(onnx_model.SerializeToString())

This method has the following signature.

class onnx.ModelProto#
SerializeToString()#

Serializes the message to a string, only for initialized messages.

Load data#

Data means here any type containing data including a model, a tensor, a sparse tensor…

onnx.load_model_from_string(s: bytes, format: Optional[Any] = None) ModelProto#

Loads a binary string (bytes) that contains serialized ModelProto

Parameters:
  • s – a string, which contains serialized ModelProto

  • format – for future use

Returns:

Loaded in-memory ModelProto

onnx.load_tensor_from_string(s: bytes, format: Optional[Any] = None) TensorProto#

Loads a binary string (bytes) that contains serialized TensorProto

Parameters:
  • s – a string, which contains serialized TensorProto

  • format – for future use

Returns:

Loaded in-memory TensorProto

protobuf does not store any information about the class of the saved data. Therefore, this class must be known before restoring an object.

Save data#

Any Proto class includes a method called SerializeToString. It must be called to serialize any onnx object into an array of bytes.

class onnx.TensorProto#
SerializeToString()#

Serializes the message to a string, only for initialized messages.

Performance#