Tensorflow1 前端#

参考: TVM Tensorflow 前端

下面以 mobilenet_v2 float_v2_1.4_224 为例,展示 Tensorflow 前端。

先运行简单的测试:

import os
import warnings
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
import tensorflow as tf
tf.get_logger().setLevel("ERROR")
warnings.simplefilter("ignore")
try:
    tf1 = tf.compat.v1
except (ImportError, AttributeError):
    tf1 = tf
import numpy as np
import set_env # 加载 TVM
import tvm.relay.testing.tf as tf_testing
import tvm
from tvm import relay
shape = 1, 224, 224, 3
data = np.random.uniform(size=shape).astype("float32")
output_name = "MobilenetV2/Predictions/Reshape_1"
input_name = "input"
input_dict = {f"{input_name}:0": data}
with tf.Graph().as_default():
    graph_def = tf_testing.get_workload(
        "https://storage.googleapis.com/mobilenet_v2/checkpoints/mobilenet_v2_1.4_224.tgz",
        "mobilenet_v2_1.4_224_frozen.pb",
    )
    # 调用实用程序将图定义导入默认 graph
    graph_def = tf_testing.ProcessGraphDefParam(graph_def)
    with tf1.Session() as sess:
        # 添加 shapes 到 graph
        graph_def = tf_testing.AddShapesToGraphDef(sess, output_name)
        # 获取 TF 结果
        out_tensor = sess.graph.get_tensor_by_name(f"{output_name}:0")
        tf_output = sess.run(out_tensor, input_dict)
        # TVM 编译
        mod, params = relay.frontend.from_tensorflow(
            graph_def,
            shape={
                input_name: shape
            }
        )

TensorFlow 数据布局变换#

原始模型输入布局为 NHWC,可将其转换为 NCHW:

desired_layouts = {
    # 'image.resize2d': ['NCHW'],
    'nn.conv2d': ['NCHW', 'default'],
    'nn.max_pool2d': ['NCHW', 'default'],
    'nn.avg_pool2d': ['NCHW', 'default'],
}

# 将布局转换为 NCHW
# RemoveUnusedFunctions 用于清理图。
seq = tvm.transform.Sequential([relay.transform.RemoveUnusedFunctions(),
                                relay.transform.ConvertLayout(desired_layouts)])
with tvm.transform.PassContext(opt_level=3):
    mod = seq(mod)
target = tvm.target.Target("llvm", host="llvm")
dev = tvm.cpu(0)
with relay.build_config(opt_level=3):
     lib = relay.build(mod, target, params=params)
m = tvm.contrib.graph_executor.GraphModule(lib["default"](dev))
m.set_input(**{input_name: data})
m.run()
tvm_output = [m.get_output(kk).numpy() for kk in range(m.get_num_outputs())]
np.testing.assert_allclose(
    np.squeeze(tvm_output[0]), np.squeeze(tf_output[0]), rtol=1e-2, atol=1e-3
)

TF1 变换为 PyTorch 模型#

简化模型:

with tvm.transform.PassContext(opt_level=3):
    mod = relay.quantize.prerequisite_optimize(mod, params)

替换 NHWC 为 NCHW 模型:

from tvm.relay.dataflow_pattern import (
    wildcard, is_op, is_var,
    # FunctionPattern,
    DFPatternCallback,
    rewrite
)

class InputNHWC2NCHW(DFPatternCallback):
    def __init__(self):
        super().__init__()
        self.x = is_var()
        self.layout_transform = is_op("layout_transform")(self.x)
        self.pattern = self.layout_transform

    def callback(self, pre, post, node_map):
        x = node_map[self.x][0]
        layout_transform = node_map[self.layout_transform][0]
        inp_type = relay.transform.InferTypeLocal(x)
        N, H, W, C = inp_type.shape
        if layout_transform.attrs.src_layout=="NHWC" and layout_transform.attrs.dst_layout=="NCHW":
            x = relay.var(x.name_hint, shape=(N, C, H, W), dtype=inp_type.dtype, span=x.span)
            # relay.transform.InferTypeLocal(x)
            return x
        return post
expr = rewrite(InputNHWC2NCHW(), mod["main"].body)
run_mod = tvm.IRModule.from_expr(expr)
run_mod = relay.transform.InferType()(run_mod)
with tvm.transform.PassContext(opt_level=3):
    run_mod = relay.quantize.prerequisite_optimize(run_mod, params)

验证数值一致性:

target = tvm.target.Target("llvm", host="llvm")
dev = tvm.cpu(0)
with relay.build_config(opt_level=3):
     lib = relay.build(run_mod, target, params=params)
m = tvm.contrib.graph_executor.GraphModule(lib["default"](dev))
m.set_input(**{input_name: data.transpose((0, 3, 1, 2))})
m.run()
new_tvm_output = [m.get_output(kk).numpy() for kk in range(m.get_num_outputs())]
np.testing.assert_allclose(
    np.squeeze(tvm_output[0]), np.squeeze(new_tvm_output[0]), rtol=1e-2, atol=1e-3
)
from tvm.contrib.msc.core.frontend import translate
from tvm.contrib.msc.framework.tvm import codegen as tvm_codegen
from tvm.contrib.msc.framework.torch import codegen
graph, weights = translate.from_relay(run_mod, params, opt_config={"opt_level": 3})
from tvm.relax.testing import relay_translator

target = tvm.target.Target("llvm", host="llvm")
relax_mod = relay_translator.from_relay(run_mod["main"], target)
[09:18:56] /media/pc/data/lxw/ai/tvm/src/relax/ir/block_builder.cc:65: Warning: BlockBuilder destroyed with remaining blocks!
[09:18:56] /media/pc/data/lxw/ai/tvm/src/relax/ir/block_builder.cc:65: Warning: BlockBuilder destroyed with remaining blocks!
from tvm.contrib.msc.core.frontend import translate

graph, weights = translate.from_relax(relax_mod)
print(graph)
main <INPUTS: input:0| OUTPUTS: call_tir_159:0>
ID_0 input <PARENTS: | CHILDERN: call_tir>
  OUT: input:0(input)<1,3,224,224|float32>
  OPTYPE: input

ID_1 call_tir <PARENTS: input| CHILDERN: call_tir_1>
  IN: input:0(input)<1,3,224,224|float32>
  OUT: call_tir:0<1,1,224,224,3|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_2 const <PARENTS: | CHILDERN: call_tir_1>
  OUT: const:0<12,1,3,3,3,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const<12,1,3,3,3,4|float32>

ID_3 call_tir_1 <PARENTS: call_tir,const| CHILDERN: call_tir_2>
  IN: call_tir:0<1,1,224,224,3|float32>,const:0<12,1,3,3,3,4|float32>
  OUT: call_tir_1:0<1,12,112,112,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_4 const_1 <PARENTS: | CHILDERN: call_tir_2>
  OUT: const_1:0<1,12,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_1<1,12,1,1,4|float32>

ID_5 call_tir_2 <PARENTS: call_tir_1,const_1| CHILDERN: call_tir_3>
  IN: call_tir_1:0<1,12,112,112,4|float32>,const_1:0<1,12,1,1,4|float32>
  OUT: call_tir_2:0<1,12,112,112,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_6 call_tir_3 <PARENTS: call_tir_2| CHILDERN: call_tir_4>
  IN: call_tir_2:0<1,12,112,112,4|float32>
  OUT: call_tir_3:0<1,12,112,112,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_7 const_2 <PARENTS: | CHILDERN: call_tir_4>
  OUT: const_2:0<12,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_2<12,1,3,3,1,4|float32>

ID_8 call_tir_4 <PARENTS: call_tir_3,const_2| CHILDERN: call_tir_5>
  IN: call_tir_3:0<1,12,112,112,4|float32>,const_2:0<12,1,3,3,1,4|float32>
  OUT: call_tir_4:0<1,12,112,112,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_9 const_3 <PARENTS: | CHILDERN: call_tir_5>
  OUT: const_3:0<1,12,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_3<1,12,1,1,4|float32>

ID_10 call_tir_5 <PARENTS: call_tir_4,const_3| CHILDERN: call_tir_6>
  IN: call_tir_4:0<1,12,112,112,4|float32>,const_3:0<1,12,1,1,4|float32>
  OUT: call_tir_5:0<1,12,112,112,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_11 call_tir_6 <PARENTS: call_tir_5| CHILDERN: call_tir_7>
  IN: call_tir_5:0<1,12,112,112,4|float32>
  OUT: call_tir_6:0<1,12,112,112,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_12 const_4 <PARENTS: | CHILDERN: call_tir_7>
  OUT: const_4:0<6,12,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_4<6,12,1,1,4,4|float32>

