def main(): model = C.VGG16(pretrained_model='imagenet') save_as_onnx_then_import_from_nnvm(model, 'vgg16.onnx') model = C.ResNet50(pretrained_model='imagenet', arch='he') # Change cover_all option to False to match the default behavior of MXNet's pooling model.pool1 = lambda x: F.max_pooling_2d( x, ksize=3, stride=2, cover_all=False) save_as_onnx_then_import_from_nnvm(model, 'resnet50.onnx')
def convert_model_to_onnx(input_shape, onnx_file_path): # Export Chainer model to ONNX model = L.VGG16(pretrained_model='imagenet') # Pseudo input x = np.zeros(input_shape, dtype=np.float32) # Don't forget to set train flag off! chainer.config.train = False onnx_chainer.export(model, x, filename=onnx_file_path)
def setUp(self): self.model = C.VGG16(pretrained_model=None, initialW=chainer.initializers.Uniform(1)) self.x = np.zeros((1, 3, 224, 224), dtype=np.float32) self.fn = 'VGG16.onnx'
import numpy as np import chainer import chainercv.links as C import onnx_chainer model = C.VGG16(pretrained_model='imagenet') # Pseudo input x = np.zeros((1, 3, 224, 224), dtype=np.float32) onnx_chainer.export(model, x, filename='vgg16.onnx')