import torch
import onnx
import cv2
import tvm
import tvm.relay as relay
from PIL import Image
import numpy as np
# https://zhuanlan.zhihu.com/p/60981432
onnx_model = onnx.load('mobilenetv2.onnx')
img = Image.open('cat.jpg').resize((244, 244))
# 以下的图片读取仅仅是为了测试
img = np.array(img).transpose((2, 0, 1)).astype('float32')
img = img/255.0 # remember pytorch tensor is 0-1
x = img[np.newaxis, :]
#x=torch.unsqueeze(img)
# 这里首先在PC的CPU上进行测试 所以使用LLVM进行导出
target = tvm.target.Target('llvm')
input_name = 'input' # 这儿的名字可以用netron 查看网络结构,找到input节点的name
shape_dict = {input_name: x.shape}
sym, params = relay.frontend.from_onnx(onnx_model, shape_dict)
print(sym)
# 这里利用TVM构建出优化后模型的信息
with relay.build_config(opt_level=2):
graph, lib, params = relay.build(sym, target, params=params)
dtype = 'float32'
from tvm.contrib import graph_runtime
# 下面的函数导出我们需要的动态链接库 地址可以自己定义
print("Output model files")
libpath = "./tvm_output_lib/mobilenet.dll"
lib.export_library(libpath)
# 下面的函数导出我们神经网络的结构,使用json文件保存
graph_json_path = "./tvm_output_lib/mobilenet.json"
with open(graph_json_path, 'w') as fo:
fo.write(graph)
# 下面的函数中我们导出神经网络模型的权重参数
param_path = "./tvm_output_lib/mobilenet.params"
with open(param_path, 'wb') as fo:
fo.write(relay.save_param_dict(params))
# -------------至此导出模型阶段已经结束--------
# 接下来我们加载导出的模型去测试导出的模型是否可以正常工作
loaded_json = open(graph_json_path).read()
loaded_lib = tvm.runtime.load_module(libpath)
loaded_params = bytearray(open(param_path, "rb").read())
# 这里执行的平台为CPU
ctx = tvm.cpu()
module = graph_runtime.create(loaded_json, loaded_lib, ctx)
module.load_params(loaded_params)
module.set_input("input", x) #此处也是输入节点名字
module.run()
out_deploy = module.get_output(0).asnumpy()
print(out_deploy)
没有合适的资源?快使用搜索试试~ 我知道了~
TVM 0.8 测试代码及模型文件
共11个文件
py:6个
onnx:4个
jpg:1个
需积分: 5 12 下载量 128 浏览量
2021-03-21
11:04:43
上传
评论
收藏 53.18MB RAR 举报
温馨提示
深度学习编译引擎TVM. 也可以加群讨论: 61719120x (不有广告,最后一个用x代表,有心的人自己猜群号吧) TVM 0.8版起新api测试代码,模型文件 all in one, 编译好后就可以测试使用。 使用全新API. 无需param/json, 只有一个so/dll 配合本人的编译教程食用更美。 方便大家,不动态调分。只要5分
资源推荐
资源详情
资源评论
收起资源包目录
tvm-test.rar (11个子文件)
mobilenetv2.onnx 13.32MB
mobilenetv3.onnx 9.7MB
tvm_export_test.py 2KB
mobile_hub.py 1KB
mobilenetv2-opt-shape.onnx 13.32MB
tvm_export_new.py 2KB
mobilev3-pytorch-test.py 1KB
mobilenetv3_large_100.onnx 20.89MB
cat.jpg 95KB
run_cv_model.py 2KB
conver_pth_to_onnx.py 1KB
共 11 条
- 1
资源评论
znsoft
- 粉丝: 152
- 资源: 64
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功