ID_13 call_tir_7 <PARENTS: call_tir_6,const_4| CHILDERN: call_tir_8>
  IN: call_tir_6:0<1,12,112,112,4|float32>,const_4:0<6,12,1,1,4,4|float32>
  OUT: call_tir_7:0<1,6,112,112,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_14 const_5 <PARENTS: | CHILDERN: call_tir_8>
  OUT: const_5:0<1,6,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_5<1,6,1,1,4|float32>

ID_15 call_tir_8 <PARENTS: call_tir_7,const_5| CHILDERN: call_tir_9>
  IN: call_tir_7:0<1,6,112,112,4|float32>,const_5:0<1,6,1,1,4|float32>
  OUT: call_tir_8:0<1,6,112,112,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_16 const_6 <PARENTS: | CHILDERN: call_tir_9>
  OUT: const_6:0<36,6,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_6<36,6,1,1,4,4|float32>

ID_17 call_tir_9 <PARENTS: call_tir_8,const_6| CHILDERN: call_tir_10>
  IN: call_tir_8:0<1,6,112,112,4|float32>,const_6:0<36,6,1,1,4,4|float32>
  OUT: call_tir_9:0<1,36,112,112,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_18 const_7 <PARENTS: | CHILDERN: call_tir_10>
  OUT: const_7:0<1,36,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_7<1,36,1,1,4|float32>

ID_19 call_tir_10 <PARENTS: call_tir_9,const_7| CHILDERN: call_tir_11>
  IN: call_tir_9:0<1,36,112,112,4|float32>,const_7:0<1,36,1,1,4|float32>
  OUT: call_tir_10:0<1,36,112,112,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_20 call_tir_11 <PARENTS: call_tir_10| CHILDERN: call_tir_12>
  IN: call_tir_10:0<1,36,112,112,4|float32>
  OUT: call_tir_11:0<1,36,112,112,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_21 const_8 <PARENTS: | CHILDERN: call_tir_12>
  OUT: const_8:0<36,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_8<36,1,3,3,1,4|float32>

ID_22 call_tir_12 <PARENTS: call_tir_11,const_8| CHILDERN: call_tir_13>
  IN: call_tir_11:0<1,36,112,112,4|float32>,const_8:0<36,1,3,3,1,4|float32>
  OUT: call_tir_12:0<1,36,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_23 const_9 <PARENTS: | CHILDERN: call_tir_13>
  OUT: const_9:0<1,36,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_9<1,36,1,1,4|float32>

ID_24 call_tir_13 <PARENTS: call_tir_12,const_9| CHILDERN: call_tir_14>
  IN: call_tir_12:0<1,36,56,56,4|float32>,const_9:0<1,36,1,1,4|float32>
  OUT: call_tir_13:0<1,36,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_25 call_tir_14 <PARENTS: call_tir_13| CHILDERN: call_tir_15>
  IN: call_tir_13:0<1,36,56,56,4|float32>
  OUT: call_tir_14:0<1,36,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_26 const_10 <PARENTS: | CHILDERN: call_tir_15>
  OUT: const_10:0<8,36,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_10<8,36,1,1,4,4|float32>

ID_27 call_tir_15 <PARENTS: call_tir_14,const_10| CHILDERN: call_tir_16>
  IN: call_tir_14:0<1,36,56,56,4|float32>,const_10:0<8,36,1,1,4,4|float32>
  OUT: call_tir_15:0<1,8,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_28 const_11 <PARENTS: | CHILDERN: call_tir_16>
  OUT: const_11:0<1,8,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_11<1,8,1,1,4|float32>

ID_29 call_tir_16 <PARENTS: call_tir_15,const_11| CHILDERN: call_tir_17,call_tir_25>
  IN: call_tir_15:0<1,8,56,56,4|float32>,const_11:0<1,8,1,1,4|float32>
  OUT: call_tir_16:0<1,8,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_30 const_12 <PARENTS: | CHILDERN: call_tir_17>
  OUT: const_12:0<48,8,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_12<48,8,1,1,4,4|float32>

ID_31 call_tir_17 <PARENTS: call_tir_16,const_12| CHILDERN: call_tir_18>
  IN: call_tir_16:0<1,8,56,56,4|float32>,const_12:0<48,8,1,1,4,4|float32>
  OUT: call_tir_17:0<1,48,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_32 const_13 <PARENTS: | CHILDERN: call_tir_18>
  OUT: const_13:0<1,48,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_13<1,48,1,1,4|float32>

ID_33 call_tir_18 <PARENTS: call_tir_17,const_13| CHILDERN: call_tir_19>
  IN: call_tir_17:0<1,48,56,56,4|float32>,const_13:0<1,48,1,1,4|float32>
  OUT: call_tir_18:0<1,48,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_34 call_tir_19 <PARENTS: call_tir_18| CHILDERN: call_tir_20>
  IN: call_tir_18:0<1,48,56,56,4|float32>
  OUT: call_tir_19:0<1,48,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_35 const_14 <PARENTS: | CHILDERN: call_tir_20>
  OUT: const_14:0<48,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_14<48,1,3,3,1,4|float32>

ID_36 call_tir_20 <PARENTS: call_tir_19,const_14| CHILDERN: call_tir_21>
  IN: call_tir_19:0<1,48,56,56,4|float32>,const_14:0<48,1,3,3,1,4|float32>
  OUT: call_tir_20:0<1,48,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_37 const_15 <PARENTS: | CHILDERN: call_tir_21>
  OUT: const_15:0<1,48,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_15<1,48,1,1,4|float32>

ID_38 call_tir_21 <PARENTS: call_tir_20,const_15| CHILDERN: call_tir_22>
  IN: call_tir_20:0<1,48,56,56,4|float32>,const_15:0<1,48,1,1,4|float32>
  OUT: call_tir_21:0<1,48,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_39 call_tir_22 <PARENTS: call_tir_21| CHILDERN: call_tir_23>
  IN: call_tir_21:0<1,48,56,56,4|float32>
  OUT: call_tir_22:0<1,48,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_40 const_16 <PARENTS: | CHILDERN: call_tir_23>
  OUT: const_16:0<8,48,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_16<8,48,1,1,4,4|float32>

ID_41 call_tir_23 <PARENTS: call_tir_22,const_16| CHILDERN: call_tir_24>
  IN: call_tir_22:0<1,48,56,56,4|float32>,const_16:0<8,48,1,1,4,4|float32>
  OUT: call_tir_23:0<1,8,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_42 const_17 <PARENTS: | CHILDERN: call_tir_24>
  OUT: const_17:0<1,8,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_17<1,8,1,1,4|float32>

ID_43 call_tir_24 <PARENTS: call_tir_23,const_17| CHILDERN: call_tir_25>
  IN: call_tir_23:0<1,8,56,56,4|float32>,const_17:0<1,8,1,1,4|float32>
  OUT: call_tir_24:0<1,8,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_44 call_tir_25 <PARENTS: call_tir_24,call_tir_16| CHILDERN: call_tir_26>
  IN: call_tir_24:0<1,8,56,56,4|float32>,call_tir_16:0<1,8,56,56,4|float32>
  OUT: call_tir_25:0<1,8,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_45 const_18 <PARENTS: | CHILDERN: call_tir_26>
  OUT: const_18:0<48,8,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_18<48,8,1,1,4,4|float32>

ID_46 call_tir_26 <PARENTS: call_tir_25,const_18| CHILDERN: call_tir_27>
  IN: call_tir_25:0<1,8,56,56,4|float32>,const_18:0<48,8,1,1,4,4|float32>
  OUT: call_tir_26:0<1,48,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_47 const_19 <PARENTS: | CHILDERN: call_tir_27>
  OUT: const_19:0<1,48,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_19<1,48,1,1,4|float32>

ID_48 call_tir_27 <PARENTS: call_tir_26,const_19| CHILDERN: call_tir_28>
  IN: call_tir_26:0<1,48,56,56,4|float32>,const_19:0<1,48,1,1,4|float32>
  OUT: call_tir_27:0<1,48,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_49 call_tir_28 <PARENTS: call_tir_27| CHILDERN: call_tir_29>
  IN: call_tir_27:0<1,48,56,56,4|float32>
  OUT: call_tir_28:0<1,48,56,56,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_50 const_20 <PARENTS: | CHILDERN: call_tir_29>
  OUT: const_20:0<48,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_20<48,1,3,3,1,4|float32>

