TVM не может скомпилировать модель pytorch в density_strategy_cpu
Я создал и обучил модель pytorch v1.4, которая предсказывает значение sin() (на основе примера, найденного в сети). Вывод работает. Затем я попытался скомпилировать его с помощью TVM v0.8dev0 и llvm 10 на Ubuntu с процессором x86. Я следил за руководством по установке TVM и запустил несколько руководств по onnx, которые действительно работают. Я в основном использовал существующие учебные пособия по TVM, чтобы разобраться в описанной ниже процедуре. Обратите внимание, что я не инженер машинного обучения и не DataScience. Это были мои шаги:
import tvm, torch, os
from tvm import relay
state = torch.load("/home/dude/tvm/tst_state.pt") # load the trained pytorch state
import tst
m = tst.Net()
m.load_state_dict(state) # init the model with its trained state
m.eval()
sm = torch.jit.trace(m, torch.tensor([3.1415 / 4])) # convert to a scripted model
# the model only takes 1 input for inference hence [("input0", (1,))]
mod, params = tvm.relay.frontend.from_pytorch(sm, [("input0", (1,))])
mod.astext # outputs some small relay(?) script
with tvm.transform.PassContext(opt_level=1):
lib = relay.build(mod, target="llvm", target_host="llvm", params=params)
Последняя строка дает мне эту ошибку, которую я не знаю, как решить, и где я ошибся. Я надеюсь, что кто-нибудь сможет определить мою ошибку...
... removed some lines here ...
[bt] (3) /home/dude/tvm/build/libtvm.so(TVMFuncCall+0x5f) [0x7f5cd65660af]
[bt] (2) /home/dude/tvm/build/libtvm.so(+0xb4f8a7) [0x7f5cd5f318a7]
[bt] (1) /home/dude/tvm/build/libtvm.so(tvm::GenericFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const+0x1ab) [0x7f5cd5f315cb]
[bt] (0) /home/tvm/build/libtvm.so(+0x1180cab) [0x7f5cd6562cab]
File "/home/tvm/python/tvm/_ffi/_ctypes/packed_func.py", line 81, in cfun
rv = local_pyfunc(*pyargs)
File "/home/tvm/python/tvm/relay/op/strategy/x86.py", line 311, in dense_strategy_cpu
m, _ = inputs[0].shape
ValueError: not enough values to unpack (expected 2, got 1)