MegEngine/mgeconvert

希望有大佬能贡献一个转换到 NCNN 模型的例子

Milkve opened this issue · 4 comments

这样我就可以在手机上折腾这些东西了

目前mgeconvert不支持直接转到ncnn,您可以尝试一下 megengine->onnx->ncnn 能否正常转换

求给出一些环境:

  1. 支持验证的后端的网址,如NCNN在线验证等
  2. 各类后端转NCNN的验证途径,以及你希望转换的支持方式

一个resnet18 mge->onnx->ncnn的例子

mge->onnx

import megengine
from mgeconvert.converters.tm_to_onnx import tracedmodule_to_onnx
import numpy as np
import onnx
from megengine.traced_module import trace_module
net = megengine.hub.load(
    "megengine/models", "resnet18", use_cache=True, commit=None, pretrained=True
)
net.eval()
inp = megengine.tensor(np.random.random((1,3,224,224)))
tm = trace_module(net,inp)
tracedmodule_to_onnx(tm, "resnet18.onnx")

model = onnx.load_model("resnet18.onnx")
model = onnx.optimizer.optimize(model, passes = ['eliminate_identity'])
onnx.save(model, "resnet18.onnx")

onnx->ncnn
使用ncnn提供的转换器把导出的onnx模型转到ncnn

./ncnn/build/tools/onnx/onnx2ncnn resnet18.onnx

如果没有其他问题,这个issue就先关了,后续有问题欢迎提新的issue