Hi, I am new to TVM. I need to convert ONNX models into Relay models, compile Relay models into binary files and then run the binary file in tvm.
My question lies in running the binary file in tvm. I've successfully run binary files generated from Relax models through ```tvm.runtime.relax_vm.VirtualMachine```. I've tried to operate binary files generated from Relay models through ```tvm.contrib.graph_executor``` but failed because I can't find the ```main``` function. Here's my code: ```python import numpy as np import tvm from tvm.contrib import graph_executor lib = tvm.runtime.load_module('output.so') dev = tvm.cpu(0) target = 'llvm' module = graph_executor.create(lib['main'](dev)) X = np.array([[1, 2], [3, 4]], dtype=np.float64) A = np.array([[5, 6], [7, 8]], dtype=np.float64) B = np.array([[9, 10], [11, 12]], dtype=np.float64) C = np.array([[13, 14], [15, 16]], dtype=np.float64) D = np.array([[17, 18], [19, 20]], dtype=np.float64) module.set_input("X", X) module.set_input("A", A) module.set_input("B", B) module.set_input("C", C) module.set_input("D", D) module.run() output = module.get_output(0).asnumpy() print("Output Y:", output) ``` Following is the error message: ``` Traceback (most recent call last): File "/home/code/Code_TVM/onnx_to_llvm_ir/relay/run_binary.py", line 9, in <module> module = graph_executor.create(lib['main'](dev)) ~~~^^^^^^^^ File "/home/code/tvm/python/tvm/runtime/module.py", line 192, in __getitem__ return self.get_function(name) ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/code/tvm/python/tvm/runtime/module.py", line 176, in get_function raise AttributeError(f"Module has no function '{name}'") AttributeError: Module has no function 'main' ``` And here's the Relay model: ``` def @main(%X: Tensor[(2, 2), float64] /* ty=Tensor[(2, 2), float64] span=MatMul_0.X:0:0 */, %A: Tensor[(2, 2), float64] /* ty=Tensor[(2, 2), float64] span=MatMul_0.A:0:0 */, %B: Tensor[(2, 2), float64] /* ty=Tensor[(2, 2), float64] span=Add_0.B:0:0 */, %C: Tensor[(2, 2), float64] /* ty=Tensor[(2, 2), float64] span=MatMul_1.C:0:0 */, %D: Tensor[(2, 2), float64] /* ty=Tensor[(2, 2), float64] span=Add_1.D:0:0 */) -> Tensor[(2, 2), float64] { %0 = transpose(%A, axes=[1, 0]) /* ty=Tensor[(2, 2), float64] span=MatMul_0:0:0 */; %1 = nn.dense(%X, %0, units=None, out_dtype="float64") /* ty=Tensor[(2, 2), float64] span=MatMul_0:0:0 */; %2 = add(%1, %B) /* ty=Tensor[(2, 2), float64] span=Add_0:0:0 */; %3 = nn.relu(%2) /* ty=Tensor[(2, 2), float64] span=Relu_0:0:0 */; %4 = transpose(%C, axes=[1, 0]) /* ty=Tensor[(2, 2), float64] span=MatMul_1:0:0 */; %5 = nn.dense(%3, %4, units=None, out_dtype="float64") /* ty=Tensor[(2, 2), float64] span=MatMul_1:0:0 */; add(%5, %D) /* ty=Tensor[(2, 2), float64] span=Add_1:0:0 */ } ``` I wonder which function should I get to run the entire model? Are there any possible ways to run the binary file? Thank you very much! --- [Visit Topic](https://discuss.tvm.apache.org/t/run-relay-generated-binary/18072/1) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/e3039d546313baa66afe297b63f5e1239a249d8ebb4a5a0d58c910d2ac26507c).