@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).

Reply via email to