I have a slightly unconventional architecture that at one point performs a convolution on an input with shape (1, 1, 32, 32). When building for a GPU target, everything works well and the graph runs. On CPU however, it looks like relay attempts to convert the tensor from NCHW to NCHWc8, which of course triggers an error since 1 isn’t divisible by 8. I’m not sure why Relay is trying to make this conversion or how I can prevent it from doing so. I’d really appreciate any tips!
Here’s the invocation and error message I get:
with relay.build_config(opt_level=3):
graph, lib, params = relay.build_module.build(
net, target=target, params=params)
TVMError: Check failed: pb->value != 0 (0 vs. 0) : Divide by zero Error during compile function ----------------------------- v0.0.1 fn (%p0: Tensor[(1, 1, 32, 32), float32], __dict__=meta[StrMap][0]) -> Tensor[(1, 0, 32, 32, 8), float32] { layout_transform(%p0, src_layout="NCHW", dst_layout="NCHW8c") /* ty=Tensor[(1, 0, 32, 32, 8), float32] */ }