Testonnx 很简单的代码,不知道什么错误

tvm 0.6 , onnx 1.6.0 ,python3.5 .llvm 4.0

先发个正确的版本,这应该能说明我的环境没有问题 使用from_onnx.py里面的模型,super_resolution_0.2.onnx

import onnx import numpy as np import tvm import tvm.relay as relay

onnx_model = onnx.load(‘super_resolution_0.2.onnx’) target = tvm.target.create(‘llvm’) input_name = ‘1’ # change ‘1’ to ‘0’ shape_dict = {input_name: (1, 1, 224, 224)} sym, params = relay.frontend.from_onnx(onnx_model, shape_dict) print(“onnx model files”)

zcc@zcc-X10SRA:~/下载/tvm$ python3 testonnx.py /home/zcc/.local/lib/python3.5/site-packages/xgboost/init.py:28: FutureWarning: Python 3.5 support is deprecated; XGBoost will require Python 3.6+ in the near future. Consider upgrading to Python 3.6+. FutureWarning) /home/zcc/App/incubator-tvm/incubator-tvm/python/tvm/relay/frontend/onnx.py:1487: UserWarning: Mismatched attribute type in ’ : kernel_shape’

==> Context: Bad node spec: input: “1” input: “2” output: “11” op_type: “Conv” attribute { name: “kernel_shape” ints: 5 ints: 5 } attribute { name: “strides” ints: 1 ints: 1 } attribute { name: “pads” ints: 2 ints: 2 ints: 2 ints: 2 } attribute { name: “dilations” ints: 1 ints: 1 } attribute { name: “group” i: 1 } warnings.warn(str(e)) onnx model files

下面是一个错误的示例,使用的是自己的模型,看了一个帖子,打算简化一下onnx 简单测试的代码: import onnx import numpy as np import tvm import tvm.relay as relay onnx_model = onnx.load(‘mnas025.onnx’) target = tvm.target.create(‘llvm’) input_name = ‘data’ # change ‘1’ to ‘0’ shape_dict = {input_name: (1, 3, 112, 112)} sym, params = relay.frontend.from_onnx(onnx_model, shape_dict) print(“onnx model files”)

#with relay.build_config(opt_level=2):

graph, lib, params = relay.build_module.build(sym, target, params=params)

#dtype = ‘float32’

#from tvm.contrib import graph_runtime

#print(“Output model files”) #libpath = “./test.so” #lib.export_library(libpath)

#graph_json_path = “./test.json” #with open(graph_json_path, ‘w’) as fo:

fo.write(graph)

#param_path = “./test.params” #with open(param_path, ‘wb’) as fo:

fo.write(relay.save_param_dict(params))

错误: zcc@zcc-X10SRA:~/下载/tvm$ python3 testonnx.py /home/zcc/.local/lib/python3.5/site-packages/xgboost/init.py:28: FutureWarning: Python 3.5 support is deprecated; XGBoost will require Python 3.6+ in the near future. Consider upgrading to Python 3.6+. FutureWarning) WARNING:root:Attribute momentum is ignored in relay.sym.batch_norm WARNING:root:Attribute spatial is ignored in relay.sym.batch_norm . … … … WARNING:root:Attribute spatial is ignored in relay.sym.batch_norm WARNING:root:Attribute momentum is ignored in relay.sym.batch_norm WARNING:root:Attribute spatial is ignored in relay.sym.batch_norm Traceback (most recent call last):

File “testonnx.py”, line 13, in sym, params = relay.frontend.from_onnx(onnx_model, shape_dict)

File “/home/zcc/App/incubator-tvm/incubator-tvm/python/tvm/relay/frontend/onnx.py”, line 1497, in from_onnx mod, params = g.from_onnx(graph, opset)

File “/home/zcc/App/incubator-tvm/incubator-tvm/python/tvm/relay/frontend/onnx.py”, line 1344, in from_onnx return _module.Module.from_expr(func), self._params

File “/home/zcc/App/incubator-tvm/incubator-tvm/python/tvm/relay/module.py”, line 233, in from_expr return _module.Module_FromExpr(expr, funcs, defs)

