mobilenetv3

mobilenetv3#

import set_env
from d2py.utils.file import mkdir
root_dir = ".temp"
mkdir(f"{root_dir}/logs")
from PIL import Image
import numpy as np
import torch
from tvm_book.data.augment import LetterBox
imgsz = 256, 192

strides = 8, 16, 32
mean = (0,)
std = (255,)
input_path = "/media/pc/data/board/arria10/lxw/tasks/images/traffic-light-6945091_960_720.jpg"
letterbox = LetterBox(imgsz, strides=strides, auto=False)

origin_image = np.asanyarray(Image.open(input_path))
letterbox_image = letterbox(image=origin_image)
xs = np.stack([letterbox_image - mean])
print(f"数据内存的连续性:{xs.flags["C_CONTIGUOUS"]}")
xs = xs.transpose((0, 3, 1, 2))  # BHWC to BCHW, (n, 3, h, w)
print(f"数据内存的连续性(transpose):{xs.flags["C_CONTIGUOUS"]}")
xs = np.ascontiguousarray(xs)  # contiguous
print(f"数据内存的连续性:{xs.flags["C_CONTIGUOUS"]}")
xs = xs.astype("float32") / std # 归一化值域范围为 0.0 - 1.0
Image.fromarray(np.concatenate([letterbox_image, (xs[0]*std).astype("uint8").transpose((1, 2, 0))], axis=1))
数据内存的连续性:True
数据内存的连续性(transpose):False
数据内存的连续性:True
../../../_images/e06029fd4630281fd15826859f483a2320c24a006f1aa5c7f4bf198135e613d1.png
import onnx
from tvm import relay

