microsoft/onnxruntime-extensions

Public

mirrored fromhttps://github.com/microsoft/onnxruntime-extensionsAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
0169129b19715e12031e1f6378121bd671ea7ce3

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

onnxruntime_extensions/pnp/_unifier.py

45lines · modecode

1import onnx
2
3from .._ortapi2 import get_opset_version_from_ort
4from ._utils import ONNXModelUtils
5from ._base import is_processing_module
6from ._torchext import get_id_models, SequentialProcessingModule
7
8
9def export(m, *args,
10 opset_version=0,
11 output_path=None,
12 export_params=True,
13 verbose=False,
14 input_names=None,
15 output_names=None,
16 operator_export_type=None,
17 do_constant_folding=True,
18 dynamic_axes=None,
19 keep_initializers_as_inputs=None,
20 custom_opsets=None,
21 io_mapping=None):
22 """
23 export all models and modules into a merged ONNX model.
24 """
25 if opset_version == 0:
26 opset_version = get_opset_version_from_ort()
27
28 if not is_processing_module(m):
29 m = SequentialProcessingModule(m)
30
31 model = m.export(*args, opset_version=opset_version,
32 output_path=output_path,
33 export_params=export_params,
34 verbose=verbose,
35 input_names=input_names,
36 output_names=output_names,
37 operator_export_type=operator_export_type,
38 do_constant_folding=do_constant_folding,
39 dynamic_axes=dynamic_axes,
40 keep_initializers_as_inputs=keep_initializers_as_inputs,
41 custom_opsets=custom_opsets)
42 full_m = ONNXModelUtils.unfold_model(model, get_id_models(), io_mapping)
43 if output_path is not None:
44 onnx.save_model(full_m, output_path)
45 return full_m
46