ID_51 call_tir_29 <PARENTS: call_tir_28,const_20| CHILDERN: call_tir_30>
  IN: call_tir_28:0<1,48,56,56,4|float32>,const_20:0<48,1,3,3,1,4|float32>
  OUT: call_tir_29:0<1,48,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_52 const_21 <PARENTS: | CHILDERN: call_tir_30>
  OUT: const_21:0<1,48,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_21<1,48,1,1,4|float32>

ID_53 call_tir_30 <PARENTS: call_tir_29,const_21| CHILDERN: call_tir_31>
  IN: call_tir_29:0<1,48,28,28,4|float32>,const_21:0<1,48,1,1,4|float32>
  OUT: call_tir_30:0<1,48,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_54 call_tir_31 <PARENTS: call_tir_30| CHILDERN: call_tir_32>
  IN: call_tir_30:0<1,48,28,28,4|float32>
  OUT: call_tir_31:0<1,48,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_55 const_22 <PARENTS: | CHILDERN: call_tir_32>
  OUT: const_22:0<12,48,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_22<12,48,1,1,4,4|float32>

ID_56 call_tir_32 <PARENTS: call_tir_31,const_22| CHILDERN: call_tir_33>
  IN: call_tir_31:0<1,48,28,28,4|float32>,const_22:0<12,48,1,1,4,4|float32>
  OUT: call_tir_32:0<1,12,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_57 const_23 <PARENTS: | CHILDERN: call_tir_33>
  OUT: const_23:0<1,12,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_23<1,12,1,1,4|float32>

ID_58 call_tir_33 <PARENTS: call_tir_32,const_23| CHILDERN: call_tir_34,call_tir_42>
  IN: call_tir_32:0<1,12,28,28,4|float32>,const_23:0<1,12,1,1,4|float32>
  OUT: call_tir_33:0<1,12,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_59 const_24 <PARENTS: | CHILDERN: call_tir_34>
  OUT: const_24:0<72,12,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_24<72,12,1,1,4,4|float32>

ID_60 call_tir_34 <PARENTS: call_tir_33,const_24| CHILDERN: call_tir_35>
  IN: call_tir_33:0<1,12,28,28,4|float32>,const_24:0<72,12,1,1,4,4|float32>
  OUT: call_tir_34:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_61 const_25 <PARENTS: | CHILDERN: call_tir_35>
  OUT: const_25:0<1,72,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_25<1,72,1,1,4|float32>

ID_62 call_tir_35 <PARENTS: call_tir_34,const_25| CHILDERN: call_tir_36>
  IN: call_tir_34:0<1,72,28,28,4|float32>,const_25:0<1,72,1,1,4|float32>
  OUT: call_tir_35:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_63 call_tir_36 <PARENTS: call_tir_35| CHILDERN: call_tir_37>
  IN: call_tir_35:0<1,72,28,28,4|float32>
  OUT: call_tir_36:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_64 const_26 <PARENTS: | CHILDERN: call_tir_37>
  OUT: const_26:0<72,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_26<72,1,3,3,1,4|float32>

ID_65 call_tir_37 <PARENTS: call_tir_36,const_26| CHILDERN: call_tir_38>
  IN: call_tir_36:0<1,72,28,28,4|float32>,const_26:0<72,1,3,3,1,4|float32>
  OUT: call_tir_37:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_66 const_27 <PARENTS: | CHILDERN: call_tir_38>
  OUT: const_27:0<1,72,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_27<1,72,1,1,4|float32>

ID_67 call_tir_38 <PARENTS: call_tir_37,const_27| CHILDERN: call_tir_39>
  IN: call_tir_37:0<1,72,28,28,4|float32>,const_27:0<1,72,1,1,4|float32>
  OUT: call_tir_38:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_68 call_tir_39 <PARENTS: call_tir_38| CHILDERN: call_tir_40>
  IN: call_tir_38:0<1,72,28,28,4|float32>
  OUT: call_tir_39:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_69 const_28 <PARENTS: | CHILDERN: call_tir_40>
  OUT: const_28:0<12,72,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_28<12,72,1,1,4,4|float32>

ID_70 call_tir_40 <PARENTS: call_tir_39,const_28| CHILDERN: call_tir_41>
  IN: call_tir_39:0<1,72,28,28,4|float32>,const_28:0<12,72,1,1,4,4|float32>
  OUT: call_tir_40:0<1,12,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_71 const_29 <PARENTS: | CHILDERN: call_tir_41>
  OUT: const_29:0<1,12,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_29<1,12,1,1,4|float32>

ID_72 call_tir_41 <PARENTS: call_tir_40,const_29| CHILDERN: call_tir_42>
  IN: call_tir_40:0<1,12,28,28,4|float32>,const_29:0<1,12,1,1,4|float32>
  OUT: call_tir_41:0<1,12,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_73 call_tir_42 <PARENTS: call_tir_41,call_tir_33| CHILDERN: call_tir_43,call_tir_51>
  IN: call_tir_41:0<1,12,28,28,4|float32>,call_tir_33:0<1,12,28,28,4|float32>
  OUT: call_tir_42:0<1,12,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_74 const_30 <PARENTS: | CHILDERN: call_tir_43>
  OUT: const_30:0<72,12,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_30<72,12,1,1,4,4|float32>

ID_75 call_tir_43 <PARENTS: call_tir_42,const_30| CHILDERN: call_tir_44>
  IN: call_tir_42:0<1,12,28,28,4|float32>,const_30:0<72,12,1,1,4,4|float32>
  OUT: call_tir_43:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_76 const_31 <PARENTS: | CHILDERN: call_tir_44>
  OUT: const_31:0<1,72,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_31<1,72,1,1,4|float32>

ID_77 call_tir_44 <PARENTS: call_tir_43,const_31| CHILDERN: call_tir_45>
  IN: call_tir_43:0<1,72,28,28,4|float32>,const_31:0<1,72,1,1,4|float32>
  OUT: call_tir_44:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_78 call_tir_45 <PARENTS: call_tir_44| CHILDERN: call_tir_46>
  IN: call_tir_44:0<1,72,28,28,4|float32>
  OUT: call_tir_45:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_79 const_32 <PARENTS: | CHILDERN: call_tir_46>
  OUT: const_32:0<72,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_32<72,1,3,3,1,4|float32>

ID_80 call_tir_46 <PARENTS: call_tir_45,const_32| CHILDERN: call_tir_47>
  IN: call_tir_45:0<1,72,28,28,4|float32>,const_32:0<72,1,3,3,1,4|float32>
  OUT: call_tir_46:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_81 const_33 <PARENTS: | CHILDERN: call_tir_47>
  OUT: const_33:0<1,72,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_33<1,72,1,1,4|float32>

ID_82 call_tir_47 <PARENTS: call_tir_46,const_33| CHILDERN: call_tir_48>
  IN: call_tir_46:0<1,72,28,28,4|float32>,const_33:0<1,72,1,1,4|float32>
  OUT: call_tir_47:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_83 call_tir_48 <PARENTS: call_tir_47| CHILDERN: call_tir_49>
  IN: call_tir_47:0<1,72,28,28,4|float32>
  OUT: call_tir_48:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_84 const_34 <PARENTS: | CHILDERN: call_tir_49>
  OUT: const_34:0<12,72,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_34<12,72,1,1,4,4|float32>

ID_85 call_tir_49 <PARENTS: call_tir_48,const_34| CHILDERN: call_tir_50>
  IN: call_tir_48:0<1,72,28,28,4|float32>,const_34:0<12,72,1,1,4,4|float32>
  OUT: call_tir_49:0<1,12,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_86 const_35 <PARENTS: | CHILDERN: call_tir_50>
  OUT: const_35:0<1,12,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_35<1,12,1,1,4|float32>

ID_87 call_tir_50 <PARENTS: call_tir_49,const_35| CHILDERN: call_tir_51>
  IN: call_tir_49:0<1,12,28,28,4|float32>,const_35:0<1,12,1,1,4|float32>
  OUT: call_tir_50:0<1,12,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_88 call_tir_51 <PARENTS: call_tir_50,call_tir_42| CHILDERN: call_tir_52>
  IN: call_tir_50:0<1,12,28,28,4|float32>,call_tir_42:0<1,12,28,28,4|float32>
  OUT: call_tir_51:0<1,12,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_89 const_36 <PARENTS: | CHILDERN: call_tir_52>
  OUT: const_36:0<72,12,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_36<72,12,1,1,4,4|float32>

