Hi All, I am fairly new to TVM. I am seeing the following error when parsing PyTorch to TVM. Could anyone please help?
ERROR STACK TRACE:
------------------------------
Traceback (most recent call last):
...
File "~/tvm-1/python/tvm/relay/frontend/pytorch.py", line 2193, in from_pytorch
outputs, ret_name, convert_map, prelude)
File "~/tvm-1/python/tvm/relay/frontend/pytorch.py", line 2086, in convert_operators
outputs[node_name] = _expr.Tuple(inputs)
File "~/tvm-1/python/tvm/relay/expr.py", line 186, in __init__
self.__init_handle_by_constructor__(_ffi_api.Tuple, fields)
File "~/tvm-1/python/tvm/_ffi/_ctypes/object.py", line 95, in __init_handle_by_constructor__
handle = __init_by_constructor__(fconstructor, args)
File "~/tvm-1/python/tvm/_ffi/_ctypes/packed_func.py", line 231, in __init_handle_by_constructor__
raise get_last_ffi_error()
tvm._ffi.base.TVMError: Traceback (most recent call last):
[bt] (8) 9 libtvm.dylib 0x0000000128609b75 void tvm::runtime::TypedPackedFunc<tvm::relay::Tuple (tvm::Array<tvm::RelayExpr, void>)>::AssignTypedLambda<tvm::relay::$_4>(tvm::relay::$_4)::'lambda'(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)::operator()(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*) const + 37
[bt] (7) 8 libtvm.dylib 0x0000000128609ba5 void tvm::runtime::detail::unpack_call<tvm::relay::Tuple, 1, tvm::relay::$_4>(tvm::relay::$_4 const&, tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*) + 37
[bt] (6) 7 libtvm.dylib 0x0000000128609c20 void tvm::runtime::detail::unpack_call_dispatcher<tvm::relay::Tuple, 1, 0, tvm::relay::$_4>::run<>(tvm::relay::$_4 const&, tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*) + 112
[bt] (5) 6 libtvm.dylib 0x0000000128609c6f void tvm::runtime::detail::unpack_call_dispatcher<tvm::relay::Tuple, 0, 1, tvm::relay::$_4>::run<tvm::runtime::TVMMovableArgValue_>(tvm::relay::$_4 const&, tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*, tvm::runtime::TVMMovableArgValue_&&) + 63
[bt] (4) 5 libtvm.dylib 0x0000000127b4749d tvm::runtime::TVMMovableArgValue_::operator tvm::Array<tvm::RelayExpr, void><tvm::Array<tvm::RelayExpr, void>, void>() const + 173
[bt] (3) 4 libtvm.dylib 0x0000000127b47f6c tvm::runtime::PackedFuncValueConverter<tvm::Array<tvm::RelayExpr, void> >::From(tvm::runtime::TVMArgValue const&) + 28
[bt] (2) 3 libtvm.dylib 0x0000000127b48213 tvm::Array<tvm::RelayExpr, void> tvm::runtime::TVMPODValue_::AsObjectRef<tvm::Array<tvm::RelayExpr, void> >() const + 547
[bt] (1) 2 libtvm.dylib 0x0000000126efb1e5 dmlc::LogMessageFatal::~LogMessageFatal() + 21
[bt] (0) 1 libtvm.dylib 0x0000000126efe5d3 dmlc::LogMessageFatal::~LogMessageFatal() + 67
File "~/tvm-1/include/tvm/runtime/packed_func.h", line 1429
Original graph:
Graph is graph(%self.1 ,
%list.1 : Tensor[]):
%23 : bool = prim::Constant[value=1]()
%21 : float = prim::Constant[value=0.10000000000000001]()
%22 : float = prim::Constant[value=1.0000000000000001e-05]()
%26 : float = prim::Constant[value=0.]()
%27 : float = prim::Constant[value=6.]()
%_0_23_1.1 : __torch__.torch.nn.modules.batchnorm.BatchNorm2d = prim::GetAttr[name="0_23_1"](%self.1)
%5 : Tensor, %6 : Tensor = prim::ListUnpack(%list.1)
%8 : bool = aten::Bool(%6)
%10 : Tensor = prim::GetAttr[name="running_mean"](%_0_23_1.1)
%12 : Tensor = prim::GetAttr[name="running_var"](%_0_23_1.1)
%15 : Tensor = prim::GetAttr[name="weight"](%_0_23_1.1)
%17 : Tensor = prim::GetAttr[name="bias"](%_0_23_1.1)
%input.1 : Tensor = aten::batch_norm(%5, %15, %17, %10, %12, %8, %21, %22, %23)
%result.1 : Tensor = aten::hardtanh_(%input.1, %26, %27)
%30 : Tensor[] = prim::ListConstruct(%result.1)
%31 : (Tensor[]) = prim::TupleConstruct(%30)
return (%31)