model里面的RetinaNet检测模型,dump模型不成功

想知道贵司的静态图dump模型,按照官方文档中的ResNet模型的方法保存,不成功。是不是forward只有卷积,激活这种常规操作才可以dump,检测模型中有anchor生成,解码相关的操作是不是不能dump?
贵司的大佬能否给一个RetinaNet dump模型的例子。

from megengine import hub
import megengine.functional as F
from megengine.jit import trace
import numpy as np

if __name__ == "__main__":
    model = hub.load("megengine/models",
                     "retinanet_res50_coco_1x_800size",
                     pretrained=True)
    model.eval()

    models_api = hub.import_module(
        "megengine/models",
        git_host="github.com",
    )

    import urllib
    url, filename = ("https://data.megengine.org.cn/images/cat.jpg", "cat.jpg")
    try:
        urllib.URLopener().retrieve(url, filename)
    except:
        urllib.request.urlretrieve(url, filename)

    # Read and pre-process the image
    import cv2
    image = cv2.imread("cat.jpg")

    data, im_info = models_api.DetEvaluator.process_inputs(image, 800, 1333)

    @trace(symbolic=True)
    def func(image, im_info, gt_boxes, *, net):
        pred = net({"image": image, "im_info": im_info, "gt_boxes": gt_boxes})
        return pred

    func.trace(data,
               im_info,
               model.inputs["gt_boxes"].numpy(),
               net=model)
    func.dump("retinanet.mge",
              arg_names=["data", "im_info", "gt_boxes"],
              optimize_for_inference=True)
1赞

我保存成功了resnet50, 你的意思是想要保存模型"retinanet_res50_coco_1x_800size"不成功?

dump的一个关键点在于:

  • 网络所需输入数据通过位置参数(args)传入,比如图片数据
  • 网络结构本身,以及一些常量配置通过关键字参数(kwargs)传入

见文档 https://megengine.org.cn/doc/basic/dynamic_and_static_graph.html#id3

你好,我按照官方文档(https://megengine.org.cn/doc/advanced/deployment.html)跑通了分类resnet、分割deeplabv3plus的模型部署,然后按照你的代码成功导出了检测模型faster-rcnn,但是在使用同样的C++代码加载检测模型的时候会报错,能分享一下你的部署代码吗?谢谢