ID_90 call_tir_52 <PARENTS: call_tir_51,const_36| CHILDERN: call_tir_53>
  IN: call_tir_51:0<1,12,28,28,4|float32>,const_36:0<72,12,1,1,4,4|float32>
  OUT: call_tir_52:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_91 const_37 <PARENTS: | CHILDERN: call_tir_53>
  OUT: const_37:0<1,72,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_37<1,72,1,1,4|float32>

ID_92 call_tir_53 <PARENTS: call_tir_52,const_37| CHILDERN: call_tir_54>
  IN: call_tir_52:0<1,72,28,28,4|float32>,const_37:0<1,72,1,1,4|float32>
  OUT: call_tir_53:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_93 call_tir_54 <PARENTS: call_tir_53| CHILDERN: call_tir_55>
  IN: call_tir_53:0<1,72,28,28,4|float32>
  OUT: call_tir_54:0<1,72,28,28,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_94 const_38 <PARENTS: | CHILDERN: call_tir_55>
  OUT: const_38:0<72,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_38<72,1,3,3,1,4|float32>

ID_95 call_tir_55 <PARENTS: call_tir_54,const_38| CHILDERN: call_tir_56>
  IN: call_tir_54:0<1,72,28,28,4|float32>,const_38:0<72,1,3,3,1,4|float32>
  OUT: call_tir_55:0<1,72,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_96 const_39 <PARENTS: | CHILDERN: call_tir_56>
  OUT: const_39:0<1,72,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_39<1,72,1,1,4|float32>

ID_97 call_tir_56 <PARENTS: call_tir_55,const_39| CHILDERN: call_tir_57>
  IN: call_tir_55:0<1,72,14,14,4|float32>,const_39:0<1,72,1,1,4|float32>
  OUT: call_tir_56:0<1,72,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_98 call_tir_57 <PARENTS: call_tir_56| CHILDERN: call_tir_58>
  IN: call_tir_56:0<1,72,14,14,4|float32>
  OUT: call_tir_57:0<1,72,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_99 const_40 <PARENTS: | CHILDERN: call_tir_58>
  OUT: const_40:0<22,72,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_40<22,72,1,1,4,4|float32>

ID_100 call_tir_58 <PARENTS: call_tir_57,const_40| CHILDERN: call_tir_59>
  IN: call_tir_57:0<1,72,14,14,4|float32>,const_40:0<22,72,1,1,4,4|float32>
  OUT: call_tir_58:0<1,22,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_101 const_41 <PARENTS: | CHILDERN: call_tir_59>
  OUT: const_41:0<1,22,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_41<1,22,1,1,4|float32>

ID_102 call_tir_59 <PARENTS: call_tir_58,const_41| CHILDERN: call_tir_60,call_tir_68>
  IN: call_tir_58:0<1,22,14,14,4|float32>,const_41:0<1,22,1,1,4|float32>
  OUT: call_tir_59:0<1,22,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_103 const_42 <PARENTS: | CHILDERN: call_tir_60>
  OUT: const_42:0<132,22,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_42<132,22,1,1,4,4|float32>

ID_104 call_tir_60 <PARENTS: call_tir_59,const_42| CHILDERN: call_tir_61>
  IN: call_tir_59:0<1,22,14,14,4|float32>,const_42:0<132,22,1,1,4,4|float32>
  OUT: call_tir_60:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_105 const_43 <PARENTS: | CHILDERN: call_tir_61>
  OUT: const_43:0<1,132,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_43<1,132,1,1,4|float32>

ID_106 call_tir_61 <PARENTS: call_tir_60,const_43| CHILDERN: call_tir_62>
  IN: call_tir_60:0<1,132,14,14,4|float32>,const_43:0<1,132,1,1,4|float32>
  OUT: call_tir_61:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_107 call_tir_62 <PARENTS: call_tir_61| CHILDERN: call_tir_63>
  IN: call_tir_61:0<1,132,14,14,4|float32>
  OUT: call_tir_62:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_108 const_44 <PARENTS: | CHILDERN: call_tir_63>
  OUT: const_44:0<132,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_44<132,1,3,3,1,4|float32>

ID_109 call_tir_63 <PARENTS: call_tir_62,const_44| CHILDERN: call_tir_64>
  IN: call_tir_62:0<1,132,14,14,4|float32>,const_44:0<132,1,3,3,1,4|float32>
  OUT: call_tir_63:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_110 const_45 <PARENTS: | CHILDERN: call_tir_64>
  OUT: const_45:0<1,132,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_45<1,132,1,1,4|float32>

ID_111 call_tir_64 <PARENTS: call_tir_63,const_45| CHILDERN: call_tir_65>
  IN: call_tir_63:0<1,132,14,14,4|float32>,const_45:0<1,132,1,1,4|float32>
  OUT: call_tir_64:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_112 call_tir_65 <PARENTS: call_tir_64| CHILDERN: call_tir_66>
  IN: call_tir_64:0<1,132,14,14,4|float32>
  OUT: call_tir_65:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_113 const_46 <PARENTS: | CHILDERN: call_tir_66>
  OUT: const_46:0<22,132,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_46<22,132,1,1,4,4|float32>

ID_114 call_tir_66 <PARENTS: call_tir_65,const_46| CHILDERN: call_tir_67>
  IN: call_tir_65:0<1,132,14,14,4|float32>,const_46:0<22,132,1,1,4,4|float32>
  OUT: call_tir_66:0<1,22,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_115 const_47 <PARENTS: | CHILDERN: call_tir_67>
  OUT: const_47:0<1,22,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_47<1,22,1,1,4|float32>

ID_116 call_tir_67 <PARENTS: call_tir_66,const_47| CHILDERN: call_tir_68>
  IN: call_tir_66:0<1,22,14,14,4|float32>,const_47:0<1,22,1,1,4|float32>
  OUT: call_tir_67:0<1,22,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_117 call_tir_68 <PARENTS: call_tir_67,call_tir_59| CHILDERN: call_tir_69,call_tir_77>
  IN: call_tir_67:0<1,22,14,14,4|float32>,call_tir_59:0<1,22,14,14,4|float32>
  OUT: call_tir_68:0<1,22,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_118 const_48 <PARENTS: | CHILDERN: call_tir_69>
  OUT: const_48:0<132,22,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_48<132,22,1,1,4,4|float32>

ID_119 call_tir_69 <PARENTS: call_tir_68,const_48| CHILDERN: call_tir_70>
  IN: call_tir_68:0<1,22,14,14,4|float32>,const_48:0<132,22,1,1,4,4|float32>
  OUT: call_tir_69:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_120 const_49 <PARENTS: | CHILDERN: call_tir_70>
  OUT: const_49:0<1,132,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_49<1,132,1,1,4|float32>

ID_121 call_tir_70 <PARENTS: call_tir_69,const_49| CHILDERN: call_tir_71>
  IN: call_tir_69:0<1,132,14,14,4|float32>,const_49:0<1,132,1,1,4|float32>
  OUT: call_tir_70:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_122 call_tir_71 <PARENTS: call_tir_70| CHILDERN: call_tir_72>
  IN: call_tir_70:0<1,132,14,14,4|float32>
  OUT: call_tir_71:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_123 const_50 <PARENTS: | CHILDERN: call_tir_72>
  OUT: const_50:0<132,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_50<132,1,3,3,1,4|float32>

ID_124 call_tir_72 <PARENTS: call_tir_71,const_50| CHILDERN: call_tir_73>
  IN: call_tir_71:0<1,132,14,14,4|float32>,const_50:0<132,1,3,3,1,4|float32>
  OUT: call_tir_72:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_125 const_51 <PARENTS: | CHILDERN: call_tir_73>
  OUT: const_51:0<1,132,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_51<1,132,1,1,4|float32>

ID_126 call_tir_73 <PARENTS: call_tir_72,const_51| CHILDERN: call_tir_74>
  IN: call_tir_72:0<1,132,14,14,4|float32>,const_51:0<1,132,1,1,4|float32>
  OUT: call_tir_73:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_127 call_tir_74 <PARENTS: call_tir_73| CHILDERN: call_tir_75>
  IN: call_tir_73:0<1,132,14,14,4|float32>
  OUT: call_tir_74:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_128 const_52 <PARENTS: | CHILDERN: call_tir_75>
  OUT: const_52:0<22,132,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_52<22,132,1,1,4,4|float32>

ID_129 call_tir_75 <PARENTS: call_tir_74,const_52| CHILDERN: call_tir_76>
  IN: call_tir_74:0<1,132,14,14,4|float32>,const_52:0<22,132,1,1,4,4|float32>
  OUT: call_tir_75:0<1,22,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_130 const_53 <PARENTS: | CHILDERN: call_tir_76>
  OUT: const_53:0<1,22,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_53<1,22,1,1,4|float32>

