Skip to content

Instantly share code, notes, and snippets.

@ChaiBapchya
Created July 31, 2020 01:06
Show Gist options
  • Save ChaiBapchya/d6c9f80a9504974ddde33267aaf75f41 to your computer and use it in GitHub Desktop.
Save ChaiBapchya/d6c9f80a9504974ddde33267aaf75f41 to your computer and use it in GitHub Desktop.
Export pre-trained Gluon model to Symbol to ONNX model
from gluoncv import model_zoo
import numpy as np
import mxnet as mx
# download model
model_name = 'resnet50_v1'
resnet50 = model_zoo.get_model(model_name, pretrained=True)
print(model_name+' downloaded')
# convert to symbol
resnet50.hybridize()
print(model_name+' hybridized')
input_shape=(1,3,224,224)
data_array = np.random.uniform(0, 255, size=input_shape).astype("float32")
mx_data = mx.nd.array(data_array)
resnet50(mx_data)
resnet50.export(model_name)
print(model_name+' exported')
#convert using onnx
from mxnet.contrib import onnx as onnx_mxnet
onnx_file='./tp.onnx'
params = './'+model_name+'-0000.params'
#sym = mx.sym.load('./resnetfifty-symbol.json')
sym='./'+model_name+'-symbol.json'
onnx_mxnet.export_model(sym, params, [input_shape], np.float32, onnx_file)
print('onnx export done')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment