Trying to mimic tests/cpp/relay_build_module_test.cc in construct a simple Dense + Relu + Add function as below.
``` auto tensor_type_f32_16_8 = relay::TensorType({16, 8}, DataType::Float(32)); auto tensor_type_f32_8_8 = relay::TensorType({8, 8}, DataType::Float(32)); auto a = relay::Var("a", tensor_type_f32_16_8); auto b = relay::Var("b", tensor_type_f32_8_8); auto c = relay::Var("c", tensor_type_f32_16_8); auto dense_op = relay::Op::Get("nn.dense"); auto x = relay::Call(dense_op, {a, b}, tvm::Attrs(), {}); auto relu_op = relay::Op::Get("nn.relu"); auto y = relay::Call(relu_op, {x}, tvm::Attrs(), {}); auto add_op = relay::Op::Get("add"); auto z = relay::Call(add_op, {y, c}, tvm::Attrs(), {}); auto func = relay::Function(relay::FreeVars(z), z, relay::Type(), {}); auto A = tvm::runtime::NDArray::Empty({16, 8}, {kDLFloat, 32, 1}, {kDLCPU, 0}); auto B = tvm::runtime::NDArray::Empty({8, 8}, {kDLFloat, 32, 1}, {kDLCPU, 0}); auto C = tvm::runtime::NDArray::Empty({16, 8}, {kDLFloat, 32, 1}, {kDLCPU, 0}); auto pA = (float*)A.ToDLPack()->dl_tensor.data; auto pB = (float*)B.ToDLPack()->dl_tensor.data; auto pC = (float*)C.ToDLPack()->dl_tensor.data; for (int i = 0; i < 128; ++i) { pA[i] = i; pC[i] = i + 2; if (i<64) pB[i] = i + 1; } ... // build auto pfb = tvm::runtime::Registry::Get("relay.build_module._BuildModule"); tvm::runtime::Module build_mod = (*pfb)(); auto build_f = build_mod.GetFunction("build", false); auto json_f = build_mod.GetFunction("get_graph_json", false); auto mod_f = build_mod.GetFunction("get_module", false); Map<tvm::Integer, tvm::Target> targets; Target llvm_tgt = Target::Create("llvm"); targets.Set(0, llvm_tgt); auto relay_mod = tvm::IRModule::FromExpr(func); build_f(relay_mod, targets, llvm_tgt); ``` It error out in the step of tvm::IRModule::FromExpr(func): ``` [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from Relay [ RUN ] Relay.BuildModule [09:56:53] /work/git_repo/tvm/src/printer/doc.cc:55: text node: ' an internal invariant was violated while typechecking your program [09:56:53] /work/git_repo/tvm/src/relay/op/nn/nn.h:41: Check failed: param != nullptr: ``` Is there any special setup for params needed in function construction code? Thanks. --- [Visit Topic](https://discuss.tvm.ai/t/error-in-contructing-irmodule-from-relay-c-apis/6225/1) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.ai/email/unsubscribe/125b1ad6c57f99d72ff24c9211c5805af4307bf5315ef5587c385d05309cac9c).