ID_131 call_tir_76 <PARENTS: call_tir_75,const_53| CHILDERN: call_tir_77>
  IN: call_tir_75:0<1,22,14,14,4|float32>,const_53:0<1,22,1,1,4|float32>
  OUT: call_tir_76:0<1,22,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_132 call_tir_77 <PARENTS: call_tir_76,call_tir_68| CHILDERN: call_tir_78,call_tir_86>
  IN: call_tir_76:0<1,22,14,14,4|float32>,call_tir_68:0<1,22,14,14,4|float32>
  OUT: call_tir_77:0<1,22,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_133 const_54 <PARENTS: | CHILDERN: call_tir_78>
  OUT: const_54:0<132,22,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_54<132,22,1,1,4,4|float32>

ID_134 call_tir_78 <PARENTS: call_tir_77,const_54| CHILDERN: call_tir_79>
  IN: call_tir_77:0<1,22,14,14,4|float32>,const_54:0<132,22,1,1,4,4|float32>
  OUT: call_tir_78:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_135 const_55 <PARENTS: | CHILDERN: call_tir_79>
  OUT: const_55:0<1,132,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_55<1,132,1,1,4|float32>

ID_136 call_tir_79 <PARENTS: call_tir_78,const_55| CHILDERN: call_tir_80>
  IN: call_tir_78:0<1,132,14,14,4|float32>,const_55:0<1,132,1,1,4|float32>
  OUT: call_tir_79:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_137 call_tir_80 <PARENTS: call_tir_79| CHILDERN: call_tir_81>
  IN: call_tir_79:0<1,132,14,14,4|float32>
  OUT: call_tir_80:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_138 const_56 <PARENTS: | CHILDERN: call_tir_81>
  OUT: const_56:0<132,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_56<132,1,3,3,1,4|float32>

ID_139 call_tir_81 <PARENTS: call_tir_80,const_56| CHILDERN: call_tir_82>
  IN: call_tir_80:0<1,132,14,14,4|float32>,const_56:0<132,1,3,3,1,4|float32>
  OUT: call_tir_81:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_140 const_57 <PARENTS: | CHILDERN: call_tir_82>
  OUT: const_57:0<1,132,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_57<1,132,1,1,4|float32>

ID_141 call_tir_82 <PARENTS: call_tir_81,const_57| CHILDERN: call_tir_83>
  IN: call_tir_81:0<1,132,14,14,4|float32>,const_57:0<1,132,1,1,4|float32>
  OUT: call_tir_82:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_142 call_tir_83 <PARENTS: call_tir_82| CHILDERN: call_tir_84>
  IN: call_tir_82:0<1,132,14,14,4|float32>
  OUT: call_tir_83:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_143 const_58 <PARENTS: | CHILDERN: call_tir_84>
  OUT: const_58:0<22,132,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_58<22,132,1,1,4,4|float32>

ID_144 call_tir_84 <PARENTS: call_tir_83,const_58| CHILDERN: call_tir_85>
  IN: call_tir_83:0<1,132,14,14,4|float32>,const_58:0<22,132,1,1,4,4|float32>
  OUT: call_tir_84:0<1,22,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_145 const_59 <PARENTS: | CHILDERN: call_tir_85>
  OUT: const_59:0<1,22,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_59<1,22,1,1,4|float32>

ID_146 call_tir_85 <PARENTS: call_tir_84,const_59| CHILDERN: call_tir_86>
  IN: call_tir_84:0<1,22,14,14,4|float32>,const_59:0<1,22,1,1,4|float32>
  OUT: call_tir_85:0<1,22,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_147 call_tir_86 <PARENTS: call_tir_85,call_tir_77| CHILDERN: call_tir_87>
  IN: call_tir_85:0<1,22,14,14,4|float32>,call_tir_77:0<1,22,14,14,4|float32>
  OUT: call_tir_86:0<1,22,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_148 const_60 <PARENTS: | CHILDERN: call_tir_87>
  OUT: const_60:0<132,22,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_60<132,22,1,1,4,4|float32>

ID_149 call_tir_87 <PARENTS: call_tir_86,const_60| CHILDERN: call_tir_88>
  IN: call_tir_86:0<1,22,14,14,4|float32>,const_60:0<132,22,1,1,4,4|float32>
  OUT: call_tir_87:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_150 const_61 <PARENTS: | CHILDERN: call_tir_88>
  OUT: const_61:0<1,132,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_61<1,132,1,1,4|float32>

ID_151 call_tir_88 <PARENTS: call_tir_87,const_61| CHILDERN: call_tir_89>
  IN: call_tir_87:0<1,132,14,14,4|float32>,const_61:0<1,132,1,1,4|float32>
  OUT: call_tir_88:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_152 call_tir_89 <PARENTS: call_tir_88| CHILDERN: call_tir_90>
  IN: call_tir_88:0<1,132,14,14,4|float32>
  OUT: call_tir_89:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_153 const_62 <PARENTS: | CHILDERN: call_tir_90>
  OUT: const_62:0<132,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_62<132,1,3,3,1,4|float32>

ID_154 call_tir_90 <PARENTS: call_tir_89,const_62| CHILDERN: call_tir_91>
  IN: call_tir_89:0<1,132,14,14,4|float32>,const_62:0<132,1,3,3,1,4|float32>
  OUT: call_tir_90:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_155 const_63 <PARENTS: | CHILDERN: call_tir_91>
  OUT: const_63:0<1,132,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_63<1,132,1,1,4|float32>

ID_156 call_tir_91 <PARENTS: call_tir_90,const_63| CHILDERN: call_tir_92>
  IN: call_tir_90:0<1,132,14,14,4|float32>,const_63:0<1,132,1,1,4|float32>
  OUT: call_tir_91:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_157 call_tir_92 <PARENTS: call_tir_91| CHILDERN: call_tir_93>
  IN: call_tir_91:0<1,132,14,14,4|float32>
  OUT: call_tir_92:0<1,132,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_158 const_64 <PARENTS: | CHILDERN: call_tir_93>
  OUT: const_64:0<34,132,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_64<34,132,1,1,4,4|float32>

ID_159 call_tir_93 <PARENTS: call_tir_92,const_64| CHILDERN: call_tir_94>
  IN: call_tir_92:0<1,132,14,14,4|float32>,const_64:0<34,132,1,1,4,4|float32>
  OUT: call_tir_93:0<1,34,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_160 const_65 <PARENTS: | CHILDERN: call_tir_94>
  OUT: const_65:0<1,34,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_65<1,34,1,1,4|float32>

ID_161 call_tir_94 <PARENTS: call_tir_93,const_65| CHILDERN: call_tir_95,call_tir_103>
  IN: call_tir_93:0<1,34,14,14,4|float32>,const_65:0<1,34,1,1,4|float32>
  OUT: call_tir_94:0<1,34,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_162 const_66 <PARENTS: | CHILDERN: call_tir_95>
  OUT: const_66:0<204,34,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_66<204,34,1,1,4,4|float32>

ID_163 call_tir_95 <PARENTS: call_tir_94,const_66| CHILDERN: call_tir_96>
  IN: call_tir_94:0<1,34,14,14,4|float32>,const_66:0<204,34,1,1,4,4|float32>
  OUT: call_tir_95:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_164 const_67 <PARENTS: | CHILDERN: call_tir_96>
  OUT: const_67:0<1,204,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_67<1,204,1,1,4|float32>

ID_165 call_tir_96 <PARENTS: call_tir_95,const_67| CHILDERN: call_tir_97>
  IN: call_tir_95:0<1,204,14,14,4|float32>,const_67:0<1,204,1,1,4|float32>
  OUT: call_tir_96:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_166 call_tir_97 <PARENTS: call_tir_96| CHILDERN: call_tir_98>
  IN: call_tir_96:0<1,204,14,14,4|float32>
  OUT: call_tir_97:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_167 const_68 <PARENTS: | CHILDERN: call_tir_98>
  OUT: const_68:0<204,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_68<204,1,3,3,1,4|float32>

ID_168 call_tir_98 <PARENTS: call_tir_97,const_68| CHILDERN: call_tir_99>
  IN: call_tir_97:0<1,204,14,14,4|float32>,const_68:0<204,1,3,3,1,4|float32>
  OUT: call_tir_98:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_169 const_69 <PARENTS: | CHILDERN: call_tir_99>
  OUT: const_69:0<1,204,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_69<1,204,1,1,4|float32>

