@giuseros I doesn't run it, but according to my understanding, these two functions's inputs should be the same type (tvm.relay.expr). For example, inside the alter_op_layout function we have logic:
``` # HWIO -> OIHW kernel_transform = relay.transpose(inputs[1], axes=[3, 2, 0, 1]) # alpha, alpha, CO, CI weight = relay.nn.contrib_conv2d_winograd_weight_transform(kernel_transform, tile_size=tile_size) ``` relay.transpose requires its input's type is tvm.relay.expr. For the doc of `conv2d_alter_layout`, it says we require tvm.relay.expr too: ``` @tvm.target.generic_func def conv2d_alter_layout(attrs, inputs, tinfos, out_type): """Change Conv2D layout. Parameters ---------- attrs : tvm.ir.Attrs Attributes of current convolution inputs : tvm.relay.Expr Grouped input symbols ``` --- [Visit Topic](https://discuss.tvm.apache.org/t/quantized-models-and-legalization-pass/8253/5) 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/ddfb664ef724a61ef67e877b792a612e48a0096dc3c4abe67c5e7d5257ee5709).