Files
insightface/deploy/convert_onnx.py

41 lines
1.4 KiB
Python
Raw Normal View History

2020-02-25 14:18:30 +08:00
import sys
import os
import argparse
import onnx
import mxnet as mx
print('mxnet version:', mx.__version__)
print('onnx version:', onnx.__version__)
#make sure to install onnx-1.2.1
#pip uninstall onnx
#pip install onnx==1.2.1
2020-11-06 13:59:21 +08:00
assert onnx.__version__ == '1.2.1'
2020-02-25 14:18:30 +08:00
import numpy as np
from mxnet.contrib import onnx as onnx_mxnet
2020-11-06 13:59:21 +08:00
parser = argparse.ArgumentParser(
description='convert insightface models to onnx')
2020-02-25 14:18:30 +08:00
# general
2020-11-06 13:59:21 +08:00
parser.add_argument('--prefix',
default='./r100-arcface/model',
help='prefix to load model.')
parser.add_argument('--epoch',
default=0,
type=int,
help='epoch number to load model.')
2020-02-25 14:18:30 +08:00
parser.add_argument('--input-shape', default='3,112,112', help='input shape.')
2020-11-06 13:59:21 +08:00
parser.add_argument('--output-onnx',
default='./r100.onnx',
help='path to write onnx model.')
2020-02-25 14:18:30 +08:00
args = parser.parse_args()
2020-11-06 13:59:21 +08:00
input_shape = (1, ) + tuple([int(x) for x in args.input_shape.split(',')])
2020-02-25 14:18:30 +08:00
print('input-shape:', input_shape)
2020-11-06 13:59:21 +08:00
sym_file = "%s-symbol.json" % args.prefix
params_file = "%s-%04d.params" % (args.prefix, args.epoch)
2020-02-25 14:18:30 +08:00
assert os.path.exists(sym_file)
assert os.path.exists(params_file)
2020-11-06 13:59:21 +08:00
converted_model_path = onnx_mxnet.export_model(sym_file, params_file,
[input_shape], np.float32,
args.output_onnx)