ID_170 call_tir_99 <PARENTS: call_tir_98,const_69| CHILDERN: call_tir_100>
  IN: call_tir_98:0<1,204,14,14,4|float32>,const_69:0<1,204,1,1,4|float32>
  OUT: call_tir_99:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_171 call_tir_100 <PARENTS: call_tir_99| CHILDERN: call_tir_101>
  IN: call_tir_99:0<1,204,14,14,4|float32>
  OUT: call_tir_100:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_172 const_70 <PARENTS: | CHILDERN: call_tir_101>
  OUT: const_70:0<34,204,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_70<34,204,1,1,4,4|float32>

ID_173 call_tir_101 <PARENTS: call_tir_100,const_70| CHILDERN: call_tir_102>
  IN: call_tir_100:0<1,204,14,14,4|float32>,const_70:0<34,204,1,1,4,4|float32>
  OUT: call_tir_101:0<1,34,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_174 const_71 <PARENTS: | CHILDERN: call_tir_102>
  OUT: const_71:0<1,34,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_71<1,34,1,1,4|float32>

ID_175 call_tir_102 <PARENTS: call_tir_101,const_71| CHILDERN: call_tir_103>
  IN: call_tir_101:0<1,34,14,14,4|float32>,const_71:0<1,34,1,1,4|float32>
  OUT: call_tir_102:0<1,34,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_176 call_tir_103 <PARENTS: call_tir_102,call_tir_94| CHILDERN: call_tir_104,call_tir_112>
  IN: call_tir_102:0<1,34,14,14,4|float32>,call_tir_94:0<1,34,14,14,4|float32>
  OUT: call_tir_103:0<1,34,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_177 const_72 <PARENTS: | CHILDERN: call_tir_104>
  OUT: const_72:0<204,34,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_72<204,34,1,1,4,4|float32>

ID_178 call_tir_104 <PARENTS: call_tir_103,const_72| CHILDERN: call_tir_105>
  IN: call_tir_103:0<1,34,14,14,4|float32>,const_72:0<204,34,1,1,4,4|float32>
  OUT: call_tir_104:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_179 const_73 <PARENTS: | CHILDERN: call_tir_105>
  OUT: const_73:0<1,204,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_73<1,204,1,1,4|float32>

ID_180 call_tir_105 <PARENTS: call_tir_104,const_73| CHILDERN: call_tir_106>
  IN: call_tir_104:0<1,204,14,14,4|float32>,const_73:0<1,204,1,1,4|float32>
  OUT: call_tir_105:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_181 call_tir_106 <PARENTS: call_tir_105| CHILDERN: call_tir_107>
  IN: call_tir_105:0<1,204,14,14,4|float32>
  OUT: call_tir_106:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_182 const_74 <PARENTS: | CHILDERN: call_tir_107>
  OUT: const_74:0<204,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_74<204,1,3,3,1,4|float32>

ID_183 call_tir_107 <PARENTS: call_tir_106,const_74| CHILDERN: call_tir_108>
  IN: call_tir_106:0<1,204,14,14,4|float32>,const_74:0<204,1,3,3,1,4|float32>
  OUT: call_tir_107:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_184 const_75 <PARENTS: | CHILDERN: call_tir_108>
  OUT: const_75:0<1,204,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_75<1,204,1,1,4|float32>

ID_185 call_tir_108 <PARENTS: call_tir_107,const_75| CHILDERN: call_tir_109>
  IN: call_tir_107:0<1,204,14,14,4|float32>,const_75:0<1,204,1,1,4|float32>
  OUT: call_tir_108:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_186 call_tir_109 <PARENTS: call_tir_108| CHILDERN: call_tir_110>
  IN: call_tir_108:0<1,204,14,14,4|float32>
  OUT: call_tir_109:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_187 const_76 <PARENTS: | CHILDERN: call_tir_110>
  OUT: const_76:0<34,204,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_76<34,204,1,1,4,4|float32>

ID_188 call_tir_110 <PARENTS: call_tir_109,const_76| CHILDERN: call_tir_111>
  IN: call_tir_109:0<1,204,14,14,4|float32>,const_76:0<34,204,1,1,4,4|float32>
  OUT: call_tir_110:0<1,34,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_189 const_77 <PARENTS: | CHILDERN: call_tir_111>
  OUT: const_77:0<1,34,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_77<1,34,1,1,4|float32>

ID_190 call_tir_111 <PARENTS: call_tir_110,const_77| CHILDERN: call_tir_112>
  IN: call_tir_110:0<1,34,14,14,4|float32>,const_77:0<1,34,1,1,4|float32>
  OUT: call_tir_111:0<1,34,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_191 call_tir_112 <PARENTS: call_tir_111,call_tir_103| CHILDERN: call_tir_113>
  IN: call_tir_111:0<1,34,14,14,4|float32>,call_tir_103:0<1,34,14,14,4|float32>
  OUT: call_tir_112:0<1,34,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_192 const_78 <PARENTS: | CHILDERN: call_tir_113>
  OUT: const_78:0<204,34,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_78<204,34,1,1,4,4|float32>

ID_193 call_tir_113 <PARENTS: call_tir_112,const_78| CHILDERN: call_tir_114>
  IN: call_tir_112:0<1,34,14,14,4|float32>,const_78:0<204,34,1,1,4,4|float32>
  OUT: call_tir_113:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_194 const_79 <PARENTS: | CHILDERN: call_tir_114>
  OUT: const_79:0<1,204,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_79<1,204,1,1,4|float32>

ID_195 call_tir_114 <PARENTS: call_tir_113,const_79| CHILDERN: call_tir_115>
  IN: call_tir_113:0<1,204,14,14,4|float32>,const_79:0<1,204,1,1,4|float32>
  OUT: call_tir_114:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_196 call_tir_115 <PARENTS: call_tir_114| CHILDERN: call_tir_116>
  IN: call_tir_114:0<1,204,14,14,4|float32>
  OUT: call_tir_115:0<1,204,14,14,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_197 const_80 <PARENTS: | CHILDERN: call_tir_116>
  OUT: const_80:0<204,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_80<204,1,3,3,1,4|float32>

ID_198 call_tir_116 <PARENTS: call_tir_115,const_80| CHILDERN: call_tir_117>
  IN: call_tir_115:0<1,204,14,14,4|float32>,const_80:0<204,1,3,3,1,4|float32>
  OUT: call_tir_116:0<1,204,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_199 const_81 <PARENTS: | CHILDERN: call_tir_117>
  OUT: const_81:0<1,204,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_81<1,204,1,1,4|float32>

ID_200 call_tir_117 <PARENTS: call_tir_116,const_81| CHILDERN: call_tir_118>
  IN: call_tir_116:0<1,204,7,7,4|float32>,const_81:0<1,204,1,1,4|float32>
  OUT: call_tir_117:0<1,204,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_201 call_tir_118 <PARENTS: call_tir_117| CHILDERN: call_tir_119>
  IN: call_tir_117:0<1,204,7,7,4|float32>
  OUT: call_tir_118:0<1,204,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_202 const_82 <PARENTS: | CHILDERN: call_tir_119>
  OUT: const_82:0<56,204,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_82<56,204,1,1,4,4|float32>

ID_203 call_tir_119 <PARENTS: call_tir_118,const_82| CHILDERN: call_tir_120>
  IN: call_tir_118:0<1,204,7,7,4|float32>,const_82:0<56,204,1,1,4,4|float32>
  OUT: call_tir_119:0<1,56,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_204 const_83 <PARENTS: | CHILDERN: call_tir_120>
  OUT: const_83:0<1,56,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_83<1,56,1,1,4|float32>

ID_205 call_tir_120 <PARENTS: call_tir_119,const_83| CHILDERN: call_tir_121,call_tir_129>
  IN: call_tir_119:0<1,56,7,7,4|float32>,const_83:0<1,56,1,1,4|float32>
  OUT: call_tir_120:0<1,56,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_206 const_84 <PARENTS: | CHILDERN: call_tir_121>
  OUT: const_84:0<336,56,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_84<336,56,1,1,4,4|float32>

ID_207 call_tir_121 <PARENTS: call_tir_120,const_84| CHILDERN: call_tir_122>
  IN: call_tir_120:0<1,56,7,7,4|float32>,const_84:0<336,56,1,1,4,4|float32>
  OUT: call_tir_121:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_208 const_85 <PARENTS: | CHILDERN: call_tir_122>
  OUT: const_85:0<1,336,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_85<1,336,1,1,4|float32>