input_name = "images"
onnx_model = onnx.load('/media/pc/data/board/arria10/lxw/tasks/tools/npu_user_demos/models/telecom/Nin1_helmet_small/helmet_small.onnx')
mod, params = relay.frontend.from_onnx(onnx_model, {input_name: xs.shape}, freeze_params=True)
mod.show()
def @main(%images: Tensor[(1, 3, 256, 192), float32] /* ty=Tensor[(1, 3, 256, 192), float32] span=/features/features.0/features.0.0/Conv.images:0:0 */) -> Tensor[(1, 9), float32] {
  %0 = nn.conv2d(%images, meta[relay.Constant][0] /* ty=Tensor[(16, 3, 3, 3), float32] span=/features/features.0/features.0.0/Conv.onnx::Conv_460:0:0 */, strides=[2, 2], padding=[1, 1, 1, 1], channels=16, kernel_size=[3, 3]) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.0/Conv:0:0 */;
  %1 = nn.bias_add(%0, meta[relay.Constant][1] /* ty=Tensor[(16), float32] span=/features/features.0/features.0.0/Conv.onnx::Conv_461:0:0 */) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.0/Conv:0:0 */;
  %2 = multiply(%1, 0.166667f /* ty=float32 span=/features/features.0/features.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.2/HardSigmoid:0:0 */;
  %3 = add(%2, 0.5f /* ty=float32 span=/features/features.0/features.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.2/HardSigmoid:0:0 */;
  %4 = clip(%3, a_min=0f, a_max=1f) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.2/HardSigmoid:0:0 */;
  %5 = multiply(%1, %4) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.2/Mul:0:0 */;
  %6 = nn.conv2d(%5, meta[relay.Constant][2] /* ty=Tensor[(16, 1, 3, 3), float32] span=/features/features.1/block/block.0/block.0.0/Conv.onnx::Conv_463:0:0 */, strides=[2, 2], padding=[1, 1, 1, 1], groups=16, channels=16, kernel_size=[3, 3]) /* ty=Tensor[(1, 16, 64, 48), float32] span=/features/features.1/block/block.0/block.0.0/Conv:0:0 */;
  %7 = nn.bias_add(%6, meta[relay.Constant][3] /* ty=Tensor[(16), float32] span=/features/features.1/block/block.0/block.0.0/Conv.onnx::Conv_464:0:0 */) /* ty=Tensor[(1, 16, 64, 48), float32] span=/features/features.1/block/block.0/block.0.0/Conv:0:0 */;
  %8 = nn.relu(%7) /* ty=Tensor[(1, 16, 64, 48), float32] span=/features/features.1/block/block.0/block.0.2/Relu:0:0 */;
  %9 = nn.global_avg_pool2d(%8) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/GlobalAveragePool:0:0 */;
  %10 = nn.conv2d(%9, meta[relay.Constant][4] /* ty=Tensor[(8, 16, 1, 1), float32] span=/features/features.1/block/block.1/fc1/Conv.features.1.block.1.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=8, kernel_size=[1, 1]) /* ty=Tensor[(1, 8, 1, 1), float32] span=/features/features.1/block/block.1/fc1/Conv:0:0 */;
  %11 = nn.bias_add(%10, meta[relay.Constant][5] /* ty=Tensor[(8), float32] span=/features/features.1/block/block.1/fc1/Conv.features.1.block.1.fc1.bias:0:0 */) /* ty=Tensor[(1, 8, 1, 1), float32] span=/features/features.1/block/block.1/fc1/Conv:0:0 */;
  %12 = nn.relu(%11) /* ty=Tensor[(1, 8, 1, 1), float32] span=/features/features.1/block/block.1/relu/Relu:0:0 */;
  %13 = nn.conv2d(%12, meta[relay.Constant][6] /* ty=Tensor[(16, 8, 1, 1), float32] span=/features/features.1/block/block.1/fc2/Conv.features.1.block.1.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1]) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/fc2/Conv:0:0 */;
  %14 = nn.bias_add(%13, meta[relay.Constant][7] /* ty=Tensor[(16), float32] span=/features/features.1/block/block.1/fc2/Conv.features.1.block.1.fc2.bias:0:0 */) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/fc2/Conv:0:0 */;
  %15 = multiply(%14, 0.166667f /* ty=float32 span=/features/features.1/block/block.1/HardSigmoid:0:0 */) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/HardSigmoid:0:0 */;
  %16 = add(%15, 0.5f /* ty=float32 span=/features/features.1/block/block.1/HardSigmoid:0:0 */) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/HardSigmoid:0:0 */;
  %17 = clip(%16, a_min=0f, a_max=1f) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/HardSigmoid:0:0 */;
  %18 = multiply(%17, %8) /* ty=Tensor[(1, 16, 64, 48), float32] span=/features/features.1/block/block.1/Mul:0:0 */;
  %19 = nn.conv2d(%18, meta[relay.Constant][8] /* ty=Tensor[(16, 16, 1, 1), float32] span=/features/features.1/block/block.2/block.2.0/Conv.onnx::Conv_466:0:0 */, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1]) /* ty=Tensor[(1, 16, 64, 48), float32] span=/features/features.1/block/block.2/block.2.0/Conv:0:0 */;
  %20 = nn.bias_add(%19, meta[relay.Constant][9] /* ty=Tensor[(16), float32] span=/features/features.1/block/block.2/block.2.0/Conv.onnx::Conv_467:0:0 */) /* ty=Tensor[(1, 16, 64, 48), float32] span=/features/features.1/block/block.2/block.2.0/Conv:0:0 */;
  %21 = nn.conv2d(%20, meta[relay.Constant][10] /* ty=Tensor[(72, 16, 1, 1), float32] span=/features/features.2/block/block.0/block.0.0/Conv.onnx::Conv_469:0:0 */, padding=[0, 0, 0, 0], channels=72, kernel_size=[1, 1]) /* ty=Tensor[(1, 72, 64, 48), float32] span=/features/features.2/block/block.0/block.0.0/Conv:0:0 */;
  %22 = nn.bias_add(%21, meta[relay.Constant][11] /* ty=Tensor[(72), float32] span=/features/features.2/block/block.0/block.0.0/Conv.onnx::Conv_470:0:0 */) /* ty=Tensor[(1, 72, 64, 48), float32] span=/features/features.2/block/block.0/block.0.0/Conv:0:0 */;
  %23 = nn.relu(%22) /* ty=Tensor[(1, 72, 64, 48), float32] span=/features/features.2/block/block.0/block.0.2/Relu:0:0 */;
  %24 = nn.conv2d(%23, meta[relay.Constant][12] /* ty=Tensor[(72, 1, 3, 3), float32] span=/features/features.2/block/block.1/block.1.0/Conv.onnx::Conv_472:0:0 */, strides=[2, 2], padding=[1, 1, 1, 1], groups=72, channels=72, kernel_size=[3, 3]) /* ty=Tensor[(1, 72, 32, 24), float32] span=/features/features.2/block/block.1/block.1.0/Conv:0:0 */;
  %25 = nn.bias_add(%24, meta[relay.Constant][13] /* ty=Tensor[(72), float32] span=/features/features.2/block/block.1/block.1.0/Conv.onnx::Conv_473:0:0 */) /* ty=Tensor[(1, 72, 32, 24), float32] span=/features/features.2/block/block.1/block.1.0/Conv:0:0 */;
  %26 = nn.relu(%25) /* ty=Tensor[(1, 72, 32, 24), float32] span=/features/features.2/block/block.1/block.1.2/Relu:0:0 */;
  %27 = nn.conv2d(%26, meta[relay.Constant][14] /* ty=Tensor[(24, 72, 1, 1), float32] span=/features/features.2/block/block.2/block.2.0/Conv.onnx::Conv_475:0:0 */, padding=[0, 0, 0, 0], channels=24, kernel_size=[1, 1]) /* ty=Tensor[(1, 24, 32, 24), float32] span=/features/features.2/block/block.2/block.2.0/Conv:0:0 */;
  %28 = nn.bias_add(%27, meta[relay.Constant][15] /* ty=Tensor[(24), float32] span=/features/features.2/block/block.2/block.2.0/Conv.onnx::Conv_476:0:0 */) /* ty=Tensor[(1, 24, 32, 24), float32] span=/features/features.2/block/block.2/block.2.0/Conv:0:0 */;
  %29 = nn.conv2d(%28, meta[relay.Constant][16] /* ty=Tensor[(88, 24, 1, 1), float32] span=/features/features.3/block/block.0/block.0.0/Conv.onnx::Conv_478:0:0 */, padding=[0, 0, 0, 0], channels=88, kernel_size=[1, 1]) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.0/block.0.0/Conv:0:0 */;
  %30 = nn.bias_add(%29, meta[relay.Constant][17] /* ty=Tensor[(88), float32] span=/features/features.3/block/block.0/block.0.0/Conv.onnx::Conv_479:0:0 */) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.0/block.0.0/Conv:0:0 */;
  %31 = nn.relu(%30) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.0/block.0.2/Relu:0:0 */;
  %32 = nn.conv2d(%31, meta[relay.Constant][18] /* ty=Tensor[(88, 1, 3, 3), float32] span=/features/features.3/block/block.1/block.1.0/Conv.onnx::Conv_481:0:0 */, padding=[1, 1, 1, 1], groups=88, channels=88, kernel_size=[3, 3]) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.1/block.1.0/Conv:0:0 */;
  %33 = nn.bias_add(%32, meta[relay.Constant][19] /* ty=Tensor[(88), float32] span=/features/features.3/block/block.1/block.1.0/Conv.onnx::Conv_482:0:0 */) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.1/block.1.0/Conv:0:0 */;
  %34 = nn.relu(%33) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.1/block.1.2/Relu:0:0 */;
  %35 = nn.conv2d(%34, meta[relay.Constant][20] /* ty=Tensor[(24, 88, 1, 1), float32] span=/features/features.3/block/block.2/block.2.0/Conv.onnx::Conv_484:0:0 */, padding=[0, 0, 0, 0], channels=24, kernel_size=[1, 1]) /* ty=Tensor[(1, 24, 32, 24), float32] span=/features/features.3/block/block.2/block.2.0/Conv:0:0 */;
  %36 = nn.bias_add(%35, meta[relay.Constant][21] /* ty=Tensor[(24), float32] span=/features/features.3/block/block.2/block.2.0/Conv.onnx::Conv_485:0:0 */) /* ty=Tensor[(1, 24, 32, 24), float32] span=/features/features.3/block/block.2/block.2.0/Conv:0:0 */;
  %37 = add(%36, %28) /* ty=Tensor[(1, 24, 32, 24), float32] span=/features/features.3/Add:0:0 */;
  %38 = nn.conv2d(%37, meta[relay.Constant][22] /* ty=Tensor[(96, 24, 1, 1), float32] span=/features/features.4/block/block.0/block.0.0/Conv.onnx::Conv_487:0:0 */, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.0/Conv:0:0 */;
  %39 = nn.bias_add(%38, meta[relay.Constant][23] /* ty=Tensor[(96), float32] span=/features/features.4/block/block.0/block.0.0/Conv.onnx::Conv_488:0:0 */) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.0/Conv:0:0 */;
  %40 = multiply(%39, 0.166667f /* ty=float32 span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %41 = add(%40, 0.5f /* ty=float32 span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %42 = clip(%41, a_min=0f, a_max=1f) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %43 = multiply(%39, %42) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.2/Mul:0:0 */;
  %44 = nn.conv2d(%43, meta[relay.Constant][24] /* ty=Tensor[(96, 1, 5, 5), float32] span=/features/features.4/block/block.1/block.1.0/Conv.onnx::Conv_490:0:0 */, strides=[2, 2], padding=[2, 2, 2, 2], groups=96, channels=96, kernel_size=[5, 5]) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.0/Conv:0:0 */;
  %45 = nn.bias_add(%44, meta[relay.Constant][25] /* ty=Tensor[(96), float32] span=/features/features.4/block/block.1/block.1.0/Conv.onnx::Conv_491:0:0 */) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.0/Conv:0:0 */;
  %46 = multiply(%45, 0.166667f /* ty=float32 span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %47 = add(%46, 0.5f /* ty=float32 span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %48 = clip(%47, a_min=0f, a_max=1f) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %49 = multiply(%45, %48) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.2/Mul:0:0 */;
  %50 = nn.global_avg_pool2d(%49) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/GlobalAveragePool:0:0 */;
  %51 = nn.conv2d(%50, meta[relay.Constant][26] /* ty=Tensor[(24, 96, 1, 1), float32] span=/features/features.4/block/block.2/fc1/Conv.features.4.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=24, kernel_size=[1, 1]) /* ty=Tensor[(1, 24, 1, 1), float32] span=/features/features.4/block/block.2/fc1/Conv:0:0 */;
  %52 = nn.bias_add(%51, meta[relay.Constant][27] /* ty=Tensor[(24), float32] span=/features/features.4/block/block.2/fc1/Conv.features.4.block.2.fc1.bias:0:0 */) /* ty=Tensor[(1, 24, 1, 1), float32] span=/features/features.4/block/block.2/fc1/Conv:0:0 */;
  %53 = nn.relu(%52) /* ty=Tensor[(1, 24, 1, 1), float32] span=/features/features.4/block/block.2/relu/Relu:0:0 */;
  %54 = nn.conv2d(%53, meta[relay.Constant][28] /* ty=Tensor[(96, 24, 1, 1), float32] span=/features/features.4/block/block.2/fc2/Conv.features.4.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/fc2/Conv:0:0 */;
  %55 = nn.bias_add(%54, meta[relay.Constant][29] /* ty=Tensor[(96), float32] span=/features/features.4/block/block.2/fc2/Conv.features.4.block.2.fc2.bias:0:0 */) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/fc2/Conv:0:0 */;
  %56 = multiply(%55, 0.166667f /* ty=float32 span=/features/features.4/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/HardSigmoid:0:0 */;
  %57 = add(%56, 0.5f /* ty=float32 span=/features/features.4/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/HardSigmoid:0:0 */;
  %58 = clip(%57, a_min=0f, a_max=1f) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/HardSigmoid:0:0 */;
  %59 = multiply(%58, %49) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.2/Mul:0:0 */;
  %60 = nn.conv2d(%59, meta[relay.Constant][30] /* ty=Tensor[(40, 96, 1, 1), float32] span=/features/features.4/block/block.3/block.3.0/Conv.onnx::Conv_493:0:0 */, padding=[0, 0, 0, 0], channels=40, kernel_size=[1, 1]) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.4/block/block.3/block.3.0/Conv:0:0 */;
  %61 = nn.bias_add(%60, meta[relay.Constant][31] /* ty=Tensor[(40), float32] span=/features/features.4/block/block.3/block.3.0/Conv.onnx::Conv_494:0:0 */) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.4/block/block.3/block.3.0/Conv:0:0 */;
  %62 = nn.conv2d(%61, meta[relay.Constant][32] /* ty=Tensor[(240, 40, 1, 1), float32] span=/features/features.5/block/block.0/block.0.0/Conv.onnx::Conv_496:0:0 */, padding=[0, 0, 0, 0], channels=240, kernel_size=[1, 1]) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.0/Conv:0:0 */;
  %63 = nn.bias_add(%62, meta[relay.Constant][33] /* ty=Tensor[(240), float32] span=/features/features.5/block/block.0/block.0.0/Conv.onnx::Conv_497:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.0/Conv:0:0 */;
  %64 = multiply(%63, 0.166667f /* ty=float32 span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %65 = add(%64, 0.5f /* ty=float32 span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %66 = clip(%65, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %67 = multiply(%63, %66) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.2/Mul:0:0 */;
  %68 = nn.conv2d(%67, meta[relay.Constant][34] /* ty=Tensor[(240, 1, 5, 5), float32] span=/features/features.5/block/block.1/block.1.0/Conv.onnx::Conv_499:0:0 */, padding=[2, 2, 2, 2], groups=240, channels=240, kernel_size=[5, 5]) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.0/Conv:0:0 */;
  %69 = nn.bias_add(%68, meta[relay.Constant][35] /* ty=Tensor[(240), float32] span=/features/features.5/block/block.1/block.1.0/Conv.onnx::Conv_500:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.0/Conv:0:0 */;
  %70 = multiply(%69, 0.166667f /* ty=float32 span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %71 = add(%70, 0.5f /* ty=float32 span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %72 = clip(%71, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %73 = multiply(%69, %72) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.2/Mul:0:0 */;
  %74 = nn.global_avg_pool2d(%73) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/GlobalAveragePool:0:0 */;
  %75 = nn.conv2d(%74, meta[relay.Constant][36] /* ty=Tensor[(64, 240, 1, 1), float32] span=/features/features.5/block/block.2/fc1/Conv.features.5.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=64, kernel_size=[1, 1]) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.5/block/block.2/fc1/Conv:0:0 */;
  %76 = nn.bias_add(%75, meta[relay.Constant][37] /* ty=Tensor[(64), float32] span=/features/features.5/block/block.2/fc1/Conv.features.5.block.2.fc1.bias:0:0 */) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.5/block/block.2/fc1/Conv:0:0 */;
  %77 = nn.relu(%76) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.5/block/block.2/relu/Relu:0:0 */;
  %78 = nn.conv2d(%77, meta[relay.Constant][38] /* ty=Tensor[(240, 64, 1, 1), float32] span=/features/features.5/block/block.2/fc2/Conv.features.5.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=240, kernel_size=[1, 1]) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/fc2/Conv:0:0 */;
  %79 = nn.bias_add(%78, meta[relay.Constant][39] /* ty=Tensor[(240), float32] span=/features/features.5/block/block.2/fc2/Conv.features.5.block.2.fc2.bias:0:0 */) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/fc2/Conv:0:0 */;
  %80 = multiply(%79, 0.166667f /* ty=float32 span=/features/features.5/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/HardSigmoid:0:0 */;
  %81 = add(%80, 0.5f /* ty=float32 span=/features/features.5/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/HardSigmoid:0:0 */;
  %82 = clip(%81, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/HardSigmoid:0:0 */;
  %83 = multiply(%82, %73) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.2/Mul:0:0 */;
  %84 = nn.conv2d(%83, meta[relay.Constant][40] /* ty=Tensor[(40, 240, 1, 1), float32] span=/features/features.5/block/block.3/block.3.0/Conv.onnx::Conv_502:0:0 */, padding=[0, 0, 0, 0], channels=40, kernel_size=[1, 1]) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.5/block/block.3/block.3.0/Conv:0:0 */;
  %85 = nn.bias_add(%84, meta[relay.Constant][41] /* ty=Tensor[(40), float32] span=/features/features.5/block/block.3/block.3.0/Conv.onnx::Conv_503:0:0 */) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.5/block/block.3/block.3.0/Conv:0:0 */;
  %86 = add(%85, %61) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.5/Add:0:0 */;
  %87 = nn.conv2d(%86, meta[relay.Constant][42] /* ty=Tensor[(240, 40, 1, 1), float32] span=/features/features.6/block/block.0/block.0.0/Conv.onnx::Conv_505:0:0 */, padding=[0, 0, 0, 0], channels=240, kernel_size=[1, 1]) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.0/Conv:0:0 */;
  %88 = nn.bias_add(%87, meta[relay.Constant][43] /* ty=Tensor[(240), float32] span=/features/features.6/block/block.0/block.0.0/Conv.onnx::Conv_506:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.0/Conv:0:0 */;
  %89 = multiply(%88, 0.166667f /* ty=float32 span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %90 = add(%89, 0.5f /* ty=float32 span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %91 = clip(%90, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %92 = multiply(%88, %91) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.2/Mul:0:0 */;
  %93 = nn.conv2d(%92, meta[relay.Constant][44] /* ty=Tensor[(240, 1, 5, 5), float32] span=/features/features.6/block/block.1/block.1.0/Conv.onnx::Conv_508:0:0 */, padding=[2, 2, 2, 2], groups=240, channels=240, kernel_size=[5, 5]) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.0/Conv:0:0 */;
  %94 = nn.bias_add(%93, meta[relay.Constant][45] /* ty=Tensor[(240), float32] span=/features/features.6/block/block.1/block.1.0/Conv.onnx::Conv_509:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.0/Conv:0:0 */;
  %95 = multiply(%94, 0.166667f /* ty=float32 span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %96 = add(%95, 0.5f /* ty=float32 span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %97 = clip(%96, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %98 = multiply(%94, %97) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.2/Mul:0:0 */;
  %99 = nn.global_avg_pool2d(%98) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/GlobalAveragePool:0:0 */;
  %100 = nn.conv2d(%99, meta[relay.Constant][46] /* ty=Tensor[(64, 240, 1, 1), float32] span=/features/features.6/block/block.2/fc1/Conv.features.6.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=64, kernel_size=[1, 1]) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.6/block/block.2/fc1/Conv:0:0 */;
  %101 = nn.bias_add(%100, meta[relay.Constant][47] /* ty=Tensor[(64), float32] span=/features/features.6/block/block.2/fc1/Conv.features.6.block.2.fc1.bias:0:0 */) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.6/block/block.2/fc1/Conv:0:0 */;
  %102 = nn.relu(%101) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.6/block/block.2/relu/Relu:0:0 */;
  %103 = nn.conv2d(%102, meta[relay.Constant][48] /* ty=Tensor[(240, 64, 1, 1), float32] span=/features/features.6/block/block.2/fc2/Conv.features.6.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=240, kernel_size=[1, 1]) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/fc2/Conv:0:0 */;
  %104 = nn.bias_add(%103, meta[relay.Constant][49] /* ty=Tensor[(240), float32] span=/features/features.6/block/block.2/fc2/Conv.features.6.block.2.fc2.bias:0:0 */) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/fc2/Conv:0:0 */;
  %105 = multiply(%104, 0.166667f /* ty=float32 span=/features/features.6/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/HardSigmoid:0:0 */;
  %106 = add(%105, 0.5f /* ty=float32 span=/features/features.6/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/HardSigmoid:0:0 */;
  %107 = clip(%106, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/HardSigmoid:0:0 */;
  %108 = multiply(%107, %98) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.2/Mul:0:0 */;
  %109 = nn.conv2d(%108, meta[relay.Constant][50] /* ty=Tensor[(40, 240, 1, 1), float32] span=/features/features.6/block/block.3/block.3.0/Conv.onnx::Conv_511:0:0 */, padding=[0, 0, 0, 0], channels=40, kernel_size=[1, 1]) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.6/block/block.3/block.3.0/Conv:0:0 */;
  %110 = nn.bias_add(%109, meta[relay.Constant][51] /* ty=Tensor[(40), float32] span=/features/features.6/block/block.3/block.3.0/Conv.onnx::Conv_512:0:0 */) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.6/block/block.3/block.3.0/Conv:0:0 */;
  %111 = add(%110, %86) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.6/Add:0:0 */;
  %112 = nn.conv2d(%111, meta[relay.Constant][52] /* ty=Tensor[(120, 40, 1, 1), float32] span=/features/features.7/block/block.0/block.0.0/Conv.onnx::Conv_514:0:0 */, padding=[0, 0, 0, 0], channels=120, kernel_size=[1, 1]) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.0/Conv:0:0 */;
  %113 = nn.bias_add(%112, meta[relay.Constant][53] /* ty=Tensor[(120), float32] span=/features/features.7/block/block.0/block.0.0/Conv.onnx::Conv_515:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.0/Conv:0:0 */;
  %114 = multiply(%113, 0.166667f /* ty=float32 span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %115 = add(%114, 0.5f /* ty=float32 span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %116 = clip(%115, a_min=0f, a_max=1f) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %117 = multiply(%113, %116) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.2/Mul:0:0 */;
  %118 = nn.conv2d(%117, meta[relay.Constant][54] /* ty=Tensor[(120, 1, 5, 5), float32] span=/features/features.7/block/block.1/block.1.0/Conv.onnx::Conv_517:0:0 */, padding=[2, 2, 2, 2], groups=120, channels=120, kernel_size=[5, 5]) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.0/Conv:0:0 */;
  %119 = nn.bias_add(%118, meta[relay.Constant][55] /* ty=Tensor[(120), float32] span=/features/features.7/block/block.1/block.1.0/Conv.onnx::Conv_518:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.0/Conv:0:0 */;
  %120 = multiply(%119, 0.166667f /* ty=float32 span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %121 = add(%120, 0.5f /* ty=float32 span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %122 = clip(%121, a_min=0f, a_max=1f) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %123 = multiply(%119, %122) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.2/Mul:0:0 */;
  %124 = nn.global_avg_pool2d(%123) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/GlobalAveragePool:0:0 */;
  %125 = nn.conv2d(%124, meta[relay.Constant][56] /* ty=Tensor[(32, 120, 1, 1), float32] span=/features/features.7/block/block.2/fc1/Conv.features.7.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1]) /* ty=Tensor[(1, 32, 1, 1), float32] span=/features/features.7/block/block.2/fc1/Conv:0:0 */;
  %126 = nn.bias_add(%125, meta[relay.Constant][57] /* ty=Tensor[(32), float32] span=/features/features.7/block/block.2/fc1/Conv.features.7.block.2.fc1.bias:0:0 */) /* ty=Tensor[(1, 32, 1, 1), float32] span=/features/features.7/block/block.2/fc1/Conv:0:0 */;
  %127 = nn.relu(%126) /* ty=Tensor[(1, 32, 1, 1), float32] span=/features/features.7/block/block.2/relu/Relu:0:0 */;
  %128 = nn.conv2d(%127, meta[relay.Constant][58] /* ty=Tensor[(120, 32, 1, 1), float32] span=/features/features.7/block/block.2/fc2/Conv.features.7.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=120, kernel_size=[1, 1]) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/fc2/Conv:0:0 */;
  %129 = nn.bias_add(%128, meta[relay.Constant][59] /* ty=Tensor[(120), float32] span=/features/features.7/block/block.2/fc2/Conv.features.7.block.2.fc2.bias:0:0 */) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/fc2/Conv:0:0 */;
  %130 = multiply(%129, 0.166667f /* ty=float32 span=/features/features.7/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/HardSigmoid:0:0 */;
  %131 = add(%130, 0.5f /* ty=float32 span=/features/features.7/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/HardSigmoid:0:0 */;
  %132 = clip(%131, a_min=0f, a_max=1f) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/HardSigmoid:0:0 */;
  %133 = multiply(%132, %123) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.2/Mul:0:0 */;
  %134 = nn.conv2d(%133, meta[relay.Constant][60] /* ty=Tensor[(48, 120, 1, 1), float32] span=/features/features.7/block/block.3/block.3.0/Conv.onnx::Conv_520:0:0 */, padding=[0, 0, 0, 0], channels=48, kernel_size=[1, 1]) /* ty=Tensor[(1, 48, 16, 12), float32] span=/features/features.7/block/block.3/block.3.0/Conv:0:0 */;
  %135 = nn.bias_add(%134, meta[relay.Constant][61] /* ty=Tensor[(48), float32] span=/features/features.7/block/block.3/block.3.0/Conv.onnx::Conv_521:0:0 */) /* ty=Tensor[(1, 48, 16, 12), float32] span=/features/features.7/block/block.3/block.3.0/Conv:0:0 */;
  %136 = nn.conv2d(%135, meta[relay.Constant][62] /* ty=Tensor[(144, 48, 1, 1), float32] span=/features/features.8/block/block.0/block.0.0/Conv.onnx::Conv_523:0:0 */, padding=[0, 0, 0, 0], channels=144, kernel_size=[1, 1]) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.0/Conv:0:0 */;
  %137 = nn.bias_add(%136, meta[relay.Constant][63] /* ty=Tensor[(144), float32] span=/features/features.8/block/block.0/block.0.0/Conv.onnx::Conv_524:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.0/Conv:0:0 */;
  %138 = multiply(%137, 0.166667f /* ty=float32 span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %139 = add(%138, 0.5f /* ty=float32 span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %140 = clip(%139, a_min=0f, a_max=1f) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %141 = multiply(%137, %140) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.2/Mul:0:0 */;
  %142 = nn.conv2d(%141, meta[relay.Constant][64] /* ty=Tensor[(144, 1, 5, 5), float32] span=/features/features.8/block/block.1/block.1.0/Conv.onnx::Conv_526:0:0 */, padding=[2, 2, 2, 2], groups=144, channels=144, kernel_size=[5, 5]) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.0/Conv:0:0 */;
  %143 = nn.bias_add(%142, meta[relay.Constant][65] /* ty=Tensor[(144), float32] span=/features/features.8/block/block.1/block.1.0/Conv.onnx::Conv_527:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.0/Conv:0:0 */;
  %144 = multiply(%143, 0.166667f /* ty=float32 span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %145 = add(%144, 0.5f /* ty=float32 span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %146 = clip(%145, a_min=0f, a_max=1f) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %147 = multiply(%143, %146) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.2/Mul:0:0 */;
  %148 = nn.global_avg_pool2d(%147) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/GlobalAveragePool:0:0 */;
  %149 = nn.conv2d(%148, meta[relay.Constant][66] /* ty=Tensor[(40, 144, 1, 1), float32] span=/features/features.8/block/block.2/fc1/Conv.features.8.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=40, kernel_size=[1, 1]) /* ty=Tensor[(1, 40, 1, 1), float32] span=/features/features.8/block/block.2/fc1/Conv:0:0 */;
  %150 = nn.bias_add(%149, meta[relay.Constant][67] /* ty=Tensor[(40), float32] span=/features/features.8/block/block.2/fc1/Conv.features.8.block.2.fc1.bias:0:0 */) /* ty=Tensor[(1, 40, 1, 1), float32] span=/features/features.8/block/block.2/fc1/Conv:0:0 */;
  %151 = nn.relu(%150) /* ty=Tensor[(1, 40, 1, 1), float32] span=/features/features.8/block/block.2/relu/Relu:0:0 */;
  %152 = nn.conv2d(%151, meta[relay.Constant][68] /* ty=Tensor[(144, 40, 1, 1), float32] span=/features/features.8/block/block.2/fc2/Conv.features.8.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=144, kernel_size=[1, 1]) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/fc2/Conv:0:0 */;
  %153 = nn.bias_add(%152, meta[relay.Constant][69] /* ty=Tensor[(144), float32] span=/features/features.8/block/block.2/fc2/Conv.features.8.block.2.fc2.bias:0:0 */) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/fc2/Conv:0:0 */;
  %154 = multiply(%153, 0.166667f /* ty=float32 span=/features/features.8/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/HardSigmoid:0:0 */;
  %155 = add(%154, 0.5f /* ty=float32 span=/features/features.8/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/HardSigmoid:0:0 */;
  %156 = clip(%155, a_min=0f, a_max=1f) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/HardSigmoid:0:0 */;
  %157 = multiply(%156, %147) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.2/Mul:0:0 */;
  %158 = nn.conv2d(%157, meta[relay.Constant][70] /* ty=Tensor[(48, 144, 1, 1), float32] span=/features/features.8/block/block.3/block.3.0/Conv.onnx::Conv_529:0:0 */, padding=[0, 0, 0, 0], channels=48, kernel_size=[1, 1]) /* ty=Tensor[(1, 48, 16, 12), float32] span=/features/features.8/block/block.3/block.3.0/Conv:0:0 */;
  %159 = nn.bias_add(%158, meta[relay.Constant][71] /* ty=Tensor[(48), float32] span=/features/features.8/block/block.3/block.3.0/Conv.onnx::Conv_530:0:0 */) /* ty=Tensor[(1, 48, 16, 12), float32] span=/features/features.8/block/block.3/block.3.0/Conv:0:0 */;
  %160 = add(%159, %135) /* ty=Tensor[(1, 48, 16, 12), float32] span=/features/features.8/Add:0:0 */;
  %161 = nn.conv2d(%160, meta[relay.Constant][72] /* ty=Tensor[(288, 48, 1, 1), float32] span=/features/features.9/block/block.0/block.0.0/Conv.onnx::Conv_532:0:0 */, padding=[0, 0, 0, 0], channels=288, kernel_size=[1, 1]) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.0/Conv:0:0 */;
  %162 = nn.bias_add(%161, meta[relay.Constant][73] /* ty=Tensor[(288), float32] span=/features/features.9/block/block.0/block.0.0/Conv.onnx::Conv_533:0:0 */) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.0/Conv:0:0 */;
  %163 = multiply(%162, 0.166667f /* ty=float32 span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %164 = add(%163, 0.5f /* ty=float32 span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %165 = clip(%164, a_min=0f, a_max=1f) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %166 = multiply(%162, %165) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.2/Mul:0:0 */;
  %167 = nn.conv2d(%166, meta[relay.Constant][74] /* ty=Tensor[(288, 1, 5, 5), float32] span=/features/features.9/block/block.1/block.1.0/Conv.onnx::Conv_535:0:0 */, strides=[2, 2], padding=[2, 2, 2, 2], groups=288, channels=288, kernel_size=[5, 5]) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.0/Conv:0:0 */;
  %168 = nn.bias_add(%167, meta[relay.Constant][75] /* ty=Tensor[(288), float32] span=/features/features.9/block/block.1/block.1.0/Conv.onnx::Conv_536:0:0 */) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.0/Conv:0:0 */;
  %169 = multiply(%168, 0.166667f /* ty=float32 span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %170 = add(%169, 0.5f /* ty=float32 span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %171 = clip(%170, a_min=0f, a_max=1f) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %172 = multiply(%168, %171) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.2/Mul:0:0 */;
  %173 = nn.global_avg_pool2d(%172) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/GlobalAveragePool:0:0 */;
  %174 = nn.conv2d(%173, meta[relay.Constant][76] /* ty=Tensor[(72, 288, 1, 1), float32] span=/features/features.9/block/block.2/fc1/Conv.features.9.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=72, kernel_size=[1, 1]) /* ty=Tensor[(1, 72, 1, 1), float32] span=/features/features.9/block/block.2/fc1/Conv:0:0 */;
  %175 = nn.bias_add(%174, meta[relay.Constant][77] /* ty=Tensor[(72), float32] span=/features/features.9/block/block.2/fc1/Conv.features.9.block.2.fc1.bias:0:0 */) /* ty=Tensor[(1, 72, 1, 1), float32] span=/features/features.9/block/block.2/fc1/Conv:0:0 */;
  %176 = nn.relu(%175) /* ty=Tensor[(1, 72, 1, 1), float32] span=/features/features.9/block/block.2/relu/Relu:0:0 */;
  %177 = nn.conv2d(%176, meta[relay.Constant][78] /* ty=Tensor[(288, 72, 1, 1), float32] span=/features/features.9/block/block.2/fc2/Conv.features.9.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=288, kernel_size=[1, 1]) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/fc2/Conv:0:0 */;
  %178 = nn.bias_add(%177, meta[relay.Constant][79] /* ty=Tensor[(288), float32] span=/features/features.9/block/block.2/fc2/Conv.features.9.block.2.fc2.bias:0:0 */) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/fc2/Conv:0:0 */;
  %179 = multiply(%178, 0.166667f /* ty=float32 span=/features/features.9/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/HardSigmoid:0:0 */;
  %180 = add(%179, 0.5f /* ty=float32 span=/features/features.9/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/HardSigmoid:0:0 */;
  %181 = clip(%180, a_min=0f, a_max=1f) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/HardSigmoid:0:0 */;
  %182 = multiply(%181, %172) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.2/Mul:0:0 */;
  %183 = nn.conv2d(%182, meta[relay.Constant][80] /* ty=Tensor[(96, 288, 1, 1), float32] span=/features/features.9/block/block.3/block.3.0/Conv.onnx::Conv_538:0:0 */, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.9/block/block.3/block.3.0/Conv:0:0 */;
  %184 = nn.bias_add(%183, meta[relay.Constant][81] /* ty=Tensor[(96), float32] span=/features/features.9/block/block.3/block.3.0/Conv.onnx::Conv_539:0:0 */) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.9/block/block.3/block.3.0/Conv:0:0 */;
  %185 = nn.conv2d(%184, meta[relay.Constant][82] /* ty=Tensor[(576, 96, 1, 1), float32] span=/features/features.10/block/block.0/block.0.0/Conv.onnx::Conv_541:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.0/Conv:0:0 */;
  %186 = nn.bias_add(%185, meta[relay.Constant][83] /* ty=Tensor[(576), float32] span=/features/features.10/block/block.0/block.0.0/Conv.onnx::Conv_542:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.0/Conv:0:0 */;
  %187 = multiply(%186, 0.166667f /* ty=float32 span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %188 = add(%187, 0.5f /* ty=float32 span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %189 = clip(%188, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %190 = multiply(%186, %189) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.2/Mul:0:0 */;
  %191 = nn.conv2d(%190, meta[relay.Constant][84] /* ty=Tensor[(576, 1, 5, 5), float32] span=/features/features.10/block/block.1/block.1.0/Conv.onnx::Conv_544:0:0 */, padding=[2, 2, 2, 2], groups=576, channels=576, kernel_size=[5, 5]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.0/Conv:0:0 */;
  %192 = nn.bias_add(%191, meta[relay.Constant][85] /* ty=Tensor[(576), float32] span=/features/features.10/block/block.1/block.1.0/Conv.onnx::Conv_545:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.0/Conv:0:0 */;
  %193 = multiply(%192, 0.166667f /* ty=float32 span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %194 = add(%193, 0.5f /* ty=float32 span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %195 = clip(%194, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %196 = multiply(%192, %195) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.2/Mul:0:0 */;
  %197 = nn.global_avg_pool2d(%196) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/GlobalAveragePool:0:0 */;
  %198 = nn.conv2d(%197, meta[relay.Constant][86] /* ty=Tensor[(144, 576, 1, 1), float32] span=/features/features.10/block/block.2/fc1/Conv.features.10.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=144, kernel_size=[1, 1]) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.10/block/block.2/fc1/Conv:0:0 */;
  %199 = nn.bias_add(%198, meta[relay.Constant][87] /* ty=Tensor[(144), float32] span=/features/features.10/block/block.2/fc1/Conv.features.10.block.2.fc1.bias:0:0 */) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.10/block/block.2/fc1/Conv:0:0 */;
  %200 = nn.relu(%199) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.10/block/block.2/relu/Relu:0:0 */;
  %201 = nn.conv2d(%200, meta[relay.Constant][88] /* ty=Tensor[(576, 144, 1, 1), float32] span=/features/features.10/block/block.2/fc2/Conv.features.10.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/fc2/Conv:0:0 */;
  %202 = nn.bias_add(%201, meta[relay.Constant][89] /* ty=Tensor[(576), float32] span=/features/features.10/block/block.2/fc2/Conv.features.10.block.2.fc2.bias:0:0 */) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/fc2/Conv:0:0 */;
  %203 = multiply(%202, 0.166667f /* ty=float32 span=/features/features.10/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/HardSigmoid:0:0 */;
  %204 = add(%203, 0.5f /* ty=float32 span=/features/features.10/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/HardSigmoid:0:0 */;
  %205 = clip(%204, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/HardSigmoid:0:0 */;
  %206 = multiply(%205, %196) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.2/Mul:0:0 */;
  %207 = nn.conv2d(%206, meta[relay.Constant][90] /* ty=Tensor[(96, 576, 1, 1), float32] span=/features/features.10/block/block.3/block.3.0/Conv.onnx::Conv_547:0:0 */, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.10/block/block.3/block.3.0/Conv:0:0 */;
  %208 = nn.bias_add(%207, meta[relay.Constant][91] /* ty=Tensor[(96), float32] span=/features/features.10/block/block.3/block.3.0/Conv.onnx::Conv_548:0:0 */) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.10/block/block.3/block.3.0/Conv:0:0 */;
  %209 = add(%208, %184) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.10/Add:0:0 */;
  %210 = nn.conv2d(%209, meta[relay.Constant][92] /* ty=Tensor[(576, 96, 1, 1), float32] span=/features/features.11/block/block.0/block.0.0/Conv.onnx::Conv_550:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.0/Conv:0:0 */;
  %211 = nn.bias_add(%210, meta[relay.Constant][93] /* ty=Tensor[(576), float32] span=/features/features.11/block/block.0/block.0.0/Conv.onnx::Conv_551:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.0/Conv:0:0 */;
  %212 = multiply(%211, 0.166667f /* ty=float32 span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %213 = add(%212, 0.5f /* ty=float32 span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %214 = clip(%213, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %215 = multiply(%211, %214) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.2/Mul:0:0 */;
  %216 = nn.conv2d(%215, meta[relay.Constant][94] /* ty=Tensor[(576, 1, 5, 5), float32] span=/features/features.11/block/block.1/block.1.0/Conv.onnx::Conv_553:0:0 */, padding=[2, 2, 2, 2], groups=576, channels=576, kernel_size=[5, 5]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.0/Conv:0:0 */;
  %217 = nn.bias_add(%216, meta[relay.Constant][95] /* ty=Tensor[(576), float32] span=/features/features.11/block/block.1/block.1.0/Conv.onnx::Conv_554:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.0/Conv:0:0 */;
  %218 = multiply(%217, 0.166667f /* ty=float32 span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %219 = add(%218, 0.5f /* ty=float32 span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %220 = clip(%219, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %221 = multiply(%217, %220) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.2/Mul:0:0 */;
  %222 = nn.global_avg_pool2d(%221) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/GlobalAveragePool:0:0 */;
  %223 = nn.conv2d(%222, meta[relay.Constant][96] /* ty=Tensor[(144, 576, 1, 1), float32] span=/features/features.11/block/block.2/fc1/Conv.features.11.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=144, kernel_size=[1, 1]) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.11/block/block.2/fc1/Conv:0:0 */;
  %224 = nn.bias_add(%223, meta[relay.Constant][97] /* ty=Tensor[(144), float32] span=/features/features.11/block/block.2/fc1/Conv.features.11.block.2.fc1.bias:0:0 */) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.11/block/block.2/fc1/Conv:0:0 */;
  %225 = nn.relu(%224) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.11/block/block.2/relu/Relu:0:0 */;
  %226 = nn.conv2d(%225, meta[relay.Constant][98] /* ty=Tensor[(576, 144, 1, 1), float32] span=/features/features.11/block/block.2/fc2/Conv.features.11.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/fc2/Conv:0:0 */;
  %227 = nn.bias_add(%226, meta[relay.Constant][99] /* ty=Tensor[(576), float32] span=/features/features.11/block/block.2/fc2/Conv.features.11.block.2.fc2.bias:0:0 */) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/fc2/Conv:0:0 */;
  %228 = multiply(%227, 0.166667f /* ty=float32 span=/features/features.11/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/HardSigmoid:0:0 */;
  %229 = add(%228, 0.5f /* ty=float32 span=/features/features.11/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/HardSigmoid:0:0 */;
  %230 = clip(%229, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/HardSigmoid:0:0 */;
  %231 = multiply(%230, %221) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.2/Mul:0:0 */;
  %232 = nn.conv2d(%231, meta[relay.Constant][100] /* ty=Tensor[(96, 576, 1, 1), float32] span=/features/features.11/block/block.3/block.3.0/Conv.onnx::Conv_556:0:0 */, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.11/block/block.3/block.3.0/Conv:0:0 */;
  %233 = nn.bias_add(%232, meta[relay.Constant][101] /* ty=Tensor[(96), float32] span=/features/features.11/block/block.3/block.3.0/Conv.onnx::Conv_557:0:0 */) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.11/block/block.3/block.3.0/Conv:0:0 */;
  %234 = add(%233, %209) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.11/Add:0:0 */;
  %235 = nn.conv2d(%234, meta[relay.Constant][102] /* ty=Tensor[(576, 96, 1, 1), float32] span=/features/features.12/features.12.0/Conv.onnx::Conv_559:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.0/Conv:0:0 */;
  %236 = nn.bias_add(%235, meta[relay.Constant][103] /* ty=Tensor[(576), float32] span=/features/features.12/features.12.0/Conv.onnx::Conv_560:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.0/Conv:0:0 */;
  %237 = multiply(%236, 0.166667f /* ty=float32 span=/features/features.12/features.12.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.2/HardSigmoid:0:0 */;
  %238 = add(%237, 0.5f /* ty=float32 span=/features/features.12/features.12.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.2/HardSigmoid:0:0 */;
  %239 = clip(%238, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.2/HardSigmoid:0:0 */;
  %240 = multiply(%236, %239) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.2/Mul:0:0 */;
  %241 = nn.conv2d(%240, meta[relay.Constant][104] /* ty=Tensor[(1024, 576, 1, 1), float32] span=/conv/conv.0/Conv.onnx::Conv_562:0:0 */, padding=[0, 0, 0, 0], channels=1024, kernel_size=[1, 1]) /* ty=Tensor[(1, 1024, 8, 6), float32] span=/conv/conv.0/Conv:0:0 */;
  %242 = nn.bias_add(%241, meta[relay.Constant][105] /* ty=Tensor[(1024), float32] span=/conv/conv.0/Conv.onnx::Conv_563:0:0 */) /* ty=Tensor[(1, 1024, 8, 6), float32] span=/conv/conv.0/Conv:0:0 */;
  %243 = clip(%242, a_min=0f, a_max=6f) /* ty=Tensor[(1, 1024, 8, 6), float32] span=/conv/conv.2/Clip:0:0 */;
  %244 = reshape(%243, newshape=[1, 1024, -1]) /* ty=Tensor[(1, 1024, 48), float32] span=/pool_layer/Reshape:0:0 */;
  %245 = mean(%244, axis=[-1]) /* ty=Tensor[(1, 1024), float32] span=/pool_layer/ReduceMean:0:0 */;
  %246 = reshape(%245, newshape=[1, 1024, 1, 1]) /* ty=Tensor[(1, 1024, 1, 1), float32] span=/pool_layer/Reshape_1:0:0 */;
  %247 = nn.batch_norm(%246, meta[relay.Constant][106] /* ty=Tensor[(1024), float32] span=/bottleneck/bottleneck.0/BatchNormalization.bottleneck.0.weight:0:0 */, meta[relay.Constant][107] /* ty=Tensor[(1024), float32] span=/bottleneck/bottleneck.0/BatchNormalization.bottleneck.0.bias:0:0 */, meta[relay.Constant][108] /* ty=Tensor[(1024), float32] span=/bottleneck/bottleneck.0/BatchNormalization.bottleneck.0.running_mean:0:0 */, meta[relay.Constant][109] /* ty=Tensor[(1024), float32] span=/bottleneck/bottleneck.0/BatchNormalization.bottleneck.0.running_var:0:0 */) /* ty=(Tensor[(1, 1024, 1, 1), float32], Tensor[(1024), float32], Tensor[(1024), float32]) span=/bottleneck/bottleneck.0/BatchNormalization:0:0 */;
  %248 = %247.0 /* ty=Tensor[(1, 1024, 1, 1), float32] span=/bottleneck/bottleneck.0/BatchNormalization:0:0 */;
  %249 = reshape(%248, newshape=[1, -1]) /* ty=Tensor[(1, 1024), float32] span=/Reshape:0:0 */;
  %250 = nn.dense(%249, meta[relay.Constant][110] /* ty=Tensor[(9, 1024), float32] span=/MatMul:0:0 */, units=None, out_dtype="float32") /* ty=Tensor[(1, 9), float32] span=/MatMul:0:0 */;
  %251 = nn.batch_norm(%250, meta[relay.Constant][111] /* ty=Tensor[(9), float32] span=/bnneck/BatchNormalization.bnneck.weight:0:0 */, meta[relay.Constant][112] /* ty=Tensor[(9), float32] span=/bnneck/BatchNormalization.bnneck.bias:0:0 */, meta[relay.Constant][113] /* ty=Tensor[(9), float32] span=/bnneck/BatchNormalization.bnneck.running_mean:0:0 */, meta[relay.Constant][114] /* ty=Tensor[(9), float32] span=/bnneck/BatchNormalization.bnneck.running_var:0:0 */) /* ty=(Tensor[(1, 9), float32], Tensor[(9), float32], Tensor[(9), float32]) span=/bnneck/BatchNormalization:0:0 */;
  %251.0 /* ty=Tensor[(1, 9), float32] span=/bnneck/BatchNormalization:0:0 */
}
from copy import deepcopy
import tvm
from tvm import relay
from tvm.relay.quantize.quantize import _bind_params
optimize = tvm.transform.Sequential(
    [
        relay.transform.SimplifyInference(),
        relay.transform.FoldConstant(),
        # relay.transform.FoldScaleAxis(),
        relay.transform.CanonicalizeOps(),
        relay.transform.FoldConstant(),
    ]
)
run_mod = deepcopy(mod)
run_mod["main"] = _bind_params(run_mod["main"], params)
with tvm.transform.PassContext(opt_level=3):
    run_mod2 = relay.quantize.prerequisite_optimize(deepcopy(mod), params)
    run_mod = optimize(run_mod)
print(run_mod["main"])
fn (%images: Tensor[(1, 3, 256, 192), float32] /* ty=Tensor[(1, 3, 256, 192), float32] span=/features/features.0/features.0.0/Conv.images:0:0 */) -> Tensor[(1, 9), float32] {
  %0 = nn.conv2d(%images, meta[relay.Constant][0] /* ty=Tensor[(16, 3, 3, 3), float32] span=/features/features.0/features.0.0/Conv.onnx::Conv_460:0:0 */, strides=[2, 2], padding=[1, 1, 1, 1], channels=16, kernel_size=[3, 3]) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.0/Conv:0:0 */;
  %1 = add(%0, meta[relay.Constant][1] /* ty=Tensor[(16, 1, 1), float32] */) /* ty=Tensor[(1, 16, 128, 96), float32] */;
  %2 = multiply(%1, 0.166667f /* ty=float32 span=/features/features.0/features.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.2/HardSigmoid:0:0 */;
  %3 = add(%2, 0.5f /* ty=float32 span=/features/features.0/features.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.2/HardSigmoid:0:0 */;
  %4 = clip(%3, a_min=0f, a_max=1f) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.2/HardSigmoid:0:0 */;
  %5 = multiply(%1, %4) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.2/Mul:0:0 */;
  %6 = nn.conv2d(%5, meta[relay.Constant][2] /* ty=Tensor[(16, 1, 3, 3), float32] span=/features/features.1/block/block.0/block.0.0/Conv.onnx::Conv_463:0:0 */, strides=[2, 2], padding=[1, 1, 1, 1], groups=16, channels=16, kernel_size=[3, 3]) /* ty=Tensor[(1, 16, 64, 48), float32] span=/features/features.1/block/block.0/block.0.0/Conv:0:0 */;
  %7 = add(%6, meta[relay.Constant][3] /* ty=Tensor[(16, 1, 1), float32] */) /* ty=Tensor[(1, 16, 64, 48), float32] */;
  %8 = nn.relu(%7) /* ty=Tensor[(1, 16, 64, 48), float32] span=/features/features.1/block/block.0/block.0.2/Relu:0:0 */;
  %9 = nn.global_avg_pool2d(%8) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/GlobalAveragePool:0:0 */;
  %10 = nn.conv2d(%9, meta[relay.Constant][4] /* ty=Tensor[(8, 16, 1, 1), float32] span=/features/features.1/block/block.1/fc1/Conv.features.1.block.1.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=8, kernel_size=[1, 1]) /* ty=Tensor[(1, 8, 1, 1), float32] span=/features/features.1/block/block.1/fc1/Conv:0:0 */;
  %11 = add(%10, meta[relay.Constant][5] /* ty=Tensor[(8, 1, 1), float32] */) /* ty=Tensor[(1, 8, 1, 1), float32] */;
  %12 = nn.relu(%11) /* ty=Tensor[(1, 8, 1, 1), float32] span=/features/features.1/block/block.1/relu/Relu:0:0 */;
  %13 = nn.conv2d(%12, meta[relay.Constant][6] /* ty=Tensor[(16, 8, 1, 1), float32] span=/features/features.1/block/block.1/fc2/Conv.features.1.block.1.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1]) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/fc2/Conv:0:0 */;
  %14 = add(%13, meta[relay.Constant][7] /* ty=Tensor[(16, 1, 1), float32] */) /* ty=Tensor[(1, 16, 1, 1), float32] */;
  %15 = multiply(%14, 0.166667f /* ty=float32 span=/features/features.1/block/block.1/HardSigmoid:0:0 */) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/HardSigmoid:0:0 */;
  %16 = add(%15, 0.5f /* ty=float32 span=/features/features.1/block/block.1/HardSigmoid:0:0 */) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/HardSigmoid:0:0 */;
  %17 = clip(%16, a_min=0f, a_max=1f) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/HardSigmoid:0:0 */;
  %18 = multiply(%17, %8) /* ty=Tensor[(1, 16, 64, 48), float32] span=/features/features.1/block/block.1/Mul:0:0 */;
  %19 = nn.conv2d(%18, meta[relay.Constant][8] /* ty=Tensor[(16, 16, 1, 1), float32] span=/features/features.1/block/block.2/block.2.0/Conv.onnx::Conv_466:0:0 */, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1]) /* ty=Tensor[(1, 16, 64, 48), float32] span=/features/features.1/block/block.2/block.2.0/Conv:0:0 */;
  %20 = add(%19, meta[relay.Constant][9] /* ty=Tensor[(16, 1, 1), float32] */) /* ty=Tensor[(1, 16, 64, 48), float32] */;
  %21 = nn.conv2d(%20, meta[relay.Constant][10] /* ty=Tensor[(72, 16, 1, 1), float32] span=/features/features.2/block/block.0/block.0.0/Conv.onnx::Conv_469:0:0 */, padding=[0, 0, 0, 0], channels=72, kernel_size=[1, 1]) /* ty=Tensor[(1, 72, 64, 48), float32] span=/features/features.2/block/block.0/block.0.0/Conv:0:0 */;
  %22 = add(%21, meta[relay.Constant][11] /* ty=Tensor[(72, 1, 1), float32] */) /* ty=Tensor[(1, 72, 64, 48), float32] */;
  %23 = nn.relu(%22) /* ty=Tensor[(1, 72, 64, 48), float32] span=/features/features.2/block/block.0/block.0.2/Relu:0:0 */;
  %24 = nn.conv2d(%23, meta[relay.Constant][12] /* ty=Tensor[(72, 1, 3, 3), float32] span=/features/features.2/block/block.1/block.1.0/Conv.onnx::Conv_472:0:0 */, strides=[2, 2], padding=[1, 1, 1, 1], groups=72, channels=72, kernel_size=[3, 3]) /* ty=Tensor[(1, 72, 32, 24), float32] span=/features/features.2/block/block.1/block.1.0/Conv:0:0 */;
  %25 = add(%24, meta[relay.Constant][13] /* ty=Tensor[(72, 1, 1), float32] */) /* ty=Tensor[(1, 72, 32, 24), float32] */;
  %26 = nn.relu(%25) /* ty=Tensor[(1, 72, 32, 24), float32] span=/features/features.2/block/block.1/block.1.2/Relu:0:0 */;
  %27 = nn.conv2d(%26, meta[relay.Constant][14] /* ty=Tensor[(24, 72, 1, 1), float32] span=/features/features.2/block/block.2/block.2.0/Conv.onnx::Conv_475:0:0 */, padding=[0, 0, 0, 0], channels=24, kernel_size=[1, 1]) /* ty=Tensor[(1, 24, 32, 24), float32] span=/features/features.2/block/block.2/block.2.0/Conv:0:0 */;
  %28 = add(%27, meta[relay.Constant][15] /* ty=Tensor[(24, 1, 1), float32] */) /* ty=Tensor[(1, 24, 32, 24), float32] */;
  %29 = nn.conv2d(%28, meta[relay.Constant][16] /* ty=Tensor[(88, 24, 1, 1), float32] span=/features/features.3/block/block.0/block.0.0/Conv.onnx::Conv_478:0:0 */, padding=[0, 0, 0, 0], channels=88, kernel_size=[1, 1]) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.0/block.0.0/Conv:0:0 */;
  %30 = add(%29, meta[relay.Constant][17] /* ty=Tensor[(88, 1, 1), float32] */) /* ty=Tensor[(1, 88, 32, 24), float32] */;
  %31 = nn.relu(%30) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.0/block.0.2/Relu:0:0 */;
  %32 = nn.conv2d(%31, meta[relay.Constant][18] /* ty=Tensor[(88, 1, 3, 3), float32] span=/features/features.3/block/block.1/block.1.0/Conv.onnx::Conv_481:0:0 */, padding=[1, 1, 1, 1], groups=88, channels=88, kernel_size=[3, 3]) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.1/block.1.0/Conv:0:0 */;
  %33 = add(%32, meta[relay.Constant][19] /* ty=Tensor[(88, 1, 1), float32] */) /* ty=Tensor[(1, 88, 32, 24), float32] */;
  %34 = nn.relu(%33) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.1/block.1.2/Relu:0:0 */;
  %35 = nn.conv2d(%34, meta[relay.Constant][20] /* ty=Tensor[(24, 88, 1, 1), float32] span=/features/features.3/block/block.2/block.2.0/Conv.onnx::Conv_484:0:0 */, padding=[0, 0, 0, 0], channels=24, kernel_size=[1, 1]) /* ty=Tensor[(1, 24, 32, 24), float32] span=/features/features.3/block/block.2/block.2.0/Conv:0:0 */;
  %36 = add(%35, meta[relay.Constant][21] /* ty=Tensor[(24, 1, 1), float32] */) /* ty=Tensor[(1, 24, 32, 24), float32] */;
  %37 = add(%36, %28) /* ty=Tensor[(1, 24, 32, 24), float32] span=/features/features.3/Add:0:0 */;
  %38 = nn.conv2d(%37, meta[relay.Constant][22] /* ty=Tensor[(96, 24, 1, 1), float32] span=/features/features.4/block/block.0/block.0.0/Conv.onnx::Conv_487:0:0 */, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.0/Conv:0:0 */;
  %39 = add(%38, meta[relay.Constant][23] /* ty=Tensor[(96, 1, 1), float32] */) /* ty=Tensor[(1, 96, 32, 24), float32] */;
  %40 = multiply(%39, 0.166667f /* ty=float32 span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %41 = add(%40, 0.5f /* ty=float32 span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %42 = clip(%41, a_min=0f, a_max=1f) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %43 = multiply(%39, %42) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.2/Mul:0:0 */;
  %44 = nn.conv2d(%43, meta[relay.Constant][24] /* ty=Tensor[(96, 1, 5, 5), float32] span=/features/features.4/block/block.1/block.1.0/Conv.onnx::Conv_490:0:0 */, strides=[2, 2], padding=[2, 2, 2, 2], groups=96, channels=96, kernel_size=[5, 5]) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.0/Conv:0:0 */;
  %45 = add(%44, meta[relay.Constant][25] /* ty=Tensor[(96, 1, 1), float32] */) /* ty=Tensor[(1, 96, 16, 12), float32] */;
  %46 = multiply(%45, 0.166667f /* ty=float32 span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %47 = add(%46, 0.5f /* ty=float32 span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %48 = clip(%47, a_min=0f, a_max=1f) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %49 = multiply(%45, %48) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.2/Mul:0:0 */;
  %50 = nn.global_avg_pool2d(%49) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/GlobalAveragePool:0:0 */;
  %51 = nn.conv2d(%50, meta[relay.Constant][26] /* ty=Tensor[(24, 96, 1, 1), float32] span=/features/features.4/block/block.2/fc1/Conv.features.4.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=24, kernel_size=[1, 1]) /* ty=Tensor[(1, 24, 1, 1), float32] span=/features/features.4/block/block.2/fc1/Conv:0:0 */;
  %52 = add(%51, meta[relay.Constant][27] /* ty=Tensor[(24, 1, 1), float32] */) /* ty=Tensor[(1, 24, 1, 1), float32] */;
  %53 = nn.relu(%52) /* ty=Tensor[(1, 24, 1, 1), float32] span=/features/features.4/block/block.2/relu/Relu:0:0 */;
  %54 = nn.conv2d(%53, meta[relay.Constant][28] /* ty=Tensor[(96, 24, 1, 1), float32] span=/features/features.4/block/block.2/fc2/Conv.features.4.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/fc2/Conv:0:0 */;
  %55 = add(%54, meta[relay.Constant][29] /* ty=Tensor[(96, 1, 1), float32] */) /* ty=Tensor[(1, 96, 1, 1), float32] */;
  %56 = multiply(%55, 0.166667f /* ty=float32 span=/features/features.4/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/HardSigmoid:0:0 */;
  %57 = add(%56, 0.5f /* ty=float32 span=/features/features.4/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/HardSigmoid:0:0 */;
  %58 = clip(%57, a_min=0f, a_max=1f) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/HardSigmoid:0:0 */;
  %59 = multiply(%58, %49) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.2/Mul:0:0 */;
  %60 = nn.conv2d(%59, meta[relay.Constant][30] /* ty=Tensor[(40, 96, 1, 1), float32] span=/features/features.4/block/block.3/block.3.0/Conv.onnx::Conv_493:0:0 */, padding=[0, 0, 0, 0], channels=40, kernel_size=[1, 1]) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.4/block/block.3/block.3.0/Conv:0:0 */;
  %61 = add(%60, meta[relay.Constant][31] /* ty=Tensor[(40, 1, 1), float32] */) /* ty=Tensor[(1, 40, 16, 12), float32] */;
  %62 = nn.conv2d(%61, meta[relay.Constant][32] /* ty=Tensor[(240, 40, 1, 1), float32] span=/features/features.5/block/block.0/block.0.0/Conv.onnx::Conv_496:0:0 */, padding=[0, 0, 0, 0], channels=240, kernel_size=[1, 1]) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.0/Conv:0:0 */;
  %63 = add(%62, meta[relay.Constant][33] /* ty=Tensor[(240, 1, 1), float32] */) /* ty=Tensor[(1, 240, 16, 12), float32] */;
  %64 = multiply(%63, 0.166667f /* ty=float32 span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %65 = add(%64, 0.5f /* ty=float32 span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %66 = clip(%65, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %67 = multiply(%63, %66) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.2/Mul:0:0 */;
  %68 = nn.conv2d(%67, meta[relay.Constant][34] /* ty=Tensor[(240, 1, 5, 5), float32] span=/features/features.5/block/block.1/block.1.0/Conv.onnx::Conv_499:0:0 */, padding=[2, 2, 2, 2], groups=240, channels=240, kernel_size=[5, 5]) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.0/Conv:0:0 */;
  %69 = add(%68, meta[relay.Constant][35] /* ty=Tensor[(240, 1, 1), float32] */) /* ty=Tensor[(1, 240, 16, 12), float32] */;
  %70 = multiply(%69, 0.166667f /* ty=float32 span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %71 = add(%70, 0.5f /* ty=float32 span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %72 = clip(%71, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %73 = multiply(%69, %72) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.2/Mul:0:0 */;
  %74 = nn.global_avg_pool2d(%73) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/GlobalAveragePool:0:0 */;
  %75 = nn.conv2d(%74, meta[relay.Constant][36] /* ty=Tensor[(64, 240, 1, 1), float32] span=/features/features.5/block/block.2/fc1/Conv.features.5.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=64, kernel_size=[1, 1]) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.5/block/block.2/fc1/Conv:0:0 */;
  %76 = add(%75, meta[relay.Constant][37] /* ty=Tensor[(64, 1, 1), float32] */) /* ty=Tensor[(1, 64, 1, 1), float32] */;
  %77 = nn.relu(%76) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.5/block/block.2/relu/Relu:0:0 */;
  %78 = nn.conv2d(%77, meta[relay.Constant][38] /* ty=Tensor[(240, 64, 1, 1), float32] span=/features/features.5/block/block.2/fc2/Conv.features.5.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=240, kernel_size=[1, 1]) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/fc2/Conv:0:0 */;
  %79 = add(%78, meta[relay.Constant][39] /* ty=Tensor[(240, 1, 1), float32] */) /* ty=Tensor[(1, 240, 1, 1), float32] */;
  %80 = multiply(%79, 0.166667f /* ty=float32 span=/features/features.5/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/HardSigmoid:0:0 */;
  %81 = add(%80, 0.5f /* ty=float32 span=/features/features.5/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/HardSigmoid:0:0 */;
  %82 = clip(%81, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/HardSigmoid:0:0 */;
  %83 = multiply(%82, %73) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.2/Mul:0:0 */;
  %84 = nn.conv2d(%83, meta[relay.Constant][40] /* ty=Tensor[(40, 240, 1, 1), float32] span=/features/features.5/block/block.3/block.3.0/Conv.onnx::Conv_502:0:0 */, padding=[0, 0, 0, 0], channels=40, kernel_size=[1, 1]) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.5/block/block.3/block.3.0/Conv:0:0 */;
  %85 = add(%84, meta[relay.Constant][41] /* ty=Tensor[(40, 1, 1), float32] */) /* ty=Tensor[(1, 40, 16, 12), float32] */;
  %86 = add(%85, %61) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.5/Add:0:0 */;
  %87 = nn.conv2d(%86, meta[relay.Constant][42] /* ty=Tensor[(240, 40, 1, 1), float32] span=/features/features.6/block/block.0/block.0.0/Conv.onnx::Conv_505:0:0 */, padding=[0, 0, 0, 0], channels=240, kernel_size=[1, 1]) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.0/Conv:0:0 */;
  %88 = add(%87, meta[relay.Constant][43] /* ty=Tensor[(240, 1, 1), float32] */) /* ty=Tensor[(1, 240, 16, 12), float32] */;
  %89 = multiply(%88, 0.166667f /* ty=float32 span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %90 = add(%89, 0.5f /* ty=float32 span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %91 = clip(%90, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %92 = multiply(%88, %91) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.2/Mul:0:0 */;
  %93 = nn.conv2d(%92, meta[relay.Constant][44] /* ty=Tensor[(240, 1, 5, 5), float32] span=/features/features.6/block/block.1/block.1.0/Conv.onnx::Conv_508:0:0 */, padding=[2, 2, 2, 2], groups=240, channels=240, kernel_size=[5, 5]) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.0/Conv:0:0 */;
  %94 = add(%93, meta[relay.Constant][45] /* ty=Tensor[(240, 1, 1), float32] */) /* ty=Tensor[(1, 240, 16, 12), float32] */;
  %95 = multiply(%94, 0.166667f /* ty=float32 span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %96 = add(%95, 0.5f /* ty=float32 span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %97 = clip(%96, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %98 = multiply(%94, %97) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.2/Mul:0:0 */;
  %99 = nn.global_avg_pool2d(%98) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/GlobalAveragePool:0:0 */;
  %100 = nn.conv2d(%99, meta[relay.Constant][46] /* ty=Tensor[(64, 240, 1, 1), float32] span=/features/features.6/block/block.2/fc1/Conv.features.6.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=64, kernel_size=[1, 1]) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.6/block/block.2/fc1/Conv:0:0 */;
  %101 = add(%100, meta[relay.Constant][47] /* ty=Tensor[(64, 1, 1), float32] */) /* ty=Tensor[(1, 64, 1, 1), float32] */;
  %102 = nn.relu(%101) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.6/block/block.2/relu/Relu:0:0 */;
  %103 = nn.conv2d(%102, meta[relay.Constant][48] /* ty=Tensor[(240, 64, 1, 1), float32] span=/features/features.6/block/block.2/fc2/Conv.features.6.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=240, kernel_size=[1, 1]) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/fc2/Conv:0:0 */;
  %104 = add(%103, meta[relay.Constant][49] /* ty=Tensor[(240, 1, 1), float32] */) /* ty=Tensor[(1, 240, 1, 1), float32] */;
  %105 = multiply(%104, 0.166667f /* ty=float32 span=/features/features.6/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/HardSigmoid:0:0 */;
  %106 = add(%105, 0.5f /* ty=float32 span=/features/features.6/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/HardSigmoid:0:0 */;
  %107 = clip(%106, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/HardSigmoid:0:0 */;
  %108 = multiply(%107, %98) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.2/Mul:0:0 */;
  %109 = nn.conv2d(%108, meta[relay.Constant][50] /* ty=Tensor[(40, 240, 1, 1), float32] span=/features/features.6/block/block.3/block.3.0/Conv.onnx::Conv_511:0:0 */, padding=[0, 0, 0, 0], channels=40, kernel_size=[1, 1]) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.6/block/block.3/block.3.0/Conv:0:0 */;
  %110 = add(%109, meta[relay.Constant][51] /* ty=Tensor[(40, 1, 1), float32] */) /* ty=Tensor[(1, 40, 16, 12), float32] */;
  %111 = add(%110, %86) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.6/Add:0:0 */;
  %112 = nn.conv2d(%111, meta[relay.Constant][52] /* ty=Tensor[(120, 40, 1, 1), float32] span=/features/features.7/block/block.0/block.0.0/Conv.onnx::Conv_514:0:0 */, padding=[0, 0, 0, 0], channels=120, kernel_size=[1, 1]) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.0/Conv:0:0 */;
  %113 = add(%112, meta[relay.Constant][53] /* ty=Tensor[(120, 1, 1), float32] */) /* ty=Tensor[(1, 120, 16, 12), float32] */;
  %114 = multiply(%113, 0.166667f /* ty=float32 span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %115 = add(%114, 0.5f /* ty=float32 span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %116 = clip(%115, a_min=0f, a_max=1f) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %117 = multiply(%113, %116) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.2/Mul:0:0 */;
  %118 = nn.conv2d(%117, meta[relay.Constant][54] /* ty=Tensor[(120, 1, 5, 5), float32] span=/features/features.7/block/block.1/block.1.0/Conv.onnx::Conv_517:0:0 */, padding=[2, 2, 2, 2], groups=120, channels=120, kernel_size=[5, 5]) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.0/Conv:0:0 */;
  %119 = add(%118, meta[relay.Constant][55] /* ty=Tensor[(120, 1, 1), float32] */) /* ty=Tensor[(1, 120, 16, 12), float32] */;
  %120 = multiply(%119, 0.166667f /* ty=float32 span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %121 = add(%120, 0.5f /* ty=float32 span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %122 = clip(%121, a_min=0f, a_max=1f) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %123 = multiply(%119, %122) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.2/Mul:0:0 */;
  %124 = nn.global_avg_pool2d(%123) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/GlobalAveragePool:0:0 */;
  %125 = nn.conv2d(%124, meta[relay.Constant][56] /* ty=Tensor[(32, 120, 1, 1), float32] span=/features/features.7/block/block.2/fc1/Conv.features.7.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1]) /* ty=Tensor[(1, 32, 1, 1), float32] span=/features/features.7/block/block.2/fc1/Conv:0:0 */;
  %126 = add(%125, meta[relay.Constant][57] /* ty=Tensor[(32, 1, 1), float32] */) /* ty=Tensor[(1, 32, 1, 1), float32] */;
  %127 = nn.relu(%126) /* ty=Tensor[(1, 32, 1, 1), float32] span=/features/features.7/block/block.2/relu/Relu:0:0 */;
  %128 = nn.conv2d(%127, meta[relay.Constant][58] /* ty=Tensor[(120, 32, 1, 1), float32] span=/features/features.7/block/block.2/fc2/Conv.features.7.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=120, kernel_size=[1, 1]) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/fc2/Conv:0:0 */;
  %129 = add(%128, meta[relay.Constant][59] /* ty=Tensor[(120, 1, 1), float32] */) /* ty=Tensor[(1, 120, 1, 1), float32] */;
  %130 = multiply(%129, 0.166667f /* ty=float32 span=/features/features.7/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/HardSigmoid:0:0 */;
  %131 = add(%130, 0.5f /* ty=float32 span=/features/features.7/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/HardSigmoid:0:0 */;
  %132 = clip(%131, a_min=0f, a_max=1f) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/HardSigmoid:0:0 */;
  %133 = multiply(%132, %123) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.2/Mul:0:0 */;
  %134 = nn.conv2d(%133, meta[relay.Constant][60] /* ty=Tensor[(48, 120, 1, 1), float32] span=/features/features.7/block/block.3/block.3.0/Conv.onnx::Conv_520:0:0 */, padding=[0, 0, 0, 0], channels=48, kernel_size=[1, 1]) /* ty=Tensor[(1, 48, 16, 12), float32] span=/features/features.7/block/block.3/block.3.0/Conv:0:0 */;
  %135 = add(%134, meta[relay.Constant][61] /* ty=Tensor[(48, 1, 1), float32] */) /* ty=Tensor[(1, 48, 16, 12), float32] */;
  %136 = nn.conv2d(%135, meta[relay.Constant][62] /* ty=Tensor[(144, 48, 1, 1), float32] span=/features/features.8/block/block.0/block.0.0/Conv.onnx::Conv_523:0:0 */, padding=[0, 0, 0, 0], channels=144, kernel_size=[1, 1]) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.0/Conv:0:0 */;
  %137 = add(%136, meta[relay.Constant][63] /* ty=Tensor[(144, 1, 1), float32] */) /* ty=Tensor[(1, 144, 16, 12), float32] */;
  %138 = multiply(%137, 0.166667f /* ty=float32 span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %139 = add(%138, 0.5f /* ty=float32 span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %140 = clip(%139, a_min=0f, a_max=1f) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %141 = multiply(%137, %140) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.2/Mul:0:0 */;
  %142 = nn.conv2d(%141, meta[relay.Constant][64] /* ty=Tensor[(144, 1, 5, 5), float32] span=/features/features.8/block/block.1/block.1.0/Conv.onnx::Conv_526:0:0 */, padding=[2, 2, 2, 2], groups=144, channels=144, kernel_size=[5, 5]) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.0/Conv:0:0 */;
  %143 = add(%142, meta[relay.Constant][65] /* ty=Tensor[(144, 1, 1), float32] */) /* ty=Tensor[(1, 144, 16, 12), float32] */;
  %144 = multiply(%143, 0.166667f /* ty=float32 span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %145 = add(%144, 0.5f /* ty=float32 span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %146 = clip(%145, a_min=0f, a_max=1f) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %147 = multiply(%143, %146) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.2/Mul:0:0 */;
  %148 = nn.global_avg_pool2d(%147) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/GlobalAveragePool:0:0 */;
  %149 = nn.conv2d(%148, meta[relay.Constant][66] /* ty=Tensor[(40, 144, 1, 1), float32] span=/features/features.8/block/block.2/fc1/Conv.features.8.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=40, kernel_size=[1, 1]) /* ty=Tensor[(1, 40, 1, 1), float32] span=/features/features.8/block/block.2/fc1/Conv:0:0 */;
  %150 = add(%149, meta[relay.Constant][67] /* ty=Tensor[(40, 1, 1), float32] */) /* ty=Tensor[(1, 40, 1, 1), float32] */;
  %151 = nn.relu(%150) /* ty=Tensor[(1, 40, 1, 1), float32] span=/features/features.8/block/block.2/relu/Relu:0:0 */;
  %152 = nn.conv2d(%151, meta[relay.Constant][68] /* ty=Tensor[(144, 40, 1, 1), float32] span=/features/features.8/block/block.2/fc2/Conv.features.8.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=144, kernel_size=[1, 1]) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/fc2/Conv:0:0 */;
  %153 = add(%152, meta[relay.Constant][69] /* ty=Tensor[(144, 1, 1), float32] */) /* ty=Tensor[(1, 144, 1, 1), float32] */;
  %154 = multiply(%153, 0.166667f /* ty=float32 span=/features/features.8/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/HardSigmoid:0:0 */;
  %155 = add(%154, 0.5f /* ty=float32 span=/features/features.8/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/HardSigmoid:0:0 */;
  %156 = clip(%155, a_min=0f, a_max=1f) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/HardSigmoid:0:0 */;
  %157 = multiply(%156, %147) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.2/Mul:0:0 */;
  %158 = nn.conv2d(%157, meta[relay.Constant][70] /* ty=Tensor[(48, 144, 1, 1), float32] span=/features/features.8/block/block.3/block.3.0/Conv.onnx::Conv_529:0:0 */, padding=[0, 0, 0, 0], channels=48, kernel_size=[1, 1]) /* ty=Tensor[(1, 48, 16, 12), float32] span=/features/features.8/block/block.3/block.3.0/Conv:0:0 */;
  %159 = add(%158, meta[relay.Constant][71] /* ty=Tensor[(48, 1, 1), float32] */) /* ty=Tensor[(1, 48, 16, 12), float32] */;
  %160 = add(%159, %135) /* ty=Tensor[(1, 48, 16, 12), float32] span=/features/features.8/Add:0:0 */;
  %161 = nn.conv2d(%160, meta[relay.Constant][72] /* ty=Tensor[(288, 48, 1, 1), float32] span=/features/features.9/block/block.0/block.0.0/Conv.onnx::Conv_532:0:0 */, padding=[0, 0, 0, 0], channels=288, kernel_size=[1, 1]) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.0/Conv:0:0 */;
  %162 = add(%161, meta[relay.Constant][73] /* ty=Tensor[(288, 1, 1), float32] */) /* ty=Tensor[(1, 288, 16, 12), float32] */;
  %163 = multiply(%162, 0.166667f /* ty=float32 span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %164 = add(%163, 0.5f /* ty=float32 span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %165 = clip(%164, a_min=0f, a_max=1f) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %166 = multiply(%162, %165) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.2/Mul:0:0 */;
  %167 = nn.conv2d(%166, meta[relay.Constant][74] /* ty=Tensor[(288, 1, 5, 5), float32] span=/features/features.9/block/block.1/block.1.0/Conv.onnx::Conv_535:0:0 */, strides=[2, 2], padding=[2, 2, 2, 2], groups=288, channels=288, kernel_size=[5, 5]) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.0/Conv:0:0 */;
  %168 = add(%167, meta[relay.Constant][75] /* ty=Tensor[(288, 1, 1), float32] */) /* ty=Tensor[(1, 288, 8, 6), float32] */;
  %169 = multiply(%168, 0.166667f /* ty=float32 span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %170 = add(%169, 0.5f /* ty=float32 span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %171 = clip(%170, a_min=0f, a_max=1f) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %172 = multiply(%168, %171) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.2/Mul:0:0 */;
  %173 = nn.global_avg_pool2d(%172) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/GlobalAveragePool:0:0 */;
  %174 = nn.conv2d(%173, meta[relay.Constant][76] /* ty=Tensor[(72, 288, 1, 1), float32] span=/features/features.9/block/block.2/fc1/Conv.features.9.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=72, kernel_size=[1, 1]) /* ty=Tensor[(1, 72, 1, 1), float32] span=/features/features.9/block/block.2/fc1/Conv:0:0 */;
  %175 = add(%174, meta[relay.Constant][77] /* ty=Tensor[(72, 1, 1), float32] */) /* ty=Tensor[(1, 72, 1, 1), float32] */;
  %176 = nn.relu(%175) /* ty=Tensor[(1, 72, 1, 1), float32] span=/features/features.9/block/block.2/relu/Relu:0:0 */;
  %177 = nn.conv2d(%176, meta[relay.Constant][78] /* ty=Tensor[(288, 72, 1, 1), float32] span=/features/features.9/block/block.2/fc2/Conv.features.9.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=288, kernel_size=[1, 1]) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/fc2/Conv:0:0 */;
  %178 = add(%177, meta[relay.Constant][79] /* ty=Tensor[(288, 1, 1), float32] */) /* ty=Tensor[(1, 288, 1, 1), float32] */;
  %179 = multiply(%178, 0.166667f /* ty=float32 span=/features/features.9/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/HardSigmoid:0:0 */;
  %180 = add(%179, 0.5f /* ty=float32 span=/features/features.9/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/HardSigmoid:0:0 */;
  %181 = clip(%180, a_min=0f, a_max=1f) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/HardSigmoid:0:0 */;
  %182 = multiply(%181, %172) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.2/Mul:0:0 */;
  %183 = nn.conv2d(%182, meta[relay.Constant][80] /* ty=Tensor[(96, 288, 1, 1), float32] span=/features/features.9/block/block.3/block.3.0/Conv.onnx::Conv_538:0:0 */, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.9/block/block.3/block.3.0/Conv:0:0 */;
  %184 = add(%183, meta[relay.Constant][81] /* ty=Tensor[(96, 1, 1), float32] */) /* ty=Tensor[(1, 96, 8, 6), float32] */;
  %185 = nn.conv2d(%184, meta[relay.Constant][82] /* ty=Tensor[(576, 96, 1, 1), float32] span=/features/features.10/block/block.0/block.0.0/Conv.onnx::Conv_541:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.0/Conv:0:0 */;
  %186 = add(%185, meta[relay.Constant][83] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 8, 6), float32] */;
  %187 = multiply(%186, 0.166667f /* ty=float32 span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %188 = add(%187, 0.5f /* ty=float32 span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %189 = clip(%188, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %190 = multiply(%186, %189) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.2/Mul:0:0 */;
  %191 = nn.conv2d(%190, meta[relay.Constant][84] /* ty=Tensor[(576, 1, 5, 5), float32] span=/features/features.10/block/block.1/block.1.0/Conv.onnx::Conv_544:0:0 */, padding=[2, 2, 2, 2], groups=576, channels=576, kernel_size=[5, 5]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.0/Conv:0:0 */;
  %192 = add(%191, meta[relay.Constant][85] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 8, 6), float32] */;
  %193 = multiply(%192, 0.166667f /* ty=float32 span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %194 = add(%193, 0.5f /* ty=float32 span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %195 = clip(%194, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %196 = multiply(%192, %195) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.2/Mul:0:0 */;
  %197 = nn.global_avg_pool2d(%196) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/GlobalAveragePool:0:0 */;
  %198 = nn.conv2d(%197, meta[relay.Constant][86] /* ty=Tensor[(144, 576, 1, 1), float32] span=/features/features.10/block/block.2/fc1/Conv.features.10.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=144, kernel_size=[1, 1]) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.10/block/block.2/fc1/Conv:0:0 */;
  %199 = add(%198, meta[relay.Constant][87] /* ty=Tensor[(144, 1, 1), float32] */) /* ty=Tensor[(1, 144, 1, 1), float32] */;
  %200 = nn.relu(%199) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.10/block/block.2/relu/Relu:0:0 */;
  %201 = nn.conv2d(%200, meta[relay.Constant][88] /* ty=Tensor[(576, 144, 1, 1), float32] span=/features/features.10/block/block.2/fc2/Conv.features.10.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/fc2/Conv:0:0 */;
  %202 = add(%201, meta[relay.Constant][89] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 1, 1), float32] */;
  %203 = multiply(%202, 0.166667f /* ty=float32 span=/features/features.10/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/HardSigmoid:0:0 */;
  %204 = add(%203, 0.5f /* ty=float32 span=/features/features.10/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/HardSigmoid:0:0 */;
  %205 = clip(%204, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/HardSigmoid:0:0 */;
  %206 = multiply(%205, %196) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.2/Mul:0:0 */;
  %207 = nn.conv2d(%206, meta[relay.Constant][90] /* ty=Tensor[(96, 576, 1, 1), float32] span=/features/features.10/block/block.3/block.3.0/Conv.onnx::Conv_547:0:0 */, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.10/block/block.3/block.3.0/Conv:0:0 */;
  %208 = add(%207, meta[relay.Constant][91] /* ty=Tensor[(96, 1, 1), float32] */) /* ty=Tensor[(1, 96, 8, 6), float32] */;
  %209 = add(%208, %184) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.10/Add:0:0 */;
  %210 = nn.conv2d(%209, meta[relay.Constant][92] /* ty=Tensor[(576, 96, 1, 1), float32] span=/features/features.11/block/block.0/block.0.0/Conv.onnx::Conv_550:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.0/Conv:0:0 */;
  %211 = add(%210, meta[relay.Constant][93] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 8, 6), float32] */;
  %212 = multiply(%211, 0.166667f /* ty=float32 span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %213 = add(%212, 0.5f /* ty=float32 span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %214 = clip(%213, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %215 = multiply(%211, %214) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.2/Mul:0:0 */;
  %216 = nn.conv2d(%215, meta[relay.Constant][94] /* ty=Tensor[(576, 1, 5, 5), float32] span=/features/features.11/block/block.1/block.1.0/Conv.onnx::Conv_553:0:0 */, padding=[2, 2, 2, 2], groups=576, channels=576, kernel_size=[5, 5]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.0/Conv:0:0 */;
  %217 = add(%216, meta[relay.Constant][95] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 8, 6), float32] */;
  %218 = multiply(%217, 0.166667f /* ty=float32 span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %219 = add(%218, 0.5f /* ty=float32 span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %220 = clip(%219, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %221 = multiply(%217, %220) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.2/Mul:0:0 */;
  %222 = nn.global_avg_pool2d(%221) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/GlobalAveragePool:0:0 */;
  %223 = nn.conv2d(%222, meta[relay.Constant][96] /* ty=Tensor[(144, 576, 1, 1), float32] span=/features/features.11/block/block.2/fc1/Conv.features.11.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=144, kernel_size=[1, 1]) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.11/block/block.2/fc1/Conv:0:0 */;
  %224 = add(%223, meta[relay.Constant][97] /* ty=Tensor[(144, 1, 1), float32] */) /* ty=Tensor[(1, 144, 1, 1), float32] */;
  %225 = nn.relu(%224) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.11/block/block.2/relu/Relu:0:0 */;
  %226 = nn.conv2d(%225, meta[relay.Constant][98] /* ty=Tensor[(576, 144, 1, 1), float32] span=/features/features.11/block/block.2/fc2/Conv.features.11.block.2.fc2.weight:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/fc2/Conv:0:0 */;
  %227 = add(%226, meta[relay.Constant][99] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 1, 1), float32] */;
  %228 = multiply(%227, 0.166667f /* ty=float32 span=/features/features.11/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/HardSigmoid:0:0 */;
  %229 = add(%228, 0.5f /* ty=float32 span=/features/features.11/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/HardSigmoid:0:0 */;
  %230 = clip(%229, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/HardSigmoid:0:0 */;
  %231 = multiply(%230, %221) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.2/Mul:0:0 */;
  %232 = nn.conv2d(%231, meta[relay.Constant][100] /* ty=Tensor[(96, 576, 1, 1), float32] span=/features/features.11/block/block.3/block.3.0/Conv.onnx::Conv_556:0:0 */, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.11/block/block.3/block.3.0/Conv:0:0 */;
  %233 = add(%232, meta[relay.Constant][101] /* ty=Tensor[(96, 1, 1), float32] */) /* ty=Tensor[(1, 96, 8, 6), float32] */;
  %234 = add(%233, %209) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.11/Add:0:0 */;
  %235 = nn.conv2d(%234, meta[relay.Constant][102] /* ty=Tensor[(576, 96, 1, 1), float32] span=/features/features.12/features.12.0/Conv.onnx::Conv_559:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.0/Conv:0:0 */;
  %236 = add(%235, meta[relay.Constant][103] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 8, 6), float32] */;
  %237 = multiply(%236, 0.166667f /* ty=float32 span=/features/features.12/features.12.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.2/HardSigmoid:0:0 */;
  %238 = add(%237, 0.5f /* ty=float32 span=/features/features.12/features.12.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.2/HardSigmoid:0:0 */;
  %239 = clip(%238, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.2/HardSigmoid:0:0 */;
  %240 = multiply(%236, %239) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.2/Mul:0:0 */;
  %241 = nn.conv2d(%240, meta[relay.Constant][104] /* ty=Tensor[(1024, 576, 1, 1), float32] span=/conv/conv.0/Conv.onnx::Conv_562:0:0 */, padding=[0, 0, 0, 0], channels=1024, kernel_size=[1, 1]) /* ty=Tensor[(1, 1024, 8, 6), float32] span=/conv/conv.0/Conv:0:0 */;
  %242 = add(%241, meta[relay.Constant][105] /* ty=Tensor[(1024, 1, 1), float32] */) /* ty=Tensor[(1, 1024, 8, 6), float32] */;
  %243 = clip(%242, a_min=0f, a_max=6f) /* ty=Tensor[(1, 1024, 8, 6), float32] span=/conv/conv.2/Clip:0:0 */;
  %244 = reshape(%243, newshape=[1, 1024, -1]) /* ty=Tensor[(1, 1024, 48), float32] span=/pool_layer/Reshape:0:0 */;
  %245 = mean(%244, axis=[-1]) /* ty=Tensor[(1, 1024), float32] span=/pool_layer/ReduceMean:0:0 */;
  %246 = reshape(%245, newshape=[1, 1024, 1, 1]) /* ty=Tensor[(1, 1024, 1, 1), float32] span=/pool_layer/Reshape_1:0:0 */;
  %247 = multiply(%246, meta[relay.Constant][106] /* ty=Tensor[(1024, 1, 1), float32] */) /* ty=Tensor[(1, 1024, 1, 1), float32] */;
  %248 = add(%247, meta[relay.Constant][107] /* ty=Tensor[(1024, 1, 1), float32] */) /* ty=Tensor[(1, 1024, 1, 1), float32] */;
  %249 = reshape(%248, newshape=[1, -1]) /* ty=Tensor[(1, 1024), float32] span=/Reshape:0:0 */;
  %250 = nn.dense(%249, meta[relay.Constant][108] /* ty=Tensor[(9, 1024), float32] span=/MatMul:0:0 */, units=None, out_dtype="float32") /* ty=Tensor[(1, 9), float32] span=/MatMul:0:0 */;
  %251 = multiply(%250, meta[relay.Constant][109] /* ty=Tensor[(9), float32] */) /* ty=Tensor[(1, 9), float32] */;
  add(%251, meta[relay.Constant][110] /* ty=Tensor[(9), float32] */) /* ty=Tensor[(1, 9), float32] */
} /* ty=fn (Tensor[(1, 3, 256, 192), float32]) -> Tensor[(1, 9), float32] */
print(run_mod2["main"])
fn (%images: Tensor[(1, 3, 256, 192), float32] /* ty=Tensor[(1, 3, 256, 192), float32] span=/features/features.0/features.0.0/Conv.images:0:0 */) -> Tensor[(1, 9), float32] {
  %0 = nn.conv2d(%images, meta[relay.Constant][0] /* ty=Tensor[(16, 3, 3, 3), float32] span=/features/features.0/features.0.0/Conv.onnx::Conv_460:0:0 */, strides=[2, 2], padding=[1, 1, 1, 1], channels=16, kernel_size=[3, 3]) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.0/Conv:0:0 */;
  %1 = add(%0, meta[relay.Constant][1] /* ty=Tensor[(16, 1, 1), float32] */) /* ty=Tensor[(1, 16, 128, 96), float32] */;
  %2 = multiply(%1, 0.166667f /* ty=float32 span=/features/features.0/features.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.2/HardSigmoid:0:0 */;
  %3 = add(%2, 0.5f /* ty=float32 span=/features/features.0/features.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.2/HardSigmoid:0:0 */;
  %4 = clip(%3, a_min=0f, a_max=1f) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.2/HardSigmoid:0:0 */;
  %5 = multiply(%1, %4) /* ty=Tensor[(1, 16, 128, 96), float32] span=/features/features.0/features.0.2/Mul:0:0 */;
  %6 = nn.conv2d(%5, meta[relay.Constant][2] /* ty=Tensor[(16, 1, 3, 3), float32] span=/features/features.1/block/block.0/block.0.0/Conv.onnx::Conv_463:0:0 */, strides=[2, 2], padding=[1, 1, 1, 1], groups=16, channels=16, kernel_size=[3, 3]) /* ty=Tensor[(1, 16, 64, 48), float32] span=/features/features.1/block/block.0/block.0.0/Conv:0:0 */;
  %7 = add(%6, meta[relay.Constant][3] /* ty=Tensor[(16, 1, 1), float32] */) /* ty=Tensor[(1, 16, 64, 48), float32] */;
  %8 = nn.relu(%7) /* ty=Tensor[(1, 16, 64, 48), float32] span=/features/features.1/block/block.0/block.0.2/Relu:0:0 */;
  %9 = nn.global_avg_pool2d(%8) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/GlobalAveragePool:0:0 */;
  %10 = nn.conv2d(%9, meta[relay.Constant][5] /* ty=Tensor[(8, 16, 1, 1), float32] span=/features/features.1/block/block.1/fc1/Conv.features.1.block.1.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=8, kernel_size=[1, 1]) /* ty=Tensor[(1, 8, 1, 1), float32] span=/features/features.1/block/block.1/fc1/Conv:0:0 */;
  %11 = add(%10, meta[relay.Constant][6] /* ty=Tensor[(8, 1, 1), float32] */) /* ty=Tensor[(1, 8, 1, 1), float32] */;
  %12 = nn.relu(%11) /* ty=Tensor[(1, 8, 1, 1), float32] span=/features/features.1/block/block.1/relu/Relu:0:0 */;
  %13 = nn.conv2d(%12, meta[relay.Constant][7] /* ty=Tensor[(16, 8, 1, 1), float32] */, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1]) /* ty=Tensor[(1, 16, 1, 1), float32] */;
  %14 = add(%13, meta[relay.Constant][8] /* ty=Tensor[(16, 1, 1), float32] */) /* ty=Tensor[(1, 16, 1, 1), float32] */;
  %15 = add(%14, 0.5f /* ty=float32 span=/features/features.1/block/block.1/HardSigmoid:0:0 */) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/HardSigmoid:0:0 */;
  %16 = clip(%15, a_min=0f, a_max=1f) /* ty=Tensor[(1, 16, 1, 1), float32] span=/features/features.1/block/block.1/HardSigmoid:0:0 */;
  %17 = squeeze(%16, axis=[0, 2, 3]) /* ty=Tensor[(16), float32] */;
  %18 = expand_dims(%17, axis=1, num_newaxis=2) /* ty=Tensor[(16, 1, 1), float32] */;
  %19 = multiply(meta[relay.Constant][4] /* ty=Tensor[(16, 16, 1, 1), float32] span=/features/features.1/block/block.2/block.2.0/Conv.onnx::Conv_466:0:0 */, %18) /* ty=Tensor[(16, 16, 1, 1), float32] */;
  %20 = nn.conv2d(%8, %19, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1]) /* ty=Tensor[(1, 16, 64, 48), float32] */;
  %21 = add(%20, meta[relay.Constant][9] /* ty=Tensor[(16, 1, 1), float32] */) /* ty=Tensor[(1, 16, 64, 48), float32] */;
  %22 = nn.conv2d(%21, meta[relay.Constant][10] /* ty=Tensor[(72, 16, 1, 1), float32] span=/features/features.2/block/block.0/block.0.0/Conv.onnx::Conv_469:0:0 */, padding=[0, 0, 0, 0], channels=72, kernel_size=[1, 1]) /* ty=Tensor[(1, 72, 64, 48), float32] span=/features/features.2/block/block.0/block.0.0/Conv:0:0 */;
  %23 = add(%22, meta[relay.Constant][11] /* ty=Tensor[(72, 1, 1), float32] */) /* ty=Tensor[(1, 72, 64, 48), float32] */;
  %24 = nn.relu(%23) /* ty=Tensor[(1, 72, 64, 48), float32] span=/features/features.2/block/block.0/block.0.2/Relu:0:0 */;
  %25 = nn.conv2d(%24, meta[relay.Constant][12] /* ty=Tensor[(72, 1, 3, 3), float32] span=/features/features.2/block/block.1/block.1.0/Conv.onnx::Conv_472:0:0 */, strides=[2, 2], padding=[1, 1, 1, 1], groups=72, channels=72, kernel_size=[3, 3]) /* ty=Tensor[(1, 72, 32, 24), float32] span=/features/features.2/block/block.1/block.1.0/Conv:0:0 */;
  %26 = add(%25, meta[relay.Constant][13] /* ty=Tensor[(72, 1, 1), float32] */) /* ty=Tensor[(1, 72, 32, 24), float32] */;
  %27 = nn.relu(%26) /* ty=Tensor[(1, 72, 32, 24), float32] span=/features/features.2/block/block.1/block.1.2/Relu:0:0 */;
  %28 = nn.conv2d(%27, meta[relay.Constant][14] /* ty=Tensor[(24, 72, 1, 1), float32] span=/features/features.2/block/block.2/block.2.0/Conv.onnx::Conv_475:0:0 */, padding=[0, 0, 0, 0], channels=24, kernel_size=[1, 1]) /* ty=Tensor[(1, 24, 32, 24), float32] span=/features/features.2/block/block.2/block.2.0/Conv:0:0 */;
  %29 = add(%28, meta[relay.Constant][15] /* ty=Tensor[(24, 1, 1), float32] */) /* ty=Tensor[(1, 24, 32, 24), float32] */;
  %30 = nn.conv2d(%29, meta[relay.Constant][16] /* ty=Tensor[(88, 24, 1, 1), float32] span=/features/features.3/block/block.0/block.0.0/Conv.onnx::Conv_478:0:0 */, padding=[0, 0, 0, 0], channels=88, kernel_size=[1, 1]) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.0/block.0.0/Conv:0:0 */;
  %31 = add(%30, meta[relay.Constant][17] /* ty=Tensor[(88, 1, 1), float32] */) /* ty=Tensor[(1, 88, 32, 24), float32] */;
  %32 = nn.relu(%31) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.0/block.0.2/Relu:0:0 */;
  %33 = nn.conv2d(%32, meta[relay.Constant][18] /* ty=Tensor[(88, 1, 3, 3), float32] span=/features/features.3/block/block.1/block.1.0/Conv.onnx::Conv_481:0:0 */, padding=[1, 1, 1, 1], groups=88, channels=88, kernel_size=[3, 3]) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.1/block.1.0/Conv:0:0 */;
  %34 = add(%33, meta[relay.Constant][19] /* ty=Tensor[(88, 1, 1), float32] */) /* ty=Tensor[(1, 88, 32, 24), float32] */;
  %35 = nn.relu(%34) /* ty=Tensor[(1, 88, 32, 24), float32] span=/features/features.3/block/block.1/block.1.2/Relu:0:0 */;
  %36 = nn.conv2d(%35, meta[relay.Constant][20] /* ty=Tensor[(24, 88, 1, 1), float32] span=/features/features.3/block/block.2/block.2.0/Conv.onnx::Conv_484:0:0 */, padding=[0, 0, 0, 0], channels=24, kernel_size=[1, 1]) /* ty=Tensor[(1, 24, 32, 24), float32] span=/features/features.3/block/block.2/block.2.0/Conv:0:0 */;
  %37 = add(%36, meta[relay.Constant][21] /* ty=Tensor[(24, 1, 1), float32] */) /* ty=Tensor[(1, 24, 32, 24), float32] */;
  %38 = add(%37, %29) /* ty=Tensor[(1, 24, 32, 24), float32] span=/features/features.3/Add:0:0 */;
  %39 = nn.conv2d(%38, meta[relay.Constant][22] /* ty=Tensor[(96, 24, 1, 1), float32] span=/features/features.4/block/block.0/block.0.0/Conv.onnx::Conv_487:0:0 */, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.0/Conv:0:0 */;
  %40 = add(%39, meta[relay.Constant][23] /* ty=Tensor[(96, 1, 1), float32] */) /* ty=Tensor[(1, 96, 32, 24), float32] */;
  %41 = multiply(%40, 0.166667f /* ty=float32 span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %42 = add(%41, 0.5f /* ty=float32 span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %43 = clip(%42, a_min=0f, a_max=1f) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %44 = multiply(%40, %43) /* ty=Tensor[(1, 96, 32, 24), float32] span=/features/features.4/block/block.0/block.0.2/Mul:0:0 */;
  %45 = nn.conv2d(%44, meta[relay.Constant][24] /* ty=Tensor[(96, 1, 5, 5), float32] span=/features/features.4/block/block.1/block.1.0/Conv.onnx::Conv_490:0:0 */, strides=[2, 2], padding=[2, 2, 2, 2], groups=96, channels=96, kernel_size=[5, 5]) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.0/Conv:0:0 */;
  %46 = add(%45, meta[relay.Constant][25] /* ty=Tensor[(96, 1, 1), float32] */) /* ty=Tensor[(1, 96, 16, 12), float32] */;
  %47 = multiply(%46, 0.166667f /* ty=float32 span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %48 = add(%47, 0.5f /* ty=float32 span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %49 = clip(%48, a_min=0f, a_max=1f) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %50 = multiply(%46, %49) /* ty=Tensor[(1, 96, 16, 12), float32] span=/features/features.4/block/block.1/block.1.2/Mul:0:0 */;
  %51 = nn.global_avg_pool2d(%50) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/GlobalAveragePool:0:0 */;
  %52 = nn.conv2d(%51, meta[relay.Constant][27] /* ty=Tensor[(24, 96, 1, 1), float32] span=/features/features.4/block/block.2/fc1/Conv.features.4.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=24, kernel_size=[1, 1]) /* ty=Tensor[(1, 24, 1, 1), float32] span=/features/features.4/block/block.2/fc1/Conv:0:0 */;
  %53 = add(%52, meta[relay.Constant][28] /* ty=Tensor[(24, 1, 1), float32] */) /* ty=Tensor[(1, 24, 1, 1), float32] */;
  %54 = nn.relu(%53) /* ty=Tensor[(1, 24, 1, 1), float32] span=/features/features.4/block/block.2/relu/Relu:0:0 */;
  %55 = nn.conv2d(%54, meta[relay.Constant][29] /* ty=Tensor[(96, 24, 1, 1), float32] */, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 1, 1), float32] */;
  %56 = add(%55, meta[relay.Constant][30] /* ty=Tensor[(96, 1, 1), float32] */) /* ty=Tensor[(1, 96, 1, 1), float32] */;
  %57 = add(%56, 0.5f /* ty=float32 span=/features/features.4/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/HardSigmoid:0:0 */;
  %58 = clip(%57, a_min=0f, a_max=1f) /* ty=Tensor[(1, 96, 1, 1), float32] span=/features/features.4/block/block.2/HardSigmoid:0:0 */;
  %59 = squeeze(%58, axis=[0, 2, 3]) /* ty=Tensor[(96), float32] */;
  %60 = expand_dims(%59, axis=1, num_newaxis=2) /* ty=Tensor[(96, 1, 1), float32] */;
  %61 = multiply(meta[relay.Constant][26] /* ty=Tensor[(40, 96, 1, 1), float32] span=/features/features.4/block/block.3/block.3.0/Conv.onnx::Conv_493:0:0 */, %60) /* ty=Tensor[(40, 96, 1, 1), float32] */;
  %62 = nn.conv2d(%50, %61, padding=[0, 0, 0, 0], channels=40, kernel_size=[1, 1]) /* ty=Tensor[(1, 40, 16, 12), float32] */;
  %63 = add(%62, meta[relay.Constant][31] /* ty=Tensor[(40, 1, 1), float32] */) /* ty=Tensor[(1, 40, 16, 12), float32] */;
  %64 = nn.conv2d(%63, meta[relay.Constant][32] /* ty=Tensor[(240, 40, 1, 1), float32] span=/features/features.5/block/block.0/block.0.0/Conv.onnx::Conv_496:0:0 */, padding=[0, 0, 0, 0], channels=240, kernel_size=[1, 1]) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.0/Conv:0:0 */;
  %65 = add(%64, meta[relay.Constant][33] /* ty=Tensor[(240, 1, 1), float32] */) /* ty=Tensor[(1, 240, 16, 12), float32] */;
  %66 = multiply(%65, 0.166667f /* ty=float32 span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %67 = add(%66, 0.5f /* ty=float32 span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %68 = clip(%67, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %69 = multiply(%65, %68) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.0/block.0.2/Mul:0:0 */;
  %70 = nn.conv2d(%69, meta[relay.Constant][34] /* ty=Tensor[(240, 1, 5, 5), float32] span=/features/features.5/block/block.1/block.1.0/Conv.onnx::Conv_499:0:0 */, padding=[2, 2, 2, 2], groups=240, channels=240, kernel_size=[5, 5]) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.0/Conv:0:0 */;
  %71 = add(%70, meta[relay.Constant][35] /* ty=Tensor[(240, 1, 1), float32] */) /* ty=Tensor[(1, 240, 16, 12), float32] */;
  %72 = multiply(%71, 0.166667f /* ty=float32 span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %73 = add(%72, 0.5f /* ty=float32 span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %74 = clip(%73, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %75 = multiply(%71, %74) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.5/block/block.1/block.1.2/Mul:0:0 */;
  %76 = nn.global_avg_pool2d(%75) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/GlobalAveragePool:0:0 */;
  %77 = nn.conv2d(%76, meta[relay.Constant][37] /* ty=Tensor[(64, 240, 1, 1), float32] span=/features/features.5/block/block.2/fc1/Conv.features.5.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=64, kernel_size=[1, 1]) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.5/block/block.2/fc1/Conv:0:0 */;
  %78 = add(%77, meta[relay.Constant][38] /* ty=Tensor[(64, 1, 1), float32] */) /* ty=Tensor[(1, 64, 1, 1), float32] */;
  %79 = nn.relu(%78) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.5/block/block.2/relu/Relu:0:0 */;
  %80 = nn.conv2d(%79, meta[relay.Constant][39] /* ty=Tensor[(240, 64, 1, 1), float32] */, padding=[0, 0, 0, 0], channels=240, kernel_size=[1, 1]) /* ty=Tensor[(1, 240, 1, 1), float32] */;
  %81 = add(%80, meta[relay.Constant][40] /* ty=Tensor[(240, 1, 1), float32] */) /* ty=Tensor[(1, 240, 1, 1), float32] */;
  %82 = add(%81, 0.5f /* ty=float32 span=/features/features.5/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/HardSigmoid:0:0 */;
  %83 = clip(%82, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.5/block/block.2/HardSigmoid:0:0 */;
  %84 = squeeze(%83, axis=[0, 2, 3]) /* ty=Tensor[(240), float32] */;
  %85 = expand_dims(%84, axis=1, num_newaxis=2) /* ty=Tensor[(240, 1, 1), float32] */;
  %86 = multiply(meta[relay.Constant][36] /* ty=Tensor[(40, 240, 1, 1), float32] span=/features/features.5/block/block.3/block.3.0/Conv.onnx::Conv_502:0:0 */, %85) /* ty=Tensor[(40, 240, 1, 1), float32] */;
  %87 = nn.conv2d(%75, %86, padding=[0, 0, 0, 0], channels=40, kernel_size=[1, 1]) /* ty=Tensor[(1, 40, 16, 12), float32] */;
  %88 = add(%87, meta[relay.Constant][41] /* ty=Tensor[(40, 1, 1), float32] */) /* ty=Tensor[(1, 40, 16, 12), float32] */;
  %89 = add(%88, %63) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.5/Add:0:0 */;
  %90 = nn.conv2d(%89, meta[relay.Constant][42] /* ty=Tensor[(240, 40, 1, 1), float32] span=/features/features.6/block/block.0/block.0.0/Conv.onnx::Conv_505:0:0 */, padding=[0, 0, 0, 0], channels=240, kernel_size=[1, 1]) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.0/Conv:0:0 */;
  %91 = add(%90, meta[relay.Constant][43] /* ty=Tensor[(240, 1, 1), float32] */) /* ty=Tensor[(1, 240, 16, 12), float32] */;
  %92 = multiply(%91, 0.166667f /* ty=float32 span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %93 = add(%92, 0.5f /* ty=float32 span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %94 = clip(%93, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %95 = multiply(%91, %94) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.0/block.0.2/Mul:0:0 */;
  %96 = nn.conv2d(%95, meta[relay.Constant][44] /* ty=Tensor[(240, 1, 5, 5), float32] span=/features/features.6/block/block.1/block.1.0/Conv.onnx::Conv_508:0:0 */, padding=[2, 2, 2, 2], groups=240, channels=240, kernel_size=[5, 5]) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.0/Conv:0:0 */;
  %97 = add(%96, meta[relay.Constant][45] /* ty=Tensor[(240, 1, 1), float32] */) /* ty=Tensor[(1, 240, 16, 12), float32] */;
  %98 = multiply(%97, 0.166667f /* ty=float32 span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %99 = add(%98, 0.5f /* ty=float32 span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %100 = clip(%99, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %101 = multiply(%97, %100) /* ty=Tensor[(1, 240, 16, 12), float32] span=/features/features.6/block/block.1/block.1.2/Mul:0:0 */;
  %102 = nn.global_avg_pool2d(%101) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/GlobalAveragePool:0:0 */;
  %103 = nn.conv2d(%102, meta[relay.Constant][47] /* ty=Tensor[(64, 240, 1, 1), float32] span=/features/features.6/block/block.2/fc1/Conv.features.6.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=64, kernel_size=[1, 1]) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.6/block/block.2/fc1/Conv:0:0 */;
  %104 = add(%103, meta[relay.Constant][48] /* ty=Tensor[(64, 1, 1), float32] */) /* ty=Tensor[(1, 64, 1, 1), float32] */;
  %105 = nn.relu(%104) /* ty=Tensor[(1, 64, 1, 1), float32] span=/features/features.6/block/block.2/relu/Relu:0:0 */;
  %106 = nn.conv2d(%105, meta[relay.Constant][49] /* ty=Tensor[(240, 64, 1, 1), float32] */, padding=[0, 0, 0, 0], channels=240, kernel_size=[1, 1]) /* ty=Tensor[(1, 240, 1, 1), float32] */;
  %107 = add(%106, meta[relay.Constant][50] /* ty=Tensor[(240, 1, 1), float32] */) /* ty=Tensor[(1, 240, 1, 1), float32] */;
  %108 = add(%107, 0.5f /* ty=float32 span=/features/features.6/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/HardSigmoid:0:0 */;
  %109 = clip(%108, a_min=0f, a_max=1f) /* ty=Tensor[(1, 240, 1, 1), float32] span=/features/features.6/block/block.2/HardSigmoid:0:0 */;
  %110 = squeeze(%109, axis=[0, 2, 3]) /* ty=Tensor[(240), float32] */;
  %111 = expand_dims(%110, axis=1, num_newaxis=2) /* ty=Tensor[(240, 1, 1), float32] */;
  %112 = multiply(meta[relay.Constant][46] /* ty=Tensor[(40, 240, 1, 1), float32] span=/features/features.6/block/block.3/block.3.0/Conv.onnx::Conv_511:0:0 */, %111) /* ty=Tensor[(40, 240, 1, 1), float32] */;
  %113 = nn.conv2d(%101, %112, padding=[0, 0, 0, 0], channels=40, kernel_size=[1, 1]) /* ty=Tensor[(1, 40, 16, 12), float32] */;
  %114 = add(%113, meta[relay.Constant][51] /* ty=Tensor[(40, 1, 1), float32] */) /* ty=Tensor[(1, 40, 16, 12), float32] */;
  %115 = add(%114, %89) /* ty=Tensor[(1, 40, 16, 12), float32] span=/features/features.6/Add:0:0 */;
  %116 = nn.conv2d(%115, meta[relay.Constant][52] /* ty=Tensor[(120, 40, 1, 1), float32] span=/features/features.7/block/block.0/block.0.0/Conv.onnx::Conv_514:0:0 */, padding=[0, 0, 0, 0], channels=120, kernel_size=[1, 1]) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.0/Conv:0:0 */;
  %117 = add(%116, meta[relay.Constant][53] /* ty=Tensor[(120, 1, 1), float32] */) /* ty=Tensor[(1, 120, 16, 12), float32] */;
  %118 = multiply(%117, 0.166667f /* ty=float32 span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %119 = add(%118, 0.5f /* ty=float32 span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %120 = clip(%119, a_min=0f, a_max=1f) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %121 = multiply(%117, %120) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.0/block.0.2/Mul:0:0 */;
  %122 = nn.conv2d(%121, meta[relay.Constant][54] /* ty=Tensor[(120, 1, 5, 5), float32] span=/features/features.7/block/block.1/block.1.0/Conv.onnx::Conv_517:0:0 */, padding=[2, 2, 2, 2], groups=120, channels=120, kernel_size=[5, 5]) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.0/Conv:0:0 */;
  %123 = add(%122, meta[relay.Constant][55] /* ty=Tensor[(120, 1, 1), float32] */) /* ty=Tensor[(1, 120, 16, 12), float32] */;
  %124 = multiply(%123, 0.166667f /* ty=float32 span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %125 = add(%124, 0.5f /* ty=float32 span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %126 = clip(%125, a_min=0f, a_max=1f) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %127 = multiply(%123, %126) /* ty=Tensor[(1, 120, 16, 12), float32] span=/features/features.7/block/block.1/block.1.2/Mul:0:0 */;
  %128 = nn.global_avg_pool2d(%127) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/GlobalAveragePool:0:0 */;
  %129 = nn.conv2d(%128, meta[relay.Constant][57] /* ty=Tensor[(32, 120, 1, 1), float32] span=/features/features.7/block/block.2/fc1/Conv.features.7.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1]) /* ty=Tensor[(1, 32, 1, 1), float32] span=/features/features.7/block/block.2/fc1/Conv:0:0 */;
  %130 = add(%129, meta[relay.Constant][58] /* ty=Tensor[(32, 1, 1), float32] */) /* ty=Tensor[(1, 32, 1, 1), float32] */;
  %131 = nn.relu(%130) /* ty=Tensor[(1, 32, 1, 1), float32] span=/features/features.7/block/block.2/relu/Relu:0:0 */;
  %132 = nn.conv2d(%131, meta[relay.Constant][59] /* ty=Tensor[(120, 32, 1, 1), float32] */, padding=[0, 0, 0, 0], channels=120, kernel_size=[1, 1]) /* ty=Tensor[(1, 120, 1, 1), float32] */;
  %133 = add(%132, meta[relay.Constant][60] /* ty=Tensor[(120, 1, 1), float32] */) /* ty=Tensor[(1, 120, 1, 1), float32] */;
  %134 = add(%133, 0.5f /* ty=float32 span=/features/features.7/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/HardSigmoid:0:0 */;
  %135 = clip(%134, a_min=0f, a_max=1f) /* ty=Tensor[(1, 120, 1, 1), float32] span=/features/features.7/block/block.2/HardSigmoid:0:0 */;
  %136 = squeeze(%135, axis=[0, 2, 3]) /* ty=Tensor[(120), float32] */;
  %137 = expand_dims(%136, axis=1, num_newaxis=2) /* ty=Tensor[(120, 1, 1), float32] */;
  %138 = multiply(meta[relay.Constant][56] /* ty=Tensor[(48, 120, 1, 1), float32] span=/features/features.7/block/block.3/block.3.0/Conv.onnx::Conv_520:0:0 */, %137) /* ty=Tensor[(48, 120, 1, 1), float32] */;
  %139 = nn.conv2d(%127, %138, padding=[0, 0, 0, 0], channels=48, kernel_size=[1, 1]) /* ty=Tensor[(1, 48, 16, 12), float32] */;
  %140 = add(%139, meta[relay.Constant][61] /* ty=Tensor[(48, 1, 1), float32] */) /* ty=Tensor[(1, 48, 16, 12), float32] */;
  %141 = nn.conv2d(%140, meta[relay.Constant][62] /* ty=Tensor[(144, 48, 1, 1), float32] span=/features/features.8/block/block.0/block.0.0/Conv.onnx::Conv_523:0:0 */, padding=[0, 0, 0, 0], channels=144, kernel_size=[1, 1]) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.0/Conv:0:0 */;
  %142 = add(%141, meta[relay.Constant][63] /* ty=Tensor[(144, 1, 1), float32] */) /* ty=Tensor[(1, 144, 16, 12), float32] */;
  %143 = multiply(%142, 0.166667f /* ty=float32 span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %144 = add(%143, 0.5f /* ty=float32 span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %145 = clip(%144, a_min=0f, a_max=1f) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %146 = multiply(%142, %145) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.0/block.0.2/Mul:0:0 */;
  %147 = nn.conv2d(%146, meta[relay.Constant][64] /* ty=Tensor[(144, 1, 5, 5), float32] span=/features/features.8/block/block.1/block.1.0/Conv.onnx::Conv_526:0:0 */, padding=[2, 2, 2, 2], groups=144, channels=144, kernel_size=[5, 5]) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.0/Conv:0:0 */;
  %148 = add(%147, meta[relay.Constant][65] /* ty=Tensor[(144, 1, 1), float32] */) /* ty=Tensor[(1, 144, 16, 12), float32] */;
  %149 = multiply(%148, 0.166667f /* ty=float32 span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %150 = add(%149, 0.5f /* ty=float32 span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %151 = clip(%150, a_min=0f, a_max=1f) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %152 = multiply(%148, %151) /* ty=Tensor[(1, 144, 16, 12), float32] span=/features/features.8/block/block.1/block.1.2/Mul:0:0 */;
  %153 = nn.global_avg_pool2d(%152) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/GlobalAveragePool:0:0 */;
  %154 = nn.conv2d(%153, meta[relay.Constant][67] /* ty=Tensor[(40, 144, 1, 1), float32] span=/features/features.8/block/block.2/fc1/Conv.features.8.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=40, kernel_size=[1, 1]) /* ty=Tensor[(1, 40, 1, 1), float32] span=/features/features.8/block/block.2/fc1/Conv:0:0 */;
  %155 = add(%154, meta[relay.Constant][68] /* ty=Tensor[(40, 1, 1), float32] */) /* ty=Tensor[(1, 40, 1, 1), float32] */;
  %156 = nn.relu(%155) /* ty=Tensor[(1, 40, 1, 1), float32] span=/features/features.8/block/block.2/relu/Relu:0:0 */;
  %157 = nn.conv2d(%156, meta[relay.Constant][69] /* ty=Tensor[(144, 40, 1, 1), float32] */, padding=[0, 0, 0, 0], channels=144, kernel_size=[1, 1]) /* ty=Tensor[(1, 144, 1, 1), float32] */;
  %158 = add(%157, meta[relay.Constant][70] /* ty=Tensor[(144, 1, 1), float32] */) /* ty=Tensor[(1, 144, 1, 1), float32] */;
  %159 = add(%158, 0.5f /* ty=float32 span=/features/features.8/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/HardSigmoid:0:0 */;
  %160 = clip(%159, a_min=0f, a_max=1f) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.8/block/block.2/HardSigmoid:0:0 */;
  %161 = squeeze(%160, axis=[0, 2, 3]) /* ty=Tensor[(144), float32] */;
  %162 = expand_dims(%161, axis=1, num_newaxis=2) /* ty=Tensor[(144, 1, 1), float32] */;
  %163 = multiply(meta[relay.Constant][66] /* ty=Tensor[(48, 144, 1, 1), float32] span=/features/features.8/block/block.3/block.3.0/Conv.onnx::Conv_529:0:0 */, %162) /* ty=Tensor[(48, 144, 1, 1), float32] */;
  %164 = nn.conv2d(%152, %163, padding=[0, 0, 0, 0], channels=48, kernel_size=[1, 1]) /* ty=Tensor[(1, 48, 16, 12), float32] */;
  %165 = add(%164, meta[relay.Constant][71] /* ty=Tensor[(48, 1, 1), float32] */) /* ty=Tensor[(1, 48, 16, 12), float32] */;
  %166 = add(%165, %140) /* ty=Tensor[(1, 48, 16, 12), float32] span=/features/features.8/Add:0:0 */;
  %167 = nn.conv2d(%166, meta[relay.Constant][72] /* ty=Tensor[(288, 48, 1, 1), float32] span=/features/features.9/block/block.0/block.0.0/Conv.onnx::Conv_532:0:0 */, padding=[0, 0, 0, 0], channels=288, kernel_size=[1, 1]) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.0/Conv:0:0 */;
  %168 = add(%167, meta[relay.Constant][73] /* ty=Tensor[(288, 1, 1), float32] */) /* ty=Tensor[(1, 288, 16, 12), float32] */;
  %169 = multiply(%168, 0.166667f /* ty=float32 span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %170 = add(%169, 0.5f /* ty=float32 span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %171 = clip(%170, a_min=0f, a_max=1f) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %172 = multiply(%168, %171) /* ty=Tensor[(1, 288, 16, 12), float32] span=/features/features.9/block/block.0/block.0.2/Mul:0:0 */;
  %173 = nn.conv2d(%172, meta[relay.Constant][74] /* ty=Tensor[(288, 1, 5, 5), float32] span=/features/features.9/block/block.1/block.1.0/Conv.onnx::Conv_535:0:0 */, strides=[2, 2], padding=[2, 2, 2, 2], groups=288, channels=288, kernel_size=[5, 5]) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.0/Conv:0:0 */;
  %174 = add(%173, meta[relay.Constant][75] /* ty=Tensor[(288, 1, 1), float32] */) /* ty=Tensor[(1, 288, 8, 6), float32] */;
  %175 = multiply(%174, 0.166667f /* ty=float32 span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %176 = add(%175, 0.5f /* ty=float32 span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %177 = clip(%176, a_min=0f, a_max=1f) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %178 = multiply(%174, %177) /* ty=Tensor[(1, 288, 8, 6), float32] span=/features/features.9/block/block.1/block.1.2/Mul:0:0 */;
  %179 = nn.global_avg_pool2d(%178) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/GlobalAveragePool:0:0 */;
  %180 = nn.conv2d(%179, meta[relay.Constant][77] /* ty=Tensor[(72, 288, 1, 1), float32] span=/features/features.9/block/block.2/fc1/Conv.features.9.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=72, kernel_size=[1, 1]) /* ty=Tensor[(1, 72, 1, 1), float32] span=/features/features.9/block/block.2/fc1/Conv:0:0 */;
  %181 = add(%180, meta[relay.Constant][78] /* ty=Tensor[(72, 1, 1), float32] */) /* ty=Tensor[(1, 72, 1, 1), float32] */;
  %182 = nn.relu(%181) /* ty=Tensor[(1, 72, 1, 1), float32] span=/features/features.9/block/block.2/relu/Relu:0:0 */;
  %183 = nn.conv2d(%182, meta[relay.Constant][79] /* ty=Tensor[(288, 72, 1, 1), float32] */, padding=[0, 0, 0, 0], channels=288, kernel_size=[1, 1]) /* ty=Tensor[(1, 288, 1, 1), float32] */;
  %184 = add(%183, meta[relay.Constant][80] /* ty=Tensor[(288, 1, 1), float32] */) /* ty=Tensor[(1, 288, 1, 1), float32] */;
  %185 = add(%184, 0.5f /* ty=float32 span=/features/features.9/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/HardSigmoid:0:0 */;
  %186 = clip(%185, a_min=0f, a_max=1f) /* ty=Tensor[(1, 288, 1, 1), float32] span=/features/features.9/block/block.2/HardSigmoid:0:0 */;
  %187 = squeeze(%186, axis=[0, 2, 3]) /* ty=Tensor[(288), float32] */;
  %188 = expand_dims(%187, axis=1, num_newaxis=2) /* ty=Tensor[(288, 1, 1), float32] */;
  %189 = multiply(meta[relay.Constant][76] /* ty=Tensor[(96, 288, 1, 1), float32] span=/features/features.9/block/block.3/block.3.0/Conv.onnx::Conv_538:0:0 */, %188) /* ty=Tensor[(96, 288, 1, 1), float32] */;
  %190 = nn.conv2d(%178, %189, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 8, 6), float32] */;
  %191 = add(%190, meta[relay.Constant][81] /* ty=Tensor[(96, 1, 1), float32] */) /* ty=Tensor[(1, 96, 8, 6), float32] */;
  %192 = nn.conv2d(%191, meta[relay.Constant][82] /* ty=Tensor[(576, 96, 1, 1), float32] span=/features/features.10/block/block.0/block.0.0/Conv.onnx::Conv_541:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.0/Conv:0:0 */;
  %193 = add(%192, meta[relay.Constant][83] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 8, 6), float32] */;
  %194 = multiply(%193, 0.166667f /* ty=float32 span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %195 = add(%194, 0.5f /* ty=float32 span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %196 = clip(%195, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %197 = multiply(%193, %196) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.0/block.0.2/Mul:0:0 */;
  %198 = nn.conv2d(%197, meta[relay.Constant][84] /* ty=Tensor[(576, 1, 5, 5), float32] span=/features/features.10/block/block.1/block.1.0/Conv.onnx::Conv_544:0:0 */, padding=[2, 2, 2, 2], groups=576, channels=576, kernel_size=[5, 5]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.0/Conv:0:0 */;
  %199 = add(%198, meta[relay.Constant][85] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 8, 6), float32] */;
  %200 = multiply(%199, 0.166667f /* ty=float32 span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %201 = add(%200, 0.5f /* ty=float32 span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %202 = clip(%201, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %203 = multiply(%199, %202) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.10/block/block.1/block.1.2/Mul:0:0 */;
  %204 = nn.global_avg_pool2d(%203) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/GlobalAveragePool:0:0 */;
  %205 = nn.conv2d(%204, meta[relay.Constant][87] /* ty=Tensor[(144, 576, 1, 1), float32] span=/features/features.10/block/block.2/fc1/Conv.features.10.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=144, kernel_size=[1, 1]) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.10/block/block.2/fc1/Conv:0:0 */;
  %206 = add(%205, meta[relay.Constant][88] /* ty=Tensor[(144, 1, 1), float32] */) /* ty=Tensor[(1, 144, 1, 1), float32] */;
  %207 = nn.relu(%206) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.10/block/block.2/relu/Relu:0:0 */;
  %208 = nn.conv2d(%207, meta[relay.Constant][89] /* ty=Tensor[(576, 144, 1, 1), float32] */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 1, 1), float32] */;
  %209 = add(%208, meta[relay.Constant][90] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 1, 1), float32] */;
  %210 = add(%209, 0.5f /* ty=float32 span=/features/features.10/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/HardSigmoid:0:0 */;
  %211 = clip(%210, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.10/block/block.2/HardSigmoid:0:0 */;
  %212 = squeeze(%211, axis=[0, 2, 3]) /* ty=Tensor[(576), float32] */;
  %213 = expand_dims(%212, axis=1, num_newaxis=2) /* ty=Tensor[(576, 1, 1), float32] */;
  %214 = multiply(meta[relay.Constant][86] /* ty=Tensor[(96, 576, 1, 1), float32] span=/features/features.10/block/block.3/block.3.0/Conv.onnx::Conv_547:0:0 */, %213) /* ty=Tensor[(96, 576, 1, 1), float32] */;
  %215 = nn.conv2d(%203, %214, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 8, 6), float32] */;
  %216 = add(%215, meta[relay.Constant][91] /* ty=Tensor[(96, 1, 1), float32] */) /* ty=Tensor[(1, 96, 8, 6), float32] */;
  %217 = add(%216, %191) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.10/Add:0:0 */;
  %218 = nn.conv2d(%217, meta[relay.Constant][92] /* ty=Tensor[(576, 96, 1, 1), float32] span=/features/features.11/block/block.0/block.0.0/Conv.onnx::Conv_550:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.0/Conv:0:0 */;
  %219 = add(%218, meta[relay.Constant][93] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 8, 6), float32] */;
  %220 = multiply(%219, 0.166667f /* ty=float32 span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %221 = add(%220, 0.5f /* ty=float32 span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %222 = clip(%221, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.2/HardSigmoid:0:0 */;
  %223 = multiply(%219, %222) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.0/block.0.2/Mul:0:0 */;
  %224 = nn.conv2d(%223, meta[relay.Constant][94] /* ty=Tensor[(576, 1, 5, 5), float32] span=/features/features.11/block/block.1/block.1.0/Conv.onnx::Conv_553:0:0 */, padding=[2, 2, 2, 2], groups=576, channels=576, kernel_size=[5, 5]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.0/Conv:0:0 */;
  %225 = add(%224, meta[relay.Constant][95] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 8, 6), float32] */;
  %226 = multiply(%225, 0.166667f /* ty=float32 span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %227 = add(%226, 0.5f /* ty=float32 span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %228 = clip(%227, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.2/HardSigmoid:0:0 */;
  %229 = multiply(%225, %228) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.11/block/block.1/block.1.2/Mul:0:0 */;
  %230 = nn.global_avg_pool2d(%229) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/GlobalAveragePool:0:0 */;
  %231 = nn.conv2d(%230, meta[relay.Constant][97] /* ty=Tensor[(144, 576, 1, 1), float32] span=/features/features.11/block/block.2/fc1/Conv.features.11.block.2.fc1.weight:0:0 */, padding=[0, 0, 0, 0], channels=144, kernel_size=[1, 1]) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.11/block/block.2/fc1/Conv:0:0 */;
  %232 = add(%231, meta[relay.Constant][98] /* ty=Tensor[(144, 1, 1), float32] */) /* ty=Tensor[(1, 144, 1, 1), float32] */;
  %233 = nn.relu(%232) /* ty=Tensor[(1, 144, 1, 1), float32] span=/features/features.11/block/block.2/relu/Relu:0:0 */;
  %234 = nn.conv2d(%233, meta[relay.Constant][99] /* ty=Tensor[(576, 144, 1, 1), float32] */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 1, 1), float32] */;
  %235 = add(%234, meta[relay.Constant][100] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 1, 1), float32] */;
  %236 = add(%235, 0.5f /* ty=float32 span=/features/features.11/block/block.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/HardSigmoid:0:0 */;
  %237 = clip(%236, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 1, 1), float32] span=/features/features.11/block/block.2/HardSigmoid:0:0 */;
  %238 = squeeze(%237, axis=[0, 2, 3]) /* ty=Tensor[(576), float32] */;
  %239 = expand_dims(%238, axis=1, num_newaxis=2) /* ty=Tensor[(576, 1, 1), float32] */;
  %240 = multiply(meta[relay.Constant][96] /* ty=Tensor[(96, 576, 1, 1), float32] span=/features/features.11/block/block.3/block.3.0/Conv.onnx::Conv_556:0:0 */, %239) /* ty=Tensor[(96, 576, 1, 1), float32] */;
  %241 = nn.conv2d(%229, %240, padding=[0, 0, 0, 0], channels=96, kernel_size=[1, 1]) /* ty=Tensor[(1, 96, 8, 6), float32] */;
  %242 = add(%241, meta[relay.Constant][101] /* ty=Tensor[(96, 1, 1), float32] */) /* ty=Tensor[(1, 96, 8, 6), float32] */;
  %243 = add(%242, %217) /* ty=Tensor[(1, 96, 8, 6), float32] span=/features/features.11/Add:0:0 */;
  %244 = nn.conv2d(%243, meta[relay.Constant][102] /* ty=Tensor[(576, 96, 1, 1), float32] span=/features/features.12/features.12.0/Conv.onnx::Conv_559:0:0 */, padding=[0, 0, 0, 0], channels=576, kernel_size=[1, 1]) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.0/Conv:0:0 */;
  %245 = add(%244, meta[relay.Constant][103] /* ty=Tensor[(576, 1, 1), float32] */) /* ty=Tensor[(1, 576, 8, 6), float32] */;
  %246 = multiply(%245, 0.166667f /* ty=float32 span=/features/features.12/features.12.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.2/HardSigmoid:0:0 */;
  %247 = add(%246, 0.5f /* ty=float32 span=/features/features.12/features.12.2/HardSigmoid:0:0 */) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.2/HardSigmoid:0:0 */;
  %248 = clip(%247, a_min=0f, a_max=1f) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.2/HardSigmoid:0:0 */;
  %249 = multiply(%245, %248) /* ty=Tensor[(1, 576, 8, 6), float32] span=/features/features.12/features.12.2/Mul:0:0 */;
  %250 = nn.conv2d(%249, meta[relay.Constant][104] /* ty=Tensor[(1024, 576, 1, 1), float32] span=/conv/conv.0/Conv.onnx::Conv_562:0:0 */, padding=[0, 0, 0, 0], channels=1024, kernel_size=[1, 1]) /* ty=Tensor[(1, 1024, 8, 6), float32] span=/conv/conv.0/Conv:0:0 */;
  %251 = add(%250, meta[relay.Constant][105] /* ty=Tensor[(1024, 1, 1), float32] */) /* ty=Tensor[(1, 1024, 8, 6), float32] */;
  %252 = clip(%251, a_min=0f, a_max=6f) /* ty=Tensor[(1, 1024, 8, 6), float32] span=/conv/conv.2/Clip:0:0 */;
  %253 = reshape(%252, newshape=[1, 1024, -1]) /* ty=Tensor[(1, 1024, 48), float32] span=/pool_layer/Reshape:0:0 */;
  %254 = mean(%253, axis=[-1]) /* ty=Tensor[(1, 1024), float32] span=/pool_layer/ReduceMean:0:0 */;
  %255 = reshape(%254, newshape=[1, 1024, 1, 1]) /* ty=Tensor[(1, 1024, 1, 1), float32] span=/pool_layer/Reshape_1:0:0 */;
  %256 = multiply(%255, meta[relay.Constant][106] /* ty=Tensor[(1024, 1, 1), float32] */) /* ty=Tensor[(1, 1024, 1, 1), float32] */;
  %257 = add(%256, meta[relay.Constant][107] /* ty=Tensor[(1024, 1, 1), float32] */) /* ty=Tensor[(1, 1024, 1, 1), float32] */;
  %258 = reshape(%257, newshape=[1, -1]) /* ty=Tensor[(1, 1024), float32] span=/Reshape:0:0 */;
  %259 = nn.dense(%258, meta[relay.Constant][108] /* ty=Tensor[(9, 1024), float32] */, units=None, out_dtype="float32") /* ty=Tensor[(1, 9), float32] */;
  add(%259, meta[relay.Constant][109] /* ty=Tensor[(9), float32] */) /* ty=Tensor[(1, 9), float32] */
} /* ty=fn (Tensor[(1, 3, 256, 192), float32]) -> Tensor[(1, 9), float32] */
import sys
sys.path.extend(["/media/pc/data/board/arria10/lxw/tasks/tools/npu_user_demos/models/telecom_pt/Nin1_helmet_small"])
import mobilenetv3
from tvm.contrib.msc.core.frontend import translate
torch.cuda.empty_cache()
# 模型配置
bn_norm = "BN"
class_num = 9

# 预处理参数
width = 192   # 输入宽度
height = 256  # 输入高度
std = [58.395, 57.120, 57.375]      # 方差
mean = [123.675, 116.280, 103.530]  # 均值

bn_norm = "BN"
class_num = 9
inverted_residual_setting, last_channel = mobilenetv3._mobilenet_v3_conf("Small", {})
model = mobilenetv3.MobileNetV3(bn_norm, inverted_residual_setting, last_channel, class_num)

model_path = "/media/pc/data/board/arria10/lxw/tasks/tools/npu_user_demos/models/telecom_pt/Nin1_helmet_small/helmet_small.pth"
state_dict = torch.load(model_path,map_location=torch.device('cpu'))
model.load_state_dict({k.replace('backbone.','').replace('heads.',''):v for k,v in state_dict['model'].items()}, strict=True)
model.to(torch.device("cpu"))
model = model.eval()
from torch import fx
from tvm.relax.frontend.torch import from_fx
input_info = [(xs.shape, "float32")]
model_path = "/media/pc/data/board/arria10/lxw/tasks/tools/npu_user_demos/models/telecom_pt/Nin1_helmet_small/helmet_small.torchscript"
torch_model = torch.jit.load(model_path, map_location=torch.device('cpu'))
scripted_model = torch.jit.script(torch_model).cpu()
input_name = "x"
relay_mod, params = relay.frontend.from_pytorch(scripted_model, [(input_name, xs.shape)])
from copy import deepcopy
from tvm.relay.analysis import extract_intermdeiate_expr
from tvm_book.compiler.utils import merge_compiler

run_mod = deepcopy(relay_mod) 
# run_mod = extract_intermdeiate_expr(run_mod, 110)
with tvm.transform.PassContext(opt_level=3):
    # run_mod = relay.quantize.prerequisite_optimize(run_mod, params)
    run_mod = merge_compiler(run_mod, compiler_name="vta_special")
print(relay_mod["main"])
graph, weights = translate.from_relay(relay_mod, params, opt_config={"opt_level": 3})
tvm.IRModule.from_expr(run_mod["vta_special.multiply_add_122"])
from tvm.contrib.msc.framework.torch import codegen
model = codegen.to_torch(graph, weights)
from pathlib import Path
from tqdm import tqdm

ENV = {
    "model_type": "onnx",
    "input_name": "images",
    "channel": 3,
    "height": 256, 
    "width": 192, 
    "mode": "RGB", # 输入图片格式
    "mean": (0,),
    "std": (255,)
}

def letterbox_image(im: Image, dst_width: int, dst_height: int):
    '''使用填充保持纵横比缩放图像
    
    Args:
        im: 原始 Image
        dst_width: 目标宽度
        dst_height: 目标高度
    '''
    iw, ih = im.size # 原始尺寸
    scale = min(dst_width/iw, dst_height/ih)
    nw = int(iw*scale)
    nh = int(ih*scale)
    im = im.resize((nw, nh), Image.BICUBIC)
    new_image = Image.new('RGB', (dst_width, dst_height), (114, 114, 114))
    new_image.paste(im, ((dst_width-nw)//2, (dst_height-nh)//2))
    return new_image

def preprocessing(path: str|None, **ENV: dict):
    if not path:
        im = np.random.randint(0, 256, size=(32, 32, 3), dtype="uint8")
        im = Image.fromarray(im) # 转为 Image 实例
    else:
        im = Image.open(path)
    # im = im.resize((ENV["width"], ENV["height"]), Image.BICUBIC)
    im = letterbox_image(im, ENV["width"], ENV["height"])
    if ENV["mode"] == "L": # 将灰度图转换为 HWC 布局
        img = im.convert("L")
        img = np.expand_dims(img, axis=-1) # 转为 HWC
    elif ENV["mode"] == "RGB":
        img = np.array(im.convert("RGB")) # 转为 HWC 布局
    elif ENV["mode"] == "BGR":
        img = np.array(im.convert("RGB")) # 转为 HWC 布局
        img = img[..., ::-1] # RGB 转 BGR
    else:
        raise TypeError(f'暂未支持数据布局 {ENV["mode"]}')
    image_np = np.expand_dims(img, 0) # 转换为 NHWC (uint8 数据)
    # 预处理后的数据
    data_inp = ((image_np - ENV["mean"]) / ENV["std"]).astype(np.float32)
    data_inp = data_inp.transpose(0, 3, 1, 2)
    return np.ascontiguousarray(image_np), np.ascontiguousarray(data_inp)

def calibrateset(calibrate_num=2, data_dir="/media/pc/data/lxw/home/data/coco/train2017"):
    """用于量化的校准数据集"""
    for k, path in tqdm(enumerate(Path(data_dir).iterdir()), desc="Calibrate", unit="batch"):
        if k >= calibrate_num:
            break
        yield {ENV["input_name"]: preprocessing(path, **ENV)[1]}
input_name = "images"
onnx_model = onnx.load('/media/pc/data/board/arria10/lxw/tasks/tools/npu_user_demos/models/telecom/Nin1_helmet_small/helmet_small.onnx')
mod, params = relay.frontend.from_onnx(onnx_model, {input_name: xs.shape}, freeze_params=True)
with tvm.transform.PassContext(opt_level=3, disabled_pass={"AlterOpLayout"}):
    with relay.quantize.qconfig(
        calibrate_mode="percentile", weight_scale="max",
        skip_dense_layer=False,
        skip_conv_layers=None):
        qmod = relay.quantize.quantize(deepcopy(run_mod), params, dataset=calibrateset())
print(qmod)