Error happens on the tutorial page for autotvm on VTA

Hi,
Recently I tried tune_relay_vta.py and found an error below.
this also occurs in the tutorial page (“Out” section in the middle of the page).
It seems we could go forward even this occurred. is it ok to just ignore??

>> python3 vta/tutorials/autotvm/tune_relay_vta.py
Extract tasks...
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "/tvm/python/tvm/autotvm/task/relay_integration.py", line 48, in _lower
    grc.codegen(mod["main"])
  File "/tvm/python/tvm/relay/backend/graph_runtime_codegen.py", line 89, in codegen
    arr = self._get_param_by_name(key)
  File "/tvm/python/tvm/_ffi/_ctypes/packed_func.py", line 225, in __call__
    raise get_last_ffi_error()
tvm._ffi.base.TVMError: Traceback (most recent call last):
  [bt] (6) /tvm/build/libtvm.so(TVMFuncCall+0x95) [0x7f7a275b0892]
  [bt] (5) /tvm/build/libtvm.so(tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const+0x30) [0x7f7a26a6f8f6]
  [bt] (4) /tvm/build/libtvm.so(std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const+0x5a) [0x7f7a26a6ff42]
  [bt] (3) /tvm/build/libtvm.so(std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::relay::backend::GraphRuntimeCodegenModule::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#5}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&)+0x58) [0x7f7a27400bf5]
  [bt] (2) /tvm/build/libtvm.so(tvm::relay::backend::GraphRuntimeCodegenModule::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#5}::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const+0x5e) [0x7f7a273f4042]
  [bt] (1) /tvm/build/libtvm.so(tvm::runtime::TVMArgValue::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const+0x1e2) [0x7f7a268fd482]
  [bt] (0) /tvm/build/libtvm.so(dmlc::LogMessageFatal::~LogMessageFatal()+0x4d) [0x7f7a268fbae1]
  File "../include/tvm/runtime/packed_func.h", line 484
TVMError: Check failed: type_code_ == kTVMStr (8 vs. 11) : expected str but get Object

Extracted 10 conv2d tasks:
(1, 14, 14, 256, 512, 1, 1, 0, 0, 2, 2)
(1, 28, 28, 128, 256, 1, 1, 0, 0, 2, 2)
(1, 56, 56, 64, 128, 1, 1, 0, 0, 2, 2)
(1, 56, 56, 64, 64, 3, 3, 1, 1, 1, 1)
(1, 28, 28, 128, 128, 3, 3, 1, 1, 1, 1)
(1, 56, 56, 64, 128, 3, 3, 1, 1, 2, 2)
(1, 14, 14, 256, 256, 3, 3, 1, 1, 1, 1)
(1, 28, 28, 128, 256, 3, 3, 1, 1, 2, 2)
(1, 7, 7, 512, 512, 3, 3, 1, 1, 1, 1)
(1, 14, 14, 256, 512, 3, 3, 1, 1, 2, 2)

Hi, I met the same question. Did you solve it ?

I’m not sure it’s completely safe or not but at least succeeded to suppress the error message by the following code.

python/tvm/relay/backend/graph_runtime_codegen.py:88
       for key in param_names:
           key = str(key)  # <= I added 
           arr = self._get_param_by_name(key)
           param = empty(arr.shape, dtype=arr.dtype, ctx=arr.ctx)
           arr.copyto(param)
           params[key] = param

Thank you. I will try it.