ID_209 call_tir_122 <PARENTS: call_tir_121,const_85| CHILDERN: call_tir_123>
  IN: call_tir_121:0<1,336,7,7,4|float32>,const_85:0<1,336,1,1,4|float32>
  OUT: call_tir_122:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_210 call_tir_123 <PARENTS: call_tir_122| CHILDERN: call_tir_124>
  IN: call_tir_122:0<1,336,7,7,4|float32>
  OUT: call_tir_123:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_211 const_86 <PARENTS: | CHILDERN: call_tir_124>
  OUT: const_86:0<336,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_86<336,1,3,3,1,4|float32>

ID_212 call_tir_124 <PARENTS: call_tir_123,const_86| CHILDERN: call_tir_125>
  IN: call_tir_123:0<1,336,7,7,4|float32>,const_86:0<336,1,3,3,1,4|float32>
  OUT: call_tir_124:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_213 const_87 <PARENTS: | CHILDERN: call_tir_125>
  OUT: const_87:0<1,336,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_87<1,336,1,1,4|float32>

ID_214 call_tir_125 <PARENTS: call_tir_124,const_87| CHILDERN: call_tir_126>
  IN: call_tir_124:0<1,336,7,7,4|float32>,const_87:0<1,336,1,1,4|float32>
  OUT: call_tir_125:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_215 call_tir_126 <PARENTS: call_tir_125| CHILDERN: call_tir_127>
  IN: call_tir_125:0<1,336,7,7,4|float32>
  OUT: call_tir_126:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_216 const_88 <PARENTS: | CHILDERN: call_tir_127>
  OUT: const_88:0<56,336,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_88<56,336,1,1,4,4|float32>

ID_217 call_tir_127 <PARENTS: call_tir_126,const_88| CHILDERN: call_tir_128>
  IN: call_tir_126:0<1,336,7,7,4|float32>,const_88:0<56,336,1,1,4,4|float32>
  OUT: call_tir_127:0<1,56,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_218 const_89 <PARENTS: | CHILDERN: call_tir_128>
  OUT: const_89:0<1,56,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_89<1,56,1,1,4|float32>

ID_219 call_tir_128 <PARENTS: call_tir_127,const_89| CHILDERN: call_tir_129>
  IN: call_tir_127:0<1,56,7,7,4|float32>,const_89:0<1,56,1,1,4|float32>
  OUT: call_tir_128:0<1,56,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_220 call_tir_129 <PARENTS: call_tir_128,call_tir_120| CHILDERN: call_tir_130,call_tir_138>
  IN: call_tir_128:0<1,56,7,7,4|float32>,call_tir_120:0<1,56,7,7,4|float32>
  OUT: call_tir_129:0<1,56,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_221 const_90 <PARENTS: | CHILDERN: call_tir_130>
  OUT: const_90:0<336,56,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_90<336,56,1,1,4,4|float32>

ID_222 call_tir_130 <PARENTS: call_tir_129,const_90| CHILDERN: call_tir_131>
  IN: call_tir_129:0<1,56,7,7,4|float32>,const_90:0<336,56,1,1,4,4|float32>
  OUT: call_tir_130:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_223 const_91 <PARENTS: | CHILDERN: call_tir_131>
  OUT: const_91:0<1,336,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_91<1,336,1,1,4|float32>

ID_224 call_tir_131 <PARENTS: call_tir_130,const_91| CHILDERN: call_tir_132>
  IN: call_tir_130:0<1,336,7,7,4|float32>,const_91:0<1,336,1,1,4|float32>
  OUT: call_tir_131:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_225 call_tir_132 <PARENTS: call_tir_131| CHILDERN: call_tir_133>
  IN: call_tir_131:0<1,336,7,7,4|float32>
  OUT: call_tir_132:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_226 const_92 <PARENTS: | CHILDERN: call_tir_133>
  OUT: const_92:0<336,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_92<336,1,3,3,1,4|float32>

ID_227 call_tir_133 <PARENTS: call_tir_132,const_92| CHILDERN: call_tir_134>
  IN: call_tir_132:0<1,336,7,7,4|float32>,const_92:0<336,1,3,3,1,4|float32>
  OUT: call_tir_133:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_228 const_93 <PARENTS: | CHILDERN: call_tir_134>
  OUT: const_93:0<1,336,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_93<1,336,1,1,4|float32>

ID_229 call_tir_134 <PARENTS: call_tir_133,const_93| CHILDERN: call_tir_135>
  IN: call_tir_133:0<1,336,7,7,4|float32>,const_93:0<1,336,1,1,4|float32>
  OUT: call_tir_134:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_230 call_tir_135 <PARENTS: call_tir_134| CHILDERN: call_tir_136>
  IN: call_tir_134:0<1,336,7,7,4|float32>
  OUT: call_tir_135:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_231 const_94 <PARENTS: | CHILDERN: call_tir_136>
  OUT: const_94:0<56,336,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_94<56,336,1,1,4,4|float32>

ID_232 call_tir_136 <PARENTS: call_tir_135,const_94| CHILDERN: call_tir_137>
  IN: call_tir_135:0<1,336,7,7,4|float32>,const_94:0<56,336,1,1,4,4|float32>
  OUT: call_tir_136:0<1,56,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_233 const_95 <PARENTS: | CHILDERN: call_tir_137>
  OUT: const_95:0<1,56,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_95<1,56,1,1,4|float32>

ID_234 call_tir_137 <PARENTS: call_tir_136,const_95| CHILDERN: call_tir_138>
  IN: call_tir_136:0<1,56,7,7,4|float32>,const_95:0<1,56,1,1,4|float32>
  OUT: call_tir_137:0<1,56,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_235 call_tir_138 <PARENTS: call_tir_137,call_tir_129| CHILDERN: call_tir_139>
  IN: call_tir_137:0<1,56,7,7,4|float32>,call_tir_129:0<1,56,7,7,4|float32>
  OUT: call_tir_138:0<1,56,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_236 const_96 <PARENTS: | CHILDERN: call_tir_139>
  OUT: const_96:0<336,56,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_96<336,56,1,1,4,4|float32>

ID_237 call_tir_139 <PARENTS: call_tir_138,const_96| CHILDERN: call_tir_140>
  IN: call_tir_138:0<1,56,7,7,4|float32>,const_96:0<336,56,1,1,4,4|float32>
  OUT: call_tir_139:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_238 const_97 <PARENTS: | CHILDERN: call_tir_140>
  OUT: const_97:0<1,336,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_97<1,336,1,1,4|float32>

ID_239 call_tir_140 <PARENTS: call_tir_139,const_97| CHILDERN: call_tir_141>
  IN: call_tir_139:0<1,336,7,7,4|float32>,const_97:0<1,336,1,1,4|float32>
  OUT: call_tir_140:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_240 call_tir_141 <PARENTS: call_tir_140| CHILDERN: call_tir_142>
  IN: call_tir_140:0<1,336,7,7,4|float32>
  OUT: call_tir_141:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_241 const_98 <PARENTS: | CHILDERN: call_tir_142>
  OUT: const_98:0<336,1,3,3,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_98<336,1,3,3,1,4|float32>

ID_242 call_tir_142 <PARENTS: call_tir_141,const_98| CHILDERN: call_tir_143>
  IN: call_tir_141:0<1,336,7,7,4|float32>,const_98:0<336,1,3,3,1,4|float32>
  OUT: call_tir_142:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_243 const_99 <PARENTS: | CHILDERN: call_tir_143>
  OUT: const_99:0<1,336,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_99<1,336,1,1,4|float32>

ID_244 call_tir_143 <PARENTS: call_tir_142,const_99| CHILDERN: call_tir_144>
  IN: call_tir_142:0<1,336,7,7,4|float32>,const_99:0<1,336,1,1,4|float32>
  OUT: call_tir_143:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_245 call_tir_144 <PARENTS: call_tir_143| CHILDERN: call_tir_145>
  IN: call_tir_143:0<1,336,7,7,4|float32>
  OUT: call_tir_144:0<1,336,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_246 const_100 <PARENTS: | CHILDERN: call_tir_145>
  OUT: const_100:0<112,336,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_100<112,336,1,1,4,4|float32>

ID_247 call_tir_145 <PARENTS: call_tir_144,const_100| CHILDERN: call_tir_146>
  IN: call_tir_144:0<1,336,7,7,4|float32>,const_100:0<112,336,1,1,4,4|float32>
  OUT: call_tir_145:0<1,112,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_248 const_101 <PARENTS: | CHILDERN: call_tir_146>
  OUT: const_101:0<1,112,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_101<1,112,1,1,4|float32>