File “/home/zcc/App/incubator-tvm/incubator-tvm/python/tvm/_ffi/_ctypes/function.py”, line 207, in call raise get_last_ffi_error()

tvm._ffi.base.TVMError: Traceback (most recent call last): [bt] (7) /home/zcc/App/incubator-tvm/incubator-tvm/build/libtvm.so(TVMFuncCall+0x61) [0x7f6881245e71] [bt] (6) /home/zcc/App/incubator-tvm/incubator-tvm/build/libtvm.so(+0xa888a1) [0x7f68811648a1] [bt] (5) /home/zcc/App/incubator-tvm/incubator-tvm/build/libtvm.so(tvm::relay::ModuleNode::FromExpr(tvm::relay::Expr const&, tvm::Map<tvm::relay::GlobalVar, tvm::relay::Function, void, void> const&, tvm::Map<tvm::relay::GlobalTypeVar, tvm::relay::TypeData, void, void> const&)+0x1d5) [0x7f6881163815] [bt] (4) /home/zcc/App/incubator-tvm/incubator-tvm/build/libtvm.so(tvm::relay::ModuleNode::Add(tvm::relay::GlobalVar const&, tvm::relay::Function const&, bool)+0x28c) [0x7f68811613bc] [bt] (3) /home/zcc/App/incubator-tvm/incubator-tvm/build/libtvm.so(tvm::relay::InferType(tvm::relay::Function const&, tvm::relay::Module const&, tvm::relay::GlobalVar const&)+0x1d7) [0x7f6881084a97] [bt] (2) /home/zcc/App/incubator-tvm/incubator-tvm/build/libtvm.so(tvm::relay::TypeInferencer::Infer(tvm::relay::Expr)+0x86) [0x7f6881084316] [bt] (1) /home/zcc/App/incubator-tvm/incubator-tvm/build/libtvm.so(tvm::relay::ErrorReporter::RenderErrors(tvm::relay::Module const&, bool)+0x230c) [0x7f688114174c] [bt] (0) /home/zcc/App/incubator-tvm/incubator-tvm/build/libtvm.so(dmlc::LogMessageFatal::~LogMessageFatal()+0x32) [0x7f6880a6fae2] File “/home/zcc/App/incubator-tvm/incubator-tvm/src/relay/ir/error.cc”, line 132 TVMError: Error(s) have occurred. The program has been annotated with them:

In main: v0.0.4 fn (%data: Tensor[(1, 3, 112, 112), float32], %scalar_op1: Tensor[(1), float32], %scalar_op2: Tensor[(1), float32], %mnasnet0_stage1_conv0_conv0_weight: Tensor[(8, 3, 3, 3), float32], %mnasnet0_stage1_conv0_batchnorm0_gamma: Tensor[(8), float32], %mnasnet0_stage1_conv0_batchnorm0_beta: Tensor[(8), float32], … … … %mnasnet0_stage5_3_batchnorm0_running_mean: Tensor[(256), float32], %mnasnet0_stage5_3_batchnorm0_running_var: Tensor[(256), float32], %mnasnet0_stage5_3_prelu0_alpha: Tensor[(1), float32], %conv_6dw7_7_conv2d_weight: Tensor[(256, 1, 7, 7), float32], %conv_6dw7_7_batchnorm_gamma: Tensor[(256), float32], %conv_6dw7_7_batchnorm_beta: Tensor[(256), float32], %conv_6dw7_7_batchnorm_moving_mean: Tensor[(256), float32], %conv_6dw7_7_batchnorm_moving_var: Tensor[(256), float32], %pre_fc1_weight: Tensor[(256, 256), float32], %pre_fc1_bias: Tensor[(256), float32], %fc1_gamma: Tensor[(256), float32], %fc1_beta: Tensor[(256), float32], %fc1_moving_mean: Tensor[(256), float32], %fc1_moving_var: Tensor[(256), float32]) { %0 = subtract(%data, %scalar_op1); %1 = multiply(%0, %scalar_op2); %2 = nn.conv2d(%1, %mnasnet0_stage1_conv0_conv0_weight, padding=[1, 1], kernel_size=[3, 3]);

…下面还有