2022-02-23 11:38:40 +08:00
|
|
|
# Copyright (c) OpenMMLab. All rights reserved.
|
2021-12-15 18:43:09 +08:00
|
|
|
import argparse
|
|
|
|
import logging
|
|
|
|
|
2022-05-31 09:18:18 +08:00
|
|
|
from mmdeploy.apis.ncnn import from_onnx
|
2022-01-10 15:46:42 +08:00
|
|
|
from mmdeploy.utils import get_root_logger
|
2021-12-15 18:43:09 +08:00
|
|
|
|
|
|
|
|
|
|
|
def parse_args():
|
|
|
|
parser = argparse.ArgumentParser(description='Convert ONNX to ncnn.')
|
|
|
|
parser.add_argument('onnx_path', help='ONNX model path')
|
2022-05-31 09:18:18 +08:00
|
|
|
parser.add_argument('output_prefix', help='output ncnn model path')
|
2021-12-15 18:43:09 +08:00
|
|
|
parser.add_argument(
|
|
|
|
'--log-level',
|
|
|
|
help='set log level',
|
|
|
|
default='INFO',
|
|
|
|
choices=list(logging._nameToLevel.keys()))
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
return args
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
args = parse_args()
|
2022-01-10 15:46:42 +08:00
|
|
|
logger = get_root_logger(log_level=args.log_level)
|
2021-12-15 18:43:09 +08:00
|
|
|
|
|
|
|
onnx_path = args.onnx_path
|
2022-05-31 09:18:18 +08:00
|
|
|
output_prefix = args.output_prefix
|
2021-12-15 18:43:09 +08:00
|
|
|
|
2022-01-10 15:46:42 +08:00
|
|
|
logger.info(f'onnx2ncnn: \n\tonnx_path: {onnx_path} ')
|
2021-12-15 18:43:09 +08:00
|
|
|
try:
|
2022-05-31 09:18:18 +08:00
|
|
|
from_onnx(onnx_path, output_prefix)
|
2022-01-10 15:46:42 +08:00
|
|
|
logger.info('onnx2ncnn success.')
|
2021-12-15 18:43:09 +08:00
|
|
|
except Exception as e:
|
2022-01-10 15:46:42 +08:00
|
|
|
logger.error(e)
|
|
|
|
logger.error('onnx2ncnn failed.')
|
2021-12-15 18:43:09 +08:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|