This problem occurs when I run the following program。And I was prompted to check the following website, but I did not find a solution(For more information, please see: https://tvm.apache.org/docs/errors.html).
demo is:
from PIL import Image
import numpy as np
def preprocess_image(image_file):
resized_image = Image.open(image_file).resize((224, 224))
image_data = np.asarray(resized_image).astype("float32")
# convert HWC to CHW
image_data = image_data.transpose((2, 0, 1))
# after expand_dims, we have format NCHW
image_data = np.expand_dims(image_data, axis = 0)
image_data[:,0,:,:] = 2.0 / 255.0 * image_data[:,0,:,:] - 1
image_data[:,1,:,:] = 2.0 / 255.0 * image_data[:,1,:,:] - 1
image_data[:,2,:,:] = 2.0 / 255.0 * image_data[:,2,:,:] - 1
return image_data
def run(model_file, image_data):
import tflite.Model
from tvm import relay
# open TFLite model file
buf = open(model_file, 'rb').read()
# get TFLite model data structure
tflite_model = tflite.Model.GetRootAsModel(buf, 0)
# TFLite input tensor name, shape and type
input_tensor = "input"
input_shape = (1, 3, 224, 224)
input_dtype = "float32"
# parse TFLite model and convert into Relay computation graph
func, params = relay.frontend.from_tflite(tflite_model, shape_dict={input_tensor: input_shape}, dtype_dict={input_tensor: input_dtype})
# targt x86 cpu
target = "llvm"
with relay.build_module.build_config(opt_level=3):
#graph, lib, params = relay.build(func, target, params=params)
graph, lib, params = relay.build_module.build(func, target, params=params)
import tvm
from tvm.contrib import graph_runtime as runtime
# create a runtime executor module
module = runtime.create(graph, lib, tvm.cpu())
# feed input data
module.set_input(input_tensor, tvm.nd.array(image_data))
# feed related params
module.set_input(**params)
# run
module.run()
# get output
tvm_output = module.get_output(0).asnumpy()
return tvm_output
def post_process(tvm_output, label_file):
# map id to 1001 classes
labels = dict()
with open(label_file) as f:
for id, line in enumerate(f):
labels[id] = line
# convert result to 1D data
predictions = np.squeeze(tvm_output)
# get top 1 prediction
prediction = np.argmax(predictions)
# convert id to class name
print("The image prediction result is: id " + str(prediction) + " name: " + labels[prediction])
if __name__ == "__main__":
image_file = 'cat.png'
model_file = 'mobilenet_v1_1.0_224.tflite'
label_file = 'labels_mobilenet_quant_v1_224.txt'
image_data = preprocess_image(image_file)
tvm_output = run(model_file, image_data)
#post_process(tvm_output, label_file)
#import run_tflite
#tflite_image_data = run_tflite.preprocess_image(image_file)
#tflite_output = run_tflite.run(model_file, tflite_image_data)
# compare tvm_output and tflite_output
#np.testing.assert_allclose(tvm_output, tflite_output, rtol=1e-5, atol=1e-5)
print("Pass!")
error is:
download failed due to URLError(OSError(0, 'Error'),), retrying, 2 attempts left
download failed due to URLError(OSError(0, 'Error'),), retrying, 1 attempt left
WARNING:root:Failed to download tophub package for llvm: <urlopen error [Errno 0] Error>
Traceback (most recent call last):
File "run_tvm.py", line 78, in <module>
tvm_output = run(model_file, image_data)
File "run_tvm.py", line 42, in run
lib = relay.build_module.build(func, target, params=params)
File "/usr/local/tvm_8/python/tvm/relay/build_module.py", line 326, in build
mod=ir_mod, target=target, params=params, executor=executor
File "/usr/local/tvm_8/python/tvm/relay/build_module.py", line 147, in build
self._build(mod, target, target_host, executor)
File "/usr/local/tvm_8/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):
28: TVMFuncCall
at /usr/local/tvm_8/src/runtime/c_runtime_api.cc:474
27: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1150
26: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
at /usr/include/c++/7/bits/std_function.h:706
25: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::relay::backend::RelayBuildModule::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*)#3}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&)
at /usr/include/c++/7/bits/std_function.h:316
24: tvm::relay::backend::RelayBuildModule::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*)#3}::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
at /usr/local/tvm_8/src/relay/backend/build_module.cc:177
23: tvm::relay::backend::RelayBuildModule::Build(tvm::IRModule, tvm::runtime::Map<tvm::Integer, tvm::Target, void, void> const&, tvm::Target const&, tvm::runtime::String)
at /usr/local/tvm_8/src/relay/backend/build_module.cc:280
22: tvm::relay::backend::RelayBuildModule::BuildRelay(tvm::IRModule, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, tvm::runtime::NDArray, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, tvm::runtime::NDArray> > > const&)
at /usr/local/tvm_8/src/relay/backend/build_module.cc:514
21: tvm::relay::backend::RelayBuildModule::Optimize(tvm::IRModule, tvm::runtime::Map<tvm::Integer, tvm::Target, void, void> const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, tvm::runtime::NDArray, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, tvm::runtime::NDArray> > > const&)
at /usr/local/tvm_8/src/relay/backend/build_module.cc:365
20: tvm::transform::Pass::operator()(tvm::IRModule) const
at /usr/local/tvm_8/src/ir/transform.cc:246
19: tvm::transform::PassNode::operator()(tvm::IRModule) const
at /usr/local/tvm_8/include/tvm/ir/transform.h:315
18: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
at /usr/local/tvm_8/src/ir/transform.cc:540
17: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
at /usr/local/tvm_8/src/ir/transform.cc:255
16: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
at /usr/local/tvm_8/src/ir/transform.cc:538
15: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
at /usr/local/tvm_8/src/ir/transform.cc:255
14: tvm::transform::ModulePassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
at /usr/local/tvm_8/src/ir/transform.cc:473
13: tvm::runtime::TypedPackedFunc<tvm::IRModule (tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::IRModule, tvm::transform::PassContext) const
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1497
12: tvm::IRModule tvm::runtime::detail::typed_packed_call_dispatcher<tvm::IRModule>::run<tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::IRModule&&, tvm::transform::PassContext&&)
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1443
11: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::IRModule, tvm::transform::PassContext>(tvm::IRModule&&, tvm::transform::PassContext&&) const
10: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
at /usr/include/c++/7/bits/std_function.h:706
9: _M_invoke
at /usr/include/c++/7/bits/std_function.h:316
8: operator()
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1491
7: unpack_call<tvm::IRModule, 2, tvm::relay::transform::InferType()::<lambda(tvm::IRModule, const PassContext&)> >
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1420
6: run<>
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1381
5: run<tvm::runtime::TVMMovableArgValueWithContext_>
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1381
4: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1396
3: operator()
at /usr/local/tvm_8/src/relay/transforms/type_infer.cc:847
2: tvm::relay::TypeInferencer::Infer(tvm::GlobalVar, tvm::relay::Function)
at /usr/local/tvm_8/src/relay/transforms/type_infer.cc:749
1: tvm::relay::TypeInferencer::Solve()
at /usr/local/tvm_8/src/relay/transforms/type_infer.cc:585
0: tvm::relay::TypeSolver::Solve()
at /usr/local/tvm_8/src/relay/analysis/type_solver.cc:624
40: TVMFuncCall
at /usr/local/tvm_8/src/runtime/c_runtime_api.cc:474
39: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1150
38: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
at /usr/include/c++/7/bits/std_function.h:706
37: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::relay::backend::RelayBuildModule::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*)#3}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&)
at /usr/include/c++/7/bits/std_function.h:316
36: tvm::relay::backend::RelayBuildModule::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*)#3}::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
at /usr/local/tvm_8/src/relay/backend/build_module.cc:177
35: tvm::relay::backend::RelayBuildModule::Build(tvm::IRModule, tvm::runtime::Map<tvm::Integer, tvm::Target, void, void> const&, tvm::Target const&, tvm::runtime::String)
at /usr/local/tvm_8/src/relay/backend/build_module.cc:280
34: tvm::relay::backend::RelayBuildModule::BuildRelay(tvm::IRModule, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, tvm::runtime::NDArray, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, tvm::runtime::NDArray> > > const&)
at /usr/local/tvm_8/src/relay/backend/build_module.cc:514
33: tvm::relay::backend::RelayBuildModule::Optimize(tvm::IRModule, tvm::runtime::Map<tvm::Integer, tvm::Target, void, void> const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, tvm::runtime::NDArray, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, tvm::runtime::NDArray> > > const&)
at /usr/local/tvm_8/src/relay/backend/build_module.cc:365
32: tvm::transform::Pass::operator()(tvm::IRModule) const
at /usr/local/tvm_8/src/ir/transform.cc:246
31: tvm::transform::PassNode::operator()(tvm::IRModule) const
at /usr/local/tvm_8/include/tvm/ir/transform.h:315
30: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
at /usr/local/tvm_8/src/ir/transform.cc:540
29: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
at /usr/local/tvm_8/src/ir/transform.cc:255
28: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
at /usr/local/tvm_8/src/ir/transform.cc:538
27: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
at /usr/local/tvm_8/src/ir/transform.cc:255
26: tvm::transform::ModulePassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
at /usr/local/tvm_8/src/ir/transform.cc:473
25: tvm::runtime::TypedPackedFunc<tvm::IRModule (tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::IRModule, tvm::transform::PassContext) const
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1497
24: tvm::IRModule tvm::runtime::detail::typed_packed_call_dispatcher<tvm::IRModule>::run<tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::IRModule&&, tvm::transform::PassContext&&)
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1443
23: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::IRModule, tvm::transform::PassContext>(tvm::IRModule&&, tvm::transform::PassContext&&) const
22: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
at /usr/include/c++/7/bits/std_function.h:706
21: _M_invoke
at /usr/include/c++/7/bits/std_function.h:316
20: operator()
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1491
19: unpack_call<tvm::IRModule, 2, tvm::relay::transform::InferType()::<lambda(tvm::IRModule, const PassContext&)> >
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1420
18: run<>
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1381
17: run<tvm::runtime::TVMMovableArgValueWithContext_>
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1381
16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1396
15: operator()
at /usr/local/tvm_8/src/relay/transforms/type_infer.cc:847
14: tvm::relay::TypeInferencer::Infer(tvm::GlobalVar, tvm::relay::Function)
at /usr/local/tvm_8/src/relay/transforms/type_infer.cc:749
13: tvm::relay::TypeInferencer::Solve()
at /usr/local/tvm_8/src/relay/transforms/type_infer.cc:585
12: tvm::relay::TypeSolver::Solve()
at /usr/local/tvm_8/src/relay/analysis/type_solver.cc:613
11: tvm::TypedEnvFunc<bool (tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&)>::operator()(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&) const
10: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&>(tvm::runtime::Array<tvm::Type, void> const&, int&&, tvm::Attrs const&, tvm::TypeReporter const&) const
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1368
9: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
at /usr/include/c++/7/bits/std_function.h:706
8: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::TypedPackedFunc<bool (tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&)>::AssignTypedLambda<bool (*)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&)>(bool (*)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&))::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&)
at /usr/include/c++/7/bits/std_function.h:316
7: tvm::runtime::TypedPackedFunc<bool (tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&)>::AssignTypedLambda<bool (*)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&)>(bool (*)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&))::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}::operator()(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*) const
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1491
6: void tvm::runtime::detail::unpack_call<bool, 4, bool (*)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&)>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, bool (* const&)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1420
5: void tvm::runtime::detail::unpack_call_dispatcher<bool, 4, 0, bool (*)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&)>::run<>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, bool (* const&)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1381
4: void tvm::runtime::detail::unpack_call_dispatcher<bool, 3, 1, bool (*)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&)>::run<tvm::runtime::TVMMovableArgValueWithContext_>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, bool (* const&)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*, tvm::runtime::TVMMovableArgValueWithContext_&&)
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1381
3: void tvm::runtime::detail::unpack_call_dispatcher<bool, 2, 2, bool (*)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&)>::run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, bool (* const&)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*, tvm::runtime::TVMMovableArgValueWithContext_&&, tvm::runtime::TVMMovableArgValueWithContext_&&)
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1381
2: void tvm::runtime::detail::unpack_call_dispatcher<bool, 1, 3, bool (*)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&)>::run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, bool (* const&)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*, tvm::runtime::TVMMovableArgValueWithContext_&&, tvm::runtime::TVMMovableArgValueWithContext_&&, tvm::runtime::TVMMovableArgValueWithContext_&&)
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1381
1: void tvm::runtime::detail::unpack_call_dispatcher<bool, 0, 4, bool (*)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&)>::run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, bool (* const&)(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*, tvm::runtime::TVMMovableArgValueWithContext_&&, tvm::runtime::TVMMovableArgValueWithContext_&&, tvm::runtime::TVMMovableArgValueWithContext_&&, tvm::runtime::TVMMovableArgValueWithContext_&&)
at /usr/local/tvm_8/include/tvm/runtime/packed_func.h:1396
0: tvm::relay::ReshapeRel(tvm::runtime::Array<tvm::Type, void> const&, int, tvm::Attrs const&, tvm::TypeReporter const&)
at /usr/local/tvm_8/src/relay/op/tensor/transform.cc:702
File "/usr/local/tvm_8/src/relay/analysis/type_solver.cc", line 624
TVMError:
---------------------------------------------------------------
An error occurred during the execution of TVM.
For more information, please see: https://tvm.apache.org/docs/errors.html
---------------------------------------------------------------
Check failed: (false) is false: [23:02:40] /usr/local/tvm_8/src/relay/op/tensor/transform.cc:702:
---------------------------------------------------------------
An error occurred during the execution of TVM.
For more information, please see: https://tvm.apache.org/docs/errors.html
---------------------------------------------------------------
Check failed: oshape_sum == data_shape_sum (1001 vs. -2002) : Input tensor shape and reshaped shape are not compatible
thank you for helping!!