想知道贵司的静态图dump模型,按照官方文档中的ResNet模型的方法保存,不成功。是不是forward只有卷积,激活这种常规操作才可以dump,检测模型中有anchor生成,解码相关的操作是不是不能dump?
贵司的大佬能否给一个RetinaNet dump模型的例子。
model里面的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++代码加载检测模型的时候会报错,能分享一下你的部署代码吗?谢谢