def @main(%data: Tensor[(1, 112, 112, 32), float32]) -> Tensor[(1, 112, 
112, 64), float32] {
      %3 = fn (%p0: Tensor[(1, 112, 112, 32), float32], %p1: Tensor[(3, 3, 32, 
1), float32], %p2: Tensor[(1, 1, 1, 32), float32], %p3: Tensor[(1, 1, 1, 32), 
float32], Primitive=1) -> Tensor[(1, 112, 112, 32), float32] {
        %0 = nn.conv2d(%p0, %p1, padding=[1, 1, 1, 1], groups=32, channels=32, 
kernel_size=[3, 3], data_layout="NHWC", kernel_layout="HWIO") /* ty=Tensor[(1, 
112, 112, 32), float32] */;
        %1 = multiply(%0, %p2) /* ty=Tensor[(1, 112, 112, 32), float32] */;
        %2 = add(%1, %p3) /* ty=Tensor[(1, 112, 112, 32), float32] */;
        nn.relu(%2) /* ty=Tensor[(1, 112, 112, 32), float32] */
      };
      %4 = %3(%data, meta[relay.Constant][0] /* ty=Tensor[(3, 3, 32, 1), 
float32] */ /* ty=Tensor[(3, 3, 32, 1), float32] */, meta[relay.Constant][1] /* 
ty=Tensor[(1, 1, 1, 32), float32] */ /* ty=Tensor[(1, 1, 1, 32), float32] */, 
meta[relay.Constant][2] /* ty=Tensor[(1, 1, 1, 32), float32] */ /* 
ty=Tensor[(1, 1, 1, 32), float32] */) /* ty=Tensor[(1, 112, 112, 32), float32] 
*/;
      %8 = fn (%p01: Tensor[(1, 112, 112, 32), float32], %p11: Tensor[(1, 1, 
32, 64), float32], %p21: Tensor[(1, 1, 1, 64), float32], %p31: Tensor[(1, 1, 1, 
64), float32], Primitive=1) -> Tensor[(1, 112, 112, 64), float32] {
        %5 = nn.conv2d(%p01, %p11, padding=[0, 0, 0, 0], channels=64, 
kernel_size=[1, 1], data_layout="NHWC", kernel_layout="HWIO") /* ty=Tensor[(1, 
112, 112, 64), float32] */;
        %6 = multiply(%5, %p21) /* ty=Tensor[(1, 112, 112, 64), float32] */;
        %7 = add(%6, %p31) /* ty=Tensor[(1, 112, 112, 64), float32] */;
        nn.relu(%7) /* ty=Tensor[(1, 112, 112, 64), float32] */
      };
      %8(%4, meta[relay.Constant][3] /* ty=Tensor[(1, 1, 32, 64), float32] */ 
/* ty=Tensor[(1, 1, 32, 64), float32] */, meta[relay.Constant][4] /* 
ty=Tensor[(1, 1, 1, 64), float32] */ /* ty=Tensor[(1, 1, 1, 64), float32] */, 
meta[relay.Constant][5] /* ty=Tensor[(1, 1, 1, 64), float32] */ /* 
ty=Tensor[(1, 1, 1, 64), float32] */) /* ty=Tensor[(1, 112, 112, 64), float32] 
*/
    }

Hello, I'm just start learning how to use Relay's pattern matching. I wonder if 
there's a way I can match a function pattern (together with its internal 
pattern, e.g. `conv+mul+add+relu`), just like the two shown in the above 
example? Thanks in advance!





---
[Visit 
Topic](https://discuss.tvm.apache.org/t/how-to-detect-the-pattern-of-a-function/8283/1)
 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/5399e2a8eed927aceeea834ed43a678d29b51523cec87633b4cef221a7c97e86).

Reply via email to