[Relay] relay.build error when setting attributes of IR Module.

TVM Version: 0.8 OS: Ubuntu 18.04

I encountered a problem when I use relay.build to build the context from IR Module AFTER I SET ATTRIBUTE OF THE IR MODULE by mod['main'] = mod['main'].with_attr("Attr_Key", "Attr_Value") (Since I want to use my own CodeGen by using mod['main'] = mod['main'].with_attr("compiler", "my_code_gen") ), the onnx model I use is bertsquad-8.onnx with dynamic shape downloaded at: models/bertsquad-8.onnx at master · onnx/models · GitHub

Following script can reproduce my problem:

 1: from tvm import relay
 2: import tvm
 3: from tvm.contrib.debugger import debug_runtime as graph_runtime
 4: import onnx
 5:
 6: model = onnx.load("bertsquad-8.onnx")
 7: target = 'c'
 8: shape_dict = { 
 9:     "unique_ids_raw_output___9:0" : (1,),
10:     "input_ids:0": (1, 256),
11:     "input_mask:0": (1, 256),
12:     "segment_ids:0": (1, 256)
13: }
14: mod, params = relay.frontend.from_onnx(model, shape_dict)
15: mod['main'] = mod['main'].with_attr("Compiler", "My_Code_Gen") # Without this line, the program run normally
16: mod = relay.transform.InferType()(mod)
17: json, lib, _ = relay.build(mod, target=target, params=params)

Once I add Line 15, I encounter following error:

Traceback (most recent call last):
  File "run.py", line 59, in <module>
    json, lib, _ = relay.build(mod, target=target, params=params)
  File "/data/tvm/python/tvm/relay/build_module.py", line 276, in build
    graph_json, mod, params = bld_mod.build(mod, target, target_host, params)
  File "/data/tvm/python/tvm/relay/build_module.py", line 139, in build
    self._build(mod, target, target_host)
  File "/data/tvm/python/tvm/_ffi/_ctypes/packed_func.py", line 237, in __call__
    raise get_last_ffi_error()
tvm._ffi.base.TVMError: Traceback (most recent call last):
  [bt] (8) /data/tvm/build/libtvm.so(tvm::relay::ExprFunctor<void (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&)+0x6b) [0x7fafedc18d9b]
  [bt] (7) /data/tvm/build/libtvm.so(tvm::relay::StorageAllocator::VisitExpr_(tvm::relay::CallNode const*)+0xbe) [0x7fafedbc2c9e]
  [bt] (6) /data/tvm/build/libtvm.so(tvm::relay::ExprVisitor::VisitExpr(tvm::RelayExpr const&)+0x7b) [0x7fafedc6b03b]
  [bt] (5) /data/tvm/build/libtvm.so(tvm::relay::ExprFunctor<void (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&)+0x6b) [0x7fafedc18d9b]
  [bt] (4) /data/tvm/build/libtvm.so(tvm::relay::StorageAllocator::VisitExpr_(tvm::relay::CallNode const*)+0x1b5) [0x7fafedbc2d95]
  [bt] (3) /data/tvm/build/libtvm.so(tvm::relay::StorageAllocator::CreateToken(tvm::RelayExprNode const*, bool)+0x17d) [0x7fafedbc28cd]
  [bt] (2) /data/tvm/build/libtvm.so(tvm::relay::StorageAllocator::Request(tvm::relay::StorageToken*)+0x30) [0x7fafedbc1ae0]
  [bt] (1) /data/tvm/build/libtvm.so(tvm::relay::StorageAllocator::GetMemorySize(tvm::relay::StorageToken*)+0x296) [0x7fafedbc15f6]
  [bt] (0) /data/tvm/build/libtvm.so(+0x2f67928) [0x7fafedbbf928]
  File "/data/tvm/src/relay/backend/graph_plan_memory.cc", line 292
TVMError: 
---------------------------------------------------------------
An internal invariant was violated during the execution of TVM.
Please read TVM's error reporting guidelines.
More details can be found here: https://discuss.tvm.ai/t/error-reporting/7793.
---------------------------------------------------------------
  Check failed: pval != nullptr == false: Cannot allocate memory symbolic tensor shape [?]

But once I delete Line 15, the program act normally, I wonder how to resolve this.