import os
import zipfile
import tvm
import nnvm
import mxnet as mx
import numpy as np
from nnvm import compiler
from nnvm.frontend import from_mxnet
from tvm import relay
from mxnet.model import load_checkpoint
dshape = (1, 3, 512, 512)
dtype = "float32"
target_host = None
target = tvm.target.arm_cpu('rasp3b')
inf_json = "deploy_ssd_mobilenet_512/deploy_ssd_mobilenet_512-symbol.json"
sym = mx.sym.load(inf_json)
checkp = "deploy_ssd_mobilenet_512/deploy_ssd_mobilenet_512"
_, arg_params, aux_params = load_checkpoint(checkp, 0)
net, params = relay.frontend.from_mxnet(sym, {"data": dshape}, arg_params=arg_params, \
aux_params=aux_params)
with relay.build_config(opt_level=3):
graph, lib, params = relay.build(net, target, params=params, target_host=target_host)
Error:
Traceback (most recent call last):
File "./compile.py", line 78, in <module>
net, target, {"data": dshape}, params=params, target_host=target_host)
File "/root/tvm/nnvm/python/nnvm/compiler/build_module.py", line 321, in build
graph = graph.apply("GraphCompile")
File "/root/tvm/nnvm/python/nnvm/graph.py", line 250, in apply
check_call(_LIB.NNGraphApplyPasses(self.handle, npass, cpass, ctypes.byref(ghandle)))
File "/root/tvm/nnvm/python/nnvm/_base.py", line 91, in check_call
raise NNVMError(py_str(_LIB.NNGetLastError()))
nnvm._base.NNVMError: TVMError: Check failed: a.type() == b.type(): BinaryOp of mismatched types
During handling of the above exception, another exception occurred:
TVMError: Check failed: a.type() == b.type(): BinaryOp of mismatched types
Error during compile graph
--------------------------
Graph(%input0,
%input1,
%input2,
%input3,
%input4,
%input5,
%input6) {
%input0, shape=[1,84,32,32]
%input1, shape=[1,126,16,16]
%input2, shape=[1,126,8,8]
%input3, shape=[1,126,4,4]
%input4, shape=[1,126,2,2]
%input5, shape=[1,84,1,1]
%input6, shape=[1,84,1,1]
%1 = transpose(%input0, axes='(0, 2, 3, 1)'), shape=[1,32,32,84]
%2 = flatten(%1), shape=[1,86016]
%4 = transpose(%input1, axes='(0, 2, 3, 1)'), shape=[1,16,16,126]
%5 = flatten(%4), shape=[1,32256]
%7 = transpose(%input2, axes='(0, 2, 3, 1)'), shape=[1,8,8,126]
%8 = flatten(%7), shape=[1,8064]
%10 = transpose(%input3, axes='(0, 2, 3, 1)'), shape=[1,4,4,126]
%11 = flatten(%10), shape=[1,2016]
%13 = transpose(%input4, axes='(0, 2, 3, 1)'), shape=[1,2,2,126]
%14 = flatten(%13), shape=[1,504]
%16 = transpose(%input5, axes='(0, 2, 3, 1)'), shape=[1,1,1,84]
%17 = flatten(%16), shape=[1,84]
%19 = transpose(%input6, axes='(0, 2, 3, 1)'), shape=[1,1,1,84]
%20 = flatten(%19), shape=[1,84]
%21 = concatenate(%2, %5, %8, %11, %14, %17, %20, axis='1'), shape=[1,129024]
%22 = reshape(%21, shape='(0, -1, 21)'), shape=[1,6144,21]
%23 = transpose(%22, axes='(0, 2, 1)'), shape=[1,21,6144]
ret %23
}
graph_attr_keys = [shape, shape_num_unknown_nodes, dtype, dtype_num_unknown_nodes]
Stack trace:
File "/root/tvm/3rdparty/HalideIR/src/ir/./IR.h", line 177
[bt] (0) /root/tvm/build/libtvm.so(+0x13c242) [0x7f03c6986242]
[bt] (1) /root/tvm/build/libtvm.so(+0x164e38) [0x7f03c69aee38]
[bt] (2) /root/tvm/build/libtvm.so(tvm::ir::IRMutator::Mutate_(HalideIR::Internal::LE const*, HalideIR::Expr const&)+0xf6) [0x7f03c6b94136]
[bt] (3) /root/tvm/build/libtvm.so(+0x345077) [0x7f03c6b8f077]
[bt] (4) /root/tvm/build/libtvm.so(+0x34ed83) [0x7f03c6b98d83]
[bt] (5) /root/tvm/build/libtvm.so(+0x1ba6a0) [0x7f03c6a046a0]
[bt] (6) /root/tvm/build/libtvm.so(tvm::ir::IRMutator::Mutate(HalideIR::Expr)+0x5b) [0x7f03c6a04c3b]
[bt] (7) /root/tvm/build/libtvm.so(+0x33805e) [0x7f03c6b8205e]
[bt] (8) /root/tvm/build/libtvm.so(+0x3389f5) [0x7f03c6b829f5]
raise get_last_ffi_error()
File "/root/tvm/python/tvm/_ffi/_ctypes/function.py", line 206, in __call__
stmt = ir_pass.VectorizeLoop(stmt)
File "/root/tvm/python/tvm/build_module.py", line 387, in lower
f = tvm.lower(sch, inputs, name=func_name)
File "/root/tvm/nnvm/python/nnvm/compiler/build_module.py", line 123, in _lower
raise RuntimeError(msg)
File "/root/tvm/nnvm/python/nnvm/compiler/build_module.py", line 131, in _lower
rv = local_pyfunc(*pyargs)
File "/root/tvm/python/tvm/_ffi/_ctypes/function.py", line 71, in cfun
File "/root/tvm/3rdparty/HalideIR/src/ir/./IR.h", line 177
[bt] (0) /root/tvm/build/libtvm.so(+0x13c242) [0x7f03c6986242]
[bt] (1) /root/tvm/build/libtvm.so(+0x164e38) [0x7f03c69aee38]
[bt] (2) /root/tvm/build/libtvm.so(tvm::ir::IRMutator::Mutate_(HalideIR::Internal::LE const*, HalideIR::Expr const&)+0xf6) [0x7f03c6b94136]
[bt] (3) /root/tvm/build/libtvm.so(+0x345077) [0x7f03c6b8f077]
[bt] (4) /root/tvm/build/libtvm.so(+0x34ed83) [0x7f03c6b98d83]
[bt] (5) /root/tvm/build/libtvm.so(+0x1ba6a0) [0x7f03c6a046a0]
[bt] (6) /root/tvm/build/libtvm.so(tvm::ir::IRMutator::Mutate(HalideIR::Expr)+0x5b) [0x7f03c6a04c3b]
[bt] (7) /root/tvm/build/libtvm.so(+0x33805e) [0x7f03c6b8205e]
[bt] (8) /root/tvm/build/libtvm.so(+0x3389f5) [0x7f03c6b829f5]
raise get_last_ffi_error()
File "/root/tvm/python/tvm/_ffi/_ctypes/function.py", line 206, in __call__
stmt = ir_pass.VectorizeLoop(stmt)
File "/root/tvm/python/tvm/build_module.py", line 387, in lower
f = tvm.lower(sch, inputs, name=func_name)
File "/root/tvm/nnvm/python/nnvm/compiler/build_module.py", line 123, in _lower
Stack trace:
[bt] (0) /root/tvm/build/libtvm.so(+0x8b544b) [0x7f03c70ff44b]
[bt] (1) /root/tvm/nnvm/python/nnvm/../../../build/libnnvm_compiler.so(+0x11f671) [0x7f03be8dc671]
[bt] (2) /root/tvm/nnvm/python/nnvm/../../../build/libnnvm_compiler.so(+0x11fde7) [0x7f03be8dcde7]
[bt] (3) /root/tvm/nnvm/python/nnvm/../../../build/libnnvm_compiler.so(+0x117177) [0x7f03be8d4177]
[bt] (4) /root/tvm/nnvm/python/nnvm/../../../build/libnnvm_compiler.so(+0x11058a) [0x7f03be8cd58a]
[bt] (5) /root/tvm/nnvm/python/nnvm/../../../build/libnnvm_compiler.so(+0xc8ad0) [0x7f03be885ad0]
[bt] (6) /root/tvm/nnvm/python/nnvm/../../../build/libnnvm_compiler.so(+0x78f23) [0x7f03be835f23]
[bt] (7) /root/tvm/nnvm/python/nnvm/../../../build/libnnvm_compiler.so(NNGraphApplyPasses+0x348) [0x7f03be82a3a8]
[bt] (8) /usr/lib/python3.5/lib-dynload/_ctypes.cpython-35m-x86_64-linux-gnu.so(ffi_call_unix64+0x4c) [0x7f03e77e7e20]
relay frontend:
Traceback (most recent call last):
File "./compile.py", line 74, in <module>
graph, lib, params = relay.build(net, target, params=params, target_host=target_host)
File "/usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/relay/build_module.py", line 303, in build
graph_json, lowered_funcs, params = graph_gen.codegen(func)
File "/usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/relay/backend/graph_runtime_codegen.py", line 90, in codegen
self._codegen(func)
File "tvm/_ffi/_cython/./function.pxi", line 304, in tvm._ffi._cy3.core.FunctionBase.__call__
File "tvm/_ffi/_cython/./function.pxi", line 239, in tvm._ffi._cy3.core.FuncCall
File "tvm/_ffi/_cython/./function.pxi", line 228, in tvm._ffi._cy3.core.FuncCall3
File "tvm/_ffi/_cython/./base.pxi", line 168, in tvm._ffi._cy3.core.CALL
tvm._ffi.base.TVMError: Traceback (most recent call last):
[bt] (8) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x4abb83) [0x7f22bb3cab83]
[bt] (7) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x4af896) [0x7f22bb3ce896]
[bt] (6) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x4abb83) [0x7f22bb3cab83]
[bt] (5) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x4af896) [0x7f22bb3ce896]
[bt] (4) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x4abb83) [0x7f22bb3cab83]
[bt] (3) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x4af518) [0x7f22bb3ce518]
[bt] (2) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x48b96f) [0x7f22bb3aa96f]
[bt] (1) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x4932ff) [0x7f22bb3b22ff]
[bt] (0) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x8e7f8b) [0x7f22bb806f8b]
File "/usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/relay/backend/_backend.py", line 52, in lower
f = _build.lower(sch, inputs, name=func_name)
File "/usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/build_module.py", line 387, in lower
stmt = ir_pass.VectorizeLoop(stmt)
File "tvm/_ffi/_cython/./function.pxi", line 304, in tvm._ffi._cy3.core.FunctionBase.__call__
File "tvm/_ffi/_cython/./function.pxi", line 239, in tvm._ffi._cy3.core.FuncCall
File "tvm/_ffi/_cython/./function.pxi", line 228, in tvm._ffi._cy3.core.FuncCall3
File "tvm/_ffi/_cython/./base.pxi", line 168, in tvm._ffi._cy3.core.CALL
[bt] (8) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x3fb671) [0x7f22bb31a671]
[bt] (7) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x3face5) [0x7f22bb319ce5]
[bt] (6) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(tvm::ir::IRMutator::Mutate(HalideIR::Expr)+0x5d) [0x7f22bb11996d]
[bt] (5) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x1ac7a2) [0x7f22bb0cb7a2]
[bt] (4) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x335dc3) [0x7f22bb254dc3]
[bt] (3) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x32c2f7) [0x7f22bb24b2f7]
[bt] (2) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(tvm::ir::IRMutator::Mutate_(HalideIR::Internal::LE const*, HalideIR::Expr const&)+0xf0) [0x7f22bb2505b0]
[bt] (1) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x1641ee) [0x7f22bb0831ee]
[bt] (0) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x145d33) [0x7f22bb064d33]
File "/home/dlc/tvm/3rdparty/HalideIR/src/ir/./IR.h", line 177
File "tvm/_ffi/_cython/./function.pxi", line 55, in tvm._ffi._cy3.core.tvm_callback
File "/usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/relay/backend/_backend.py", line 60, in lower
raise RuntimeError(msg)
File "/usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/relay/backend/_backend.py", line 52, in lower
f = _build.lower(sch, inputs, name=func_name)
File "/usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/build_module.py", line 387, in lower
stmt = ir_pass.VectorizeLoop(stmt)
File "tvm/_ffi/_cython/./function.pxi", line 304, in tvm._ffi._cy3.core.FunctionBase.__call__
File "tvm/_ffi/_cython/./function.pxi", line 239, in tvm._ffi._cy3.core.FuncCall
File "tvm/_ffi/_cython/./function.pxi", line 228, in tvm._ffi._cy3.core.FuncCall3
File "tvm/_ffi/_cython/./base.pxi", line 168, in tvm._ffi._cy3.core.CALL
[bt] (8) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x3fb671) [0x7f22bb31a671]
[bt] (7) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x3face5) [0x7f22bb319ce5]
[bt] (6) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(tvm::ir::IRMutator::Mutate(HalideIR::Expr)+0x5d) [0x7f22bb11996d]
[bt] (5) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x1ac7a2) [0x7f22bb0cb7a2]
[bt] (4) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x335dc3) [0x7f22bb254dc3]
[bt] (3) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x32c2f7) [0x7f22bb24b2f7]
[bt] (2) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(tvm::ir::IRMutator::Mutate_(HalideIR::Internal::LE const*, HalideIR::Expr const&)+0xf0) [0x7f22bb2505b0]
[bt] (1) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x1641ee) [0x7f22bb0831ee]
[bt] (0) /usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x145d33) [0x7f22bb064d33]
File "/home/dlc/tvm/3rdparty/HalideIR/src/ir/./IR.h", line 177
TVMError: Check failed: a.type() == b.type(): BinaryOp of mismatched types
During handling of the above exception, another exception occurred:
TVMError: Check failed: a.type() == b.type(): BinaryOp of mismatched types
Error during compile function
-----------------------------
v0.0.1
fn (%p0: Tensor[(1, 84, 32, 32), float32], %p1: Tensor[(1, 126, 16, 16), float32], %p2: Tensor[(1, 126, 8, 8), float32], %p3: Tensor[(1, 126, 4, 4), float32], %p4: Tensor[(1, 126, 2, 2), float32], %p5: Tensor[(1, 84, 1, 1), float32], %p6: Tensor[(1, 84, 1, 1), float32], __dict__=meta[StrMap][0]) -> Tensor[(1, 21, 6144), float32] {
%0 = transpose(%p0, axes=[0, 2, 3, 1]) /* ty=Tensor[(1, 32, 32, 84), float32] */
%1 = nn.batch_flatten(%0) /* ty=Tensor[(1, 86016), float32] */
%2 = transpose(%p1, axes=[0, 2, 3, 1]) /* ty=Tensor[(1, 16, 16, 126), float32] */
%3 = nn.batch_flatten(%2) /* ty=Tensor[(1, 32256), float32] */
%4 = transpose(%p2, axes=[0, 2, 3, 1]) /* ty=Tensor[(1, 8, 8, 126), float32] */
%5 = nn.batch_flatten(%4) /* ty=Tensor[(1, 8064), float32] */
%6 = transpose(%p3, axes=[0, 2, 3, 1]) /* ty=Tensor[(1, 4, 4, 126), float32] */
%7 = nn.batch_flatten(%6) /* ty=Tensor[(1, 2016), float32] */
%8 = transpose(%p4, axes=[0, 2, 3, 1]) /* ty=Tensor[(1, 2, 2, 126), float32] */
%9 = nn.batch_flatten(%8) /* ty=Tensor[(1, 504), float32] */
%10 = transpose(%p5, axes=[0, 2, 3, 1]) /* ty=Tensor[(1, 1, 1, 84), float32] */
%11 = nn.batch_flatten(%10) /* ty=Tensor[(1, 84), float32] */
%12 = transpose(%p6, axes=[0, 2, 3, 1]) /* ty=Tensor[(1, 1, 1, 84), float32] */
%13 = nn.batch_flatten(%12) /* ty=Tensor[(1, 84), float32] */
%14 = (%1, %3, %5, %7, %9, %11, %13)
%15 = concatenate(%14, axis=1) /* ty=Tensor[(1, 129024), float32] */
%16 = reshape(%15, newshape=[0, -1, 21]) /* ty=Tensor[(1, 6144, 21), float32] */
transpose(%16, axes=[0, 2, 1]) /* ty=Tensor[(1, 21, 6144), float32] */
}
/* meta data */
{
"root": 1,
"nodes": [
{
"type_key": ""
},
{
"type_key": "StrMap",
"keys": [
"StrMap"
],
"data": [2]
},
{
"type_key": "Array",
"data": [3]
},
{
"type_key": "StrMap",
"keys": [
"Primitive"
],
"data": [4]
},
{
"type_key": "IntImm",
"attrs": {
"dtype": "int32",
"value": "1"
}
}
],
"b64ndarrays": [],
"attrs": {"tvm_version": "0.6.dev"}
}