onnxruntime/tools/python/util/qdq_helpers/optimize_qdq_model.py

35 lines
1.1 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
import argparse
import onnx
import os
import pathlib
from .qdq_model_utils import fix_dq_nodes_with_multiple_consumers
def optimize_qdq_model():
parser = argparse.ArgumentParser(os.path.basename(__file__),
description='''
Update a QDQ format ONNX model to ensure optimal performance when executed using
ONNX Runtime.
''')
parser.add_argument('input_model', type=pathlib.Path, help='Provide path to ONNX model to update.')
parser.add_argument('output_model', type=pathlib.Path, help='Provide path to write updated ONNX model to.')
args = parser.parse_args()
model = onnx.load(str(args.input_model.resolve(strict=True)))
# there's just one utility to run currently but we expect that will grow
fix_dq_nodes_with_multiple_consumers(model)
onnx.save(model, str(args.output_model.resolve()))
if __name__ == '__main__':
optimize_qdq_model()