```
from tvm import relax
from tvm.script.parser import relax as R
from tvm.relax.dpl import is_op, wildcard, is_tuple

def _cocnat_pattern():
    dq0 = is_op("relax.abs")(wildcard())
    dq1 = is_op("relax.abs")(wildcard())
    inp = is_tuple([dq0, dq1])
    out = is_op("relax.concat")([dq0, dq1])
    annotations = {"root": out}

    return ("My_fused.concat_abs", out, annotations)

def test():
    bb = relax.BlockBuilder()
    x = relax.Var("x", R.Tensor((100,), "int8"))
    y = relax.Var("y", R.Tensor((100,), "int8"))
    with bb.function("main", [x, y]):
        with bb.dataflow():
            lv = relax.op.abs(x)
            lv1 = relax.op.abs(y)
            lv2 = relax.op.concat([lv, lv1])
            lv3 = relax.op.nn.relu(lv2)
            gv = bb.emit_output(lv3)
        bb.emit_func_output(gv)

    mod = bb.get()
    assert relax.analysis.well_formed(mod)
    pattern_table = (_cocnat_pattern(),)
    mod1 = relax.transform.FuseOpsByPattern(pattern_table)(mod)
    assert relax.analysis.well_formed(mod1)

if __name__ == "__main__":
    test()
```





---
[Visit 
Topic](https://discuss.tvm.apache.org/t/how-to-fuseops-concat-op0-op1/18484/2) 
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/231e6bedccc6ff7455eadda10ced2bcafb2286af7c5c67c83f41541644a85560).

Reply via email to