ID_249 call_tir_146 <PARENTS: call_tir_145,const_101| CHILDERN: call_tir_147>
  IN: call_tir_145:0<1,112,7,7,4|float32>,const_101:0<1,112,1,1,4|float32>
  OUT: call_tir_146:0<1,112,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_250 const_102 <PARENTS: | CHILDERN: call_tir_147>
  OUT: const_102:0<448,112,1,1,4,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_102<448,112,1,1,4,4|float32>

ID_251 call_tir_147 <PARENTS: call_tir_146,const_102| CHILDERN: call_tir_148>
  IN: call_tir_146:0<1,112,7,7,4|float32>,const_102:0<448,112,1,1,4,4|float32>
  OUT: call_tir_147:0<1,448,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_252 const_103 <PARENTS: | CHILDERN: call_tir_148>
  OUT: const_103:0<1,448,1,1,4|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_103<1,448,1,1,4|float32>

ID_253 call_tir_148 <PARENTS: call_tir_147,const_103| CHILDERN: call_tir_149>
  IN: call_tir_147:0<1,448,7,7,4|float32>,const_103:0<1,448,1,1,4|float32>
  OUT: call_tir_148:0<1,448,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_254 call_tir_149 <PARENTS: call_tir_148| CHILDERN: call_tir_150>
  IN: call_tir_148:0<1,448,7,7,4|float32>
  OUT: call_tir_149:0<1,448,7,7,4|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_255 call_tir_150 <PARENTS: call_tir_149| CHILDERN: call_tir_151>
  IN: call_tir_149:0<1,448,7,7,4|float32>
  OUT: call_tir_150:0<1,1792,7,7|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_256 call_tir_151 <PARENTS: call_tir_150| CHILDERN: call_tir_152>
  IN: call_tir_150:0<1,1792,7,7|float32>
  OUT: call_tir_151:0<1,1792,1,1|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_257 call_tir_152 <PARENTS: call_tir_151| CHILDERN: call_tir_153>
  IN: call_tir_151:0<1,1792,1,1|float32>
  OUT: call_tir_152:0<1,1792,1,1,1|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_258 const_104 <PARENTS: | CHILDERN: call_tir_153>
  OUT: const_104:0<1001,1792,1,1,1,1|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_104<1001,1792,1,1,1,1|float32>

ID_259 call_tir_153 <PARENTS: call_tir_152,const_104| CHILDERN: call_tir_154>
  IN: call_tir_152:0<1,1792,1,1,1|float32>,const_104:0<1001,1792,1,1,1,1|float32>
  OUT: call_tir_153:0<1,1001,1,1,1|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_260 const_105 <PARENTS: | CHILDERN: call_tir_154>
  OUT: const_105:0<1,1001,1,1,1|float32>
  OPTYPE: constant
  WEIGHTS: 
    const: const_105<1,1001,1,1,1|float32>

ID_261 call_tir_154 <PARENTS: call_tir_153,const_105| CHILDERN: call_tir_155>
  IN: call_tir_153:0<1,1001,1,1,1|float32>,const_105:0<1,1001,1,1,1|float32>
  OUT: call_tir_154:0<1,1001,1,1,1|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_262 call_tir_155 <PARENTS: call_tir_154| CHILDERN: call_tir_156>
  IN: call_tir_154:0<1,1001,1,1,1|float32>
  OUT: call_tir_155:0<1,1001,1|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_263 call_tir_156 <PARENTS: call_tir_155| CHILDERN: call_tir_157>
  IN: call_tir_155:0<1,1001,1|float32>
  OUT: call_tir_156:0<1,1001|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_264 call_tir_157 <PARENTS: call_tir_156| CHILDERN: call_tir_158>
  IN: call_tir_156:0<1,1001|float32>
  OUT: call_tir_157:0<1,1001|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_265 call_tir_158 <PARENTS: call_tir_157| CHILDERN: call_tir_159>
  IN: call_tir_157:0<1,1001|float32>
  OUT: call_tir_158:0<1,1001|float32>
  OPTYPE: call_tir
  SCOPE: block

ID_266 call_tir_159 <PARENTS: call_tir_158| CHILDERN: >
  IN: call_tir_158:0<1,1001|float32>
  OUT: call_tir_159:0(call_tir_159)<1,1001|float32>
  OPTYPE: call_tir
  SCOPE: block
model = codegen.to_torch(graph, weights)
---------------------------------------------------------------------------
InternalError                             Traceback (most recent call last)
Cell In[121], line 1
----> 1 model = codegen.to_torch(graph, weights)

File /media/pc/data/lxw/ai/tvm/python/tvm/contrib/msc/framework/torch/codegen/codegen.py:80, in to_torch(graph, weights, codegen_config, print_config, build_folder, plugin)
     78 codegen = CodeGen(graph, _ffi_api.GetTorchSources, codegen_config, print_config, build_folder)
     79 model_args = [plugin] if plugin else []
---> 80 return codegen.load(model_args, pre_load=_save_weights, post_load=_bind_weights)

File /media/pc/data/lxw/ai/tvm/python/tvm/contrib/msc/core/codegen/codegen.py:93, in CodeGen.load(self, inputs, pre_load, post_load, build_model)
     67 def load(
     68     self,
     69     inputs: Optional[List[Any]] = None,
   (...)
     72     build_model: bool = True,
     73 ) -> Any:
     74     """Generate source and load the model
     75 
     76     Parameters
   (...)
     90         The model object for the framework.
     91     """
---> 93     sources = self._source_getter(self._graph, self._codegen_config, self._print_config)
     94     inputs = inputs or []
     95     with self._build_folder as folder:
     96         # pre processing

File /media/pc/data/lxw/ai/tvm/python/tvm/_ffi/_ctypes/packed_func.py:245, in PackedFuncBase.__call__(self, *args)
    233 ret_tcode = ctypes.c_int()
    234 if (
    235     _LIB.TVMFuncCall(
    236         self.handle,
   (...)
    243     != 0
    244 ):
--> 245     raise_last_ffi_error()
    246 _ = temp_args
    247 _ = args

File /media/pc/data/lxw/ai/tvm/python/tvm/_ffi/base.py:481, in raise_last_ffi_error()
    475 # The exception PyObject may contain a large amount of state,
    476 # including all stack frames that may be inspected in a later
    477 # PDB post-mortem.  Therefore, we must make sure to remove the
    478 # underlying PyObject* from the C++ side after we retrieve it.
    479 _LIB.TVMDropLastPythonError()
--> 481 raise py_err

InternalError: Traceback (most recent call last):
  6: _ZN3tvm7runtime13PackedFun
  5: tvm::runtime::TypedPackedFunc<tvm::runtime::Map<tvm::runtime::String, tvm::runtime::String, void, void> (tvm::contrib::msc::MSCGraph const&, tvm::runtime::String const&, tvm::runtime::String const&)>::AssignTypedLambda<tvm::contrib::msc::__mk_TVM0::{lambda(tvm::contrib::msc::MSCGraph const&, tvm::runtime::String const&, tvm::runtime::String const&)#1}>(tvm::contrib::msc::__mk_TVM0::{lambda(tvm::contrib::msc::MSCGraph const&, tvm::runtime::String const&, tvm::runtime::String const&)#1}, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}::operator()(tvm::runtime::TVMArgs const, tvm::runtime::TVMRetValue) const
  4: tvm::contrib::msc::PyCodeGen<tvm::contrib::msc::TorchCodeGenConfig, tvm::contrib::msc::TorchCodeGenHelper>::GetSources(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
  3: tvm::contrib::msc::PyCodeGen<tvm::contrib::msc::TorchCodeGenConfig, tvm::contrib::msc::TorchCodeGenHelper>::CodeGenScript()
  2: tvm::contrib::msc::TorchCodeGen::CodeGenGraph()
  1: tvm::contrib::msc::PyCodeGen<tvm::contrib::msc::TorchCodeGenConfig, tvm::contrib::msc::TorchCodeGenHelper>::CodeGenNode(tvm::contrib::msc::MSCJoint const&, bool)
  0: tvm::contrib::msc::TorchCodeGen::GetOpCodes(tvm::contrib::msc::MSCJoint const&)
  SCOPE: block
  OPTYPE: call_tir
  OUT: call_tir:0<1,1,224,224,3|float32>
  IN: input:0(input)<1,3,224,224|float32>
  File "/media/pc/data/lxw/ai/tvm/src/contrib/msc/framework/torch/codegen.cc", line 144
InternalError: Check failed: (it != ops_map->end()) is false: Unsupported torch op(call_tir): ID_1 call_tir <PARENTS: input| CHILDERN: call_tir_1>