Tensorflow(pb) 转 ONNX

Tensorflow(pb) 转 ONNX#

参考: TVM Tensorflow 前端

下面以 mobilenet_v2 float_v2_1.4_224 为例,展示 Tensorflow pb 模型转换为 ONNX 模型的过程:

import numpy as np
import os
import warnings
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
import tensorflow as tf
tf.get_logger().setLevel("ERROR")
warnings.simplefilter("ignore")
import tensorflow as tf
from tensorflow.core.framework.graph_pb2 import GraphDef
import set_env # 加载 TVM
import tvm.relay.testing.tf as tf_testing
class MobilenetV2(tf.keras.Model):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        path_model = tf_testing.get_workload_official(
            "https://storage.googleapis.com/mobilenet_v2/checkpoints/mobilenet_v2_1.4_224.tgz",
            "mobilenet_v2_1.4_224_frozen.pb"
        )
        self.graph_def = self._read_graph_def(path_model)
        self.output_names = ['output']
    
    def _read_graph_def(self, frozen_path):
        with open(frozen_path, 'rb') as f:
            graph_def = GraphDef()
            graph_def.ParseFromString(f.read())
        return graph_def
    
    @tf.function(input_signature=[tf.TensorSpec([1, 3, 224, 224], 
                                                 tf.float32, name="input")])
    def call(self, x):
        x = tf.convert_to_tensor(x, tf.float32) # 确保输入是 tensor
        x = tf.transpose(x, perm=(0, 2, 3, 1)) # NCHW -> NHWC
        x = tf.graph_util.import_graph_def(
            self.graph_def, input_map={'input:0': x}, 
            return_elements=['MobilenetV2/Predictions/Reshape_1:0']
            # return_elements=["MobilenetV2/Logits/AvgPool:0"]
            # return_elements=["MobilenetV2/Logits/Conv2d_1c_1x1/BiasAdd:0"]
        )[0]
        return x
import tf2onnx
import onnx

input_signature = [tf.TensorSpec([1, 3, 224, 224], tf.float32, name="data")]
model = MobilenetV2()
onnx_model, _ = tf2onnx.convert.from_keras(model, input_signature)
onnx.save(onnx_model, ".temp/mobilenet_v2_tf.onnx")
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
I0000 00:00:1726190666.909964 1341751 devices.cc:67] Number of eligible GPUs (core count >= 8, compute capability >= 0.0): 2
I0000 00:00:1726190668.185528 1341751 devices.cc:67] Number of eligible GPUs (core count >= 8, compute capability >= 0.0): 2

测试一致性:

from PIL import Image
image_size = 224
path = 'images/Giant_Panda_in_Beijing_Zoo_1.jpg' # 将要预测的图片路径

with Image.open(path) as im:
    if im.mode != "RGB":
        im.convert("RGB")
    im = im.resize((224, 224))
    image = np.asarray(im)
image = image/128 -1
images = np.expand_dims(image, 0)
images = images.transpose((0, 3, 1, 2))
model = MobilenetV2()
tf_output = model(images)
model.summary()
import set_env
import tvm
from tvm import relay
from tvm.relay.frontend import from_onnx

shape_dict = {"data": [1, 3, 224, 224]}
mod, params = from_onnx(
    onnx_model,
    shape_dict,
    freeze_params=True
)
with tvm.transform.PassContext(opt_level=3):
    lib = relay.build(mod, "llvm", params=params)
inputs_dict = {"data": images}
mlib_proxy = tvm.contrib.graph_executor.GraphModule(lib["default"](tvm.cpu()))
mlib_proxy.run(**inputs_dict)
np.testing.assert_allclose(
    tf_output.numpy(), 
    mlib_proxy.get_output(0).numpy(),
    rtol=1e-02, atol=1e-5
)
from tvm.contrib.msc.core.frontend import translate

graph, weights = translate.from_relay(mod, params, opt_config={"opt_level": 3})
graph
main <INPUTS: data:0| OUTPUTS: reshape_2:0>
ID_0 data <PARENTS: | CHILDERN: msc.conv2d_bias_52>
  OUT: data:0(data)<1,3,224,224|float32>
  OPTYPE: input

ID_1 msc.conv2d_bias_52 <PARENTS: data| CHILDERN: clip>
  IN: data:0(data)<1,3,224,224|float32>
  OUT: msc.conv2d_bias_52:0<1,48,112,112|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=2,2 kernel_layout=OIHW groups=1 channels=48 kernel_size=3,3 axis=1 padding=0,0,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_104<48,3,3,3|float32>
    bias: const_105<48|float32>

ID_2 clip <PARENTS: msc.conv2d_bias_52| CHILDERN: msc.conv2d_bias_51>
  IN: msc.conv2d_bias_52:0<1,48,112,112|float32>
  OUT: clip:0<1,48,112,112|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_3 msc.conv2d_bias_51 <PARENTS: clip| CHILDERN: clip_1>
  IN: clip:0<1,48,112,112|float32>
  OUT: msc.conv2d_bias_51:0<1,48,112,112|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=48 channels=48 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_102<48,1,3,3|float32>
    bias: const_103<48|float32>

ID_4 clip_1 <PARENTS: msc.conv2d_bias_51| CHILDERN: msc.conv2d_bias_50>
  IN: msc.conv2d_bias_51:0<1,48,112,112|float32>
  OUT: clip_1:0<1,48,112,112|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_5 msc.conv2d_bias_50 <PARENTS: clip_1| CHILDERN: msc.conv2d_bias_49>
  IN: clip_1:0<1,48,112,112|float32>
  OUT: msc.conv2d_bias_50:0<1,24,112,112|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=24 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_100<24,48,1,1|float32>
    bias: const_101<24|float32>

ID_6 msc.conv2d_bias_49 <PARENTS: msc.conv2d_bias_50| CHILDERN: clip_2>
  IN: msc.conv2d_bias_50:0<1,24,112,112|float32>
  OUT: msc.conv2d_bias_49:0<1,144,112,112|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=144 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_98<144,24,1,1|float32>
    bias: const_99<144|float32>

ID_7 clip_2 <PARENTS: msc.conv2d_bias_49| CHILDERN: msc.conv2d_bias_48>
  IN: msc.conv2d_bias_49:0<1,144,112,112|float32>
  OUT: clip_2:0<1,144,112,112|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_8 msc.conv2d_bias_48 <PARENTS: clip_2| CHILDERN: clip_3>
  IN: clip_2:0<1,144,112,112|float32>
  OUT: msc.conv2d_bias_48:0<1,144,56,56|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=2,2 kernel_layout=OIHW groups=144 channels=144 kernel_size=3,3 axis=1 padding=0,0,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_96<144,1,3,3|float32>
    bias: const_97<144|float32>

ID_9 clip_3 <PARENTS: msc.conv2d_bias_48| CHILDERN: msc.conv2d_bias_47>
  IN: msc.conv2d_bias_48:0<1,144,56,56|float32>
  OUT: clip_3:0<1,144,56,56|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_10 msc.conv2d_bias_47 <PARENTS: clip_3| CHILDERN: msc.conv2d_bias_46,add>
  IN: clip_3:0<1,144,56,56|float32>
  OUT: msc.conv2d_bias_47:0<1,32,56,56|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=32 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_94<32,144,1,1|float32>
    bias: const_95<32|float32>

ID_11 msc.conv2d_bias_46 <PARENTS: msc.conv2d_bias_47| CHILDERN: clip_4>
  IN: msc.conv2d_bias_47:0<1,32,56,56|float32>
  OUT: msc.conv2d_bias_46:0<1,192,56,56|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=192 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_92<192,32,1,1|float32>
    bias: const_93<192|float32>

ID_12 clip_4 <PARENTS: msc.conv2d_bias_46| CHILDERN: msc.conv2d_bias_45>
  IN: msc.conv2d_bias_46:0<1,192,56,56|float32>
  OUT: clip_4:0<1,192,56,56|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_13 msc.conv2d_bias_45 <PARENTS: clip_4| CHILDERN: clip_5>
  IN: clip_4:0<1,192,56,56|float32>
  OUT: msc.conv2d_bias_45:0<1,192,56,56|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=192 channels=192 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_90<192,1,3,3|float32>
    bias: const_91<192|float32>

ID_14 clip_5 <PARENTS: msc.conv2d_bias_45| CHILDERN: msc.conv2d_bias_44>
  IN: msc.conv2d_bias_45:0<1,192,56,56|float32>
  OUT: clip_5:0<1,192,56,56|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_15 msc.conv2d_bias_44 <PARENTS: clip_5| CHILDERN: add>
  IN: clip_5:0<1,192,56,56|float32>
  OUT: msc.conv2d_bias_44:0<1,32,56,56|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=32 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_88<32,192,1,1|float32>
    bias: const_89<32|float32>

ID_16 add <PARENTS: msc.conv2d_bias_44,msc.conv2d_bias_47| CHILDERN: msc.conv2d_bias_43>
  IN: msc.conv2d_bias_44:0<1,32,56,56|float32>,msc.conv2d_bias_47:0<1,32,56,56|float32>
  OUT: add:0<1,32,56,56|float32>
  OPTYPE: add
  SCOPE: block

ID_17 msc.conv2d_bias_43 <PARENTS: add| CHILDERN: clip_6>
  IN: add:0<1,32,56,56|float32>
  OUT: msc.conv2d_bias_43:0<1,192,56,56|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=192 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_86<192,32,1,1|float32>
    bias: const_87<192|float32>

ID_18 clip_6 <PARENTS: msc.conv2d_bias_43| CHILDERN: msc.conv2d_bias_42>
  IN: msc.conv2d_bias_43:0<1,192,56,56|float32>
  OUT: clip_6:0<1,192,56,56|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_19 msc.conv2d_bias_42 <PARENTS: clip_6| CHILDERN: clip_7>
  IN: clip_6:0<1,192,56,56|float32>
  OUT: msc.conv2d_bias_42:0<1,192,28,28|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=2,2 kernel_layout=OIHW groups=192 channels=192 kernel_size=3,3 axis=1 padding=0,0,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_84<192,1,3,3|float32>
    bias: const_85<192|float32>

ID_20 clip_7 <PARENTS: msc.conv2d_bias_42| CHILDERN: msc.conv2d_bias_41>
  IN: msc.conv2d_bias_42:0<1,192,28,28|float32>
  OUT: clip_7:0<1,192,28,28|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_21 msc.conv2d_bias_41 <PARENTS: clip_7| CHILDERN: msc.conv2d_bias_40,add_1>
  IN: clip_7:0<1,192,28,28|float32>
  OUT: msc.conv2d_bias_41:0<1,48,28,28|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=48 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_82<48,192,1,1|float32>
    bias: const_83<48|float32>

ID_22 msc.conv2d_bias_40 <PARENTS: msc.conv2d_bias_41| CHILDERN: clip_8>
  IN: msc.conv2d_bias_41:0<1,48,28,28|float32>
  OUT: msc.conv2d_bias_40:0<1,288,28,28|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=288 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_80<288,48,1,1|float32>
    bias: const_81<288|float32>

ID_23 clip_8 <PARENTS: msc.conv2d_bias_40| CHILDERN: msc.conv2d_bias_39>
  IN: msc.conv2d_bias_40:0<1,288,28,28|float32>
  OUT: clip_8:0<1,288,28,28|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_24 msc.conv2d_bias_39 <PARENTS: clip_8| CHILDERN: clip_9>
  IN: clip_8:0<1,288,28,28|float32>
  OUT: msc.conv2d_bias_39:0<1,288,28,28|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=288 channels=288 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_78<288,1,3,3|float32>
    bias: const_79<288|float32>

ID_25 clip_9 <PARENTS: msc.conv2d_bias_39| CHILDERN: msc.conv2d_bias_38>
  IN: msc.conv2d_bias_39:0<1,288,28,28|float32>
  OUT: clip_9:0<1,288,28,28|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_26 msc.conv2d_bias_38 <PARENTS: clip_9| CHILDERN: add_1>
  IN: clip_9:0<1,288,28,28|float32>
  OUT: msc.conv2d_bias_38:0<1,48,28,28|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=48 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_76<48,288,1,1|float32>
    bias: const_77<48|float32>

ID_27 add_1 <PARENTS: msc.conv2d_bias_38,msc.conv2d_bias_41| CHILDERN: msc.conv2d_bias_37,add_2>
  IN: msc.conv2d_bias_38:0<1,48,28,28|float32>,msc.conv2d_bias_41:0<1,48,28,28|float32>
  OUT: add_1:0<1,48,28,28|float32>
  OPTYPE: add
  SCOPE: block

ID_28 msc.conv2d_bias_37 <PARENTS: add_1| CHILDERN: clip_10>
  IN: add_1:0<1,48,28,28|float32>
  OUT: msc.conv2d_bias_37:0<1,288,28,28|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=288 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_74<288,48,1,1|float32>
    bias: const_75<288|float32>

ID_29 clip_10 <PARENTS: msc.conv2d_bias_37| CHILDERN: msc.conv2d_bias_36>
  IN: msc.conv2d_bias_37:0<1,288,28,28|float32>
  OUT: clip_10:0<1,288,28,28|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_30 msc.conv2d_bias_36 <PARENTS: clip_10| CHILDERN: clip_11>
  IN: clip_10:0<1,288,28,28|float32>
  OUT: msc.conv2d_bias_36:0<1,288,28,28|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=288 channels=288 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_72<288,1,3,3|float32>
    bias: const_73<288|float32>

ID_31 clip_11 <PARENTS: msc.conv2d_bias_36| CHILDERN: msc.conv2d_bias_35>
  IN: msc.conv2d_bias_36:0<1,288,28,28|float32>
  OUT: clip_11:0<1,288,28,28|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_32 msc.conv2d_bias_35 <PARENTS: clip_11| CHILDERN: add_2>
  IN: clip_11:0<1,288,28,28|float32>
  OUT: msc.conv2d_bias_35:0<1,48,28,28|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=48 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_70<48,288,1,1|float32>
    bias: const_71<48|float32>

ID_33 add_2 <PARENTS: msc.conv2d_bias_35,add_1| CHILDERN: msc.conv2d_bias_34>
  IN: msc.conv2d_bias_35:0<1,48,28,28|float32>,add_1:0<1,48,28,28|float32>
  OUT: add_2:0<1,48,28,28|float32>
  OPTYPE: add
  SCOPE: block

ID_34 msc.conv2d_bias_34 <PARENTS: add_2| CHILDERN: clip_12>
  IN: add_2:0<1,48,28,28|float32>
  OUT: msc.conv2d_bias_34:0<1,288,28,28|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=288 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_68<288,48,1,1|float32>
    bias: const_69<288|float32>

ID_35 clip_12 <PARENTS: msc.conv2d_bias_34| CHILDERN: msc.conv2d_bias_33>
  IN: msc.conv2d_bias_34:0<1,288,28,28|float32>
  OUT: clip_12:0<1,288,28,28|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_36 msc.conv2d_bias_33 <PARENTS: clip_12| CHILDERN: clip_13>
  IN: clip_12:0<1,288,28,28|float32>
  OUT: msc.conv2d_bias_33:0<1,288,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=2,2 kernel_layout=OIHW groups=288 channels=288 kernel_size=3,3 axis=1 padding=0,0,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_66<288,1,3,3|float32>
    bias: const_67<288|float32>

ID_37 clip_13 <PARENTS: msc.conv2d_bias_33| CHILDERN: msc.conv2d_bias_32>
  IN: msc.conv2d_bias_33:0<1,288,14,14|float32>
  OUT: clip_13:0<1,288,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_38 msc.conv2d_bias_32 <PARENTS: clip_13| CHILDERN: msc.conv2d_bias_31,add_3>
  IN: clip_13:0<1,288,14,14|float32>
  OUT: msc.conv2d_bias_32:0<1,88,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=88 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_64<88,288,1,1|float32>
    bias: const_65<88|float32>

ID_39 msc.conv2d_bias_31 <PARENTS: msc.conv2d_bias_32| CHILDERN: clip_14>
  IN: msc.conv2d_bias_32:0<1,88,14,14|float32>
  OUT: msc.conv2d_bias_31:0<1,528,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=528 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_62<528,88,1,1|float32>
    bias: const_63<528|float32>

ID_40 clip_14 <PARENTS: msc.conv2d_bias_31| CHILDERN: msc.conv2d_bias_30>
  IN: msc.conv2d_bias_31:0<1,528,14,14|float32>
  OUT: clip_14:0<1,528,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_41 msc.conv2d_bias_30 <PARENTS: clip_14| CHILDERN: clip_15>
  IN: clip_14:0<1,528,14,14|float32>
  OUT: msc.conv2d_bias_30:0<1,528,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=528 channels=528 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_60<528,1,3,3|float32>
    bias: const_61<528|float32>

ID_42 clip_15 <PARENTS: msc.conv2d_bias_30| CHILDERN: msc.conv2d_bias_29>
  IN: msc.conv2d_bias_30:0<1,528,14,14|float32>
  OUT: clip_15:0<1,528,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_43 msc.conv2d_bias_29 <PARENTS: clip_15| CHILDERN: add_3>
  IN: clip_15:0<1,528,14,14|float32>
  OUT: msc.conv2d_bias_29:0<1,88,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=88 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_58<88,528,1,1|float32>
    bias: const_59<88|float32>

ID_44 add_3 <PARENTS: msc.conv2d_bias_29,msc.conv2d_bias_32| CHILDERN: msc.conv2d_bias_28,add_4>
  IN: msc.conv2d_bias_29:0<1,88,14,14|float32>,msc.conv2d_bias_32:0<1,88,14,14|float32>
  OUT: add_3:0<1,88,14,14|float32>
  OPTYPE: add
  SCOPE: block

ID_45 msc.conv2d_bias_28 <PARENTS: add_3| CHILDERN: clip_16>
  IN: add_3:0<1,88,14,14|float32>
  OUT: msc.conv2d_bias_28:0<1,528,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=528 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_56<528,88,1,1|float32>
    bias: const_57<528|float32>

ID_46 clip_16 <PARENTS: msc.conv2d_bias_28| CHILDERN: msc.conv2d_bias_27>
  IN: msc.conv2d_bias_28:0<1,528,14,14|float32>
  OUT: clip_16:0<1,528,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_47 msc.conv2d_bias_27 <PARENTS: clip_16| CHILDERN: clip_17>
  IN: clip_16:0<1,528,14,14|float32>
  OUT: msc.conv2d_bias_27:0<1,528,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=528 channels=528 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_54<528,1,3,3|float32>
    bias: const_55<528|float32>

ID_48 clip_17 <PARENTS: msc.conv2d_bias_27| CHILDERN: msc.conv2d_bias_26>
  IN: msc.conv2d_bias_27:0<1,528,14,14|float32>
  OUT: clip_17:0<1,528,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_49 msc.conv2d_bias_26 <PARENTS: clip_17| CHILDERN: add_4>
  IN: clip_17:0<1,528,14,14|float32>
  OUT: msc.conv2d_bias_26:0<1,88,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=88 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_52<88,528,1,1|float32>
    bias: const_53<88|float32>

ID_50 add_4 <PARENTS: msc.conv2d_bias_26,add_3| CHILDERN: msc.conv2d_bias_25,add_5>
  IN: msc.conv2d_bias_26:0<1,88,14,14|float32>,add_3:0<1,88,14,14|float32>
  OUT: add_4:0<1,88,14,14|float32>
  OPTYPE: add
  SCOPE: block

ID_51 msc.conv2d_bias_25 <PARENTS: add_4| CHILDERN: clip_18>
  IN: add_4:0<1,88,14,14|float32>
  OUT: msc.conv2d_bias_25:0<1,528,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=528 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_50<528,88,1,1|float32>
    bias: const_51<528|float32>

ID_52 clip_18 <PARENTS: msc.conv2d_bias_25| CHILDERN: msc.conv2d_bias_24>
  IN: msc.conv2d_bias_25:0<1,528,14,14|float32>
  OUT: clip_18:0<1,528,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_53 msc.conv2d_bias_24 <PARENTS: clip_18| CHILDERN: clip_19>
  IN: clip_18:0<1,528,14,14|float32>
  OUT: msc.conv2d_bias_24:0<1,528,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=528 channels=528 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_48<528,1,3,3|float32>
    bias: const_49<528|float32>

ID_54 clip_19 <PARENTS: msc.conv2d_bias_24| CHILDERN: msc.conv2d_bias_23>
  IN: msc.conv2d_bias_24:0<1,528,14,14|float32>
  OUT: clip_19:0<1,528,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_55 msc.conv2d_bias_23 <PARENTS: clip_19| CHILDERN: add_5>
  IN: clip_19:0<1,528,14,14|float32>
  OUT: msc.conv2d_bias_23:0<1,88,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=88 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_46<88,528,1,1|float32>
    bias: const_47<88|float32>

ID_56 add_5 <PARENTS: msc.conv2d_bias_23,add_4| CHILDERN: msc.conv2d_bias_22>
  IN: msc.conv2d_bias_23:0<1,88,14,14|float32>,add_4:0<1,88,14,14|float32>
  OUT: add_5:0<1,88,14,14|float32>
  OPTYPE: add
  SCOPE: block

ID_57 msc.conv2d_bias_22 <PARENTS: add_5| CHILDERN: clip_20>
  IN: add_5:0<1,88,14,14|float32>
  OUT: msc.conv2d_bias_22:0<1,528,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=528 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_44<528,88,1,1|float32>
    bias: const_45<528|float32>

ID_58 clip_20 <PARENTS: msc.conv2d_bias_22| CHILDERN: msc.conv2d_bias_21>
  IN: msc.conv2d_bias_22:0<1,528,14,14|float32>
  OUT: clip_20:0<1,528,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_59 msc.conv2d_bias_21 <PARENTS: clip_20| CHILDERN: clip_21>
  IN: clip_20:0<1,528,14,14|float32>
  OUT: msc.conv2d_bias_21:0<1,528,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=528 channels=528 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_42<528,1,3,3|float32>
    bias: const_43<528|float32>

ID_60 clip_21 <PARENTS: msc.conv2d_bias_21| CHILDERN: msc.conv2d_bias_20>
  IN: msc.conv2d_bias_21:0<1,528,14,14|float32>
  OUT: clip_21:0<1,528,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_61 msc.conv2d_bias_20 <PARENTS: clip_21| CHILDERN: msc.conv2d_bias_19,add_6>
  IN: clip_21:0<1,528,14,14|float32>
  OUT: msc.conv2d_bias_20:0<1,136,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=136 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_40<136,528,1,1|float32>
    bias: const_41<136|float32>

ID_62 msc.conv2d_bias_19 <PARENTS: msc.conv2d_bias_20| CHILDERN: clip_22>
  IN: msc.conv2d_bias_20:0<1,136,14,14|float32>
  OUT: msc.conv2d_bias_19:0<1,816,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=816 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_38<816,136,1,1|float32>
    bias: const_39<816|float32>

ID_63 clip_22 <PARENTS: msc.conv2d_bias_19| CHILDERN: msc.conv2d_bias_18>
  IN: msc.conv2d_bias_19:0<1,816,14,14|float32>
  OUT: clip_22:0<1,816,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_64 msc.conv2d_bias_18 <PARENTS: clip_22| CHILDERN: clip_23>
  IN: clip_22:0<1,816,14,14|float32>
  OUT: msc.conv2d_bias_18:0<1,816,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=816 channels=816 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_36<816,1,3,3|float32>
    bias: const_37<816|float32>

ID_65 clip_23 <PARENTS: msc.conv2d_bias_18| CHILDERN: msc.conv2d_bias_17>
  IN: msc.conv2d_bias_18:0<1,816,14,14|float32>
  OUT: clip_23:0<1,816,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_66 msc.conv2d_bias_17 <PARENTS: clip_23| CHILDERN: add_6>
  IN: clip_23:0<1,816,14,14|float32>
  OUT: msc.conv2d_bias_17:0<1,136,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=136 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_34<136,816,1,1|float32>
    bias: const_35<136|float32>

ID_67 add_6 <PARENTS: msc.conv2d_bias_17,msc.conv2d_bias_20| CHILDERN: msc.conv2d_bias_16,add_7>
  IN: msc.conv2d_bias_17:0<1,136,14,14|float32>,msc.conv2d_bias_20:0<1,136,14,14|float32>
  OUT: add_6:0<1,136,14,14|float32>
  OPTYPE: add
  SCOPE: block

ID_68 msc.conv2d_bias_16 <PARENTS: add_6| CHILDERN: clip_24>
  IN: add_6:0<1,136,14,14|float32>
  OUT: msc.conv2d_bias_16:0<1,816,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=816 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_32<816,136,1,1|float32>
    bias: const_33<816|float32>

ID_69 clip_24 <PARENTS: msc.conv2d_bias_16| CHILDERN: msc.conv2d_bias_15>
  IN: msc.conv2d_bias_16:0<1,816,14,14|float32>
  OUT: clip_24:0<1,816,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_70 msc.conv2d_bias_15 <PARENTS: clip_24| CHILDERN: clip_25>
  IN: clip_24:0<1,816,14,14|float32>
  OUT: msc.conv2d_bias_15:0<1,816,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=816 channels=816 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_30<816,1,3,3|float32>
    bias: const_31<816|float32>

ID_71 clip_25 <PARENTS: msc.conv2d_bias_15| CHILDERN: msc.conv2d_bias_14>
  IN: msc.conv2d_bias_15:0<1,816,14,14|float32>
  OUT: clip_25:0<1,816,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_72 msc.conv2d_bias_14 <PARENTS: clip_25| CHILDERN: add_7>
  IN: clip_25:0<1,816,14,14|float32>
  OUT: msc.conv2d_bias_14:0<1,136,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=136 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_28<136,816,1,1|float32>
    bias: const_29<136|float32>

ID_73 add_7 <PARENTS: msc.conv2d_bias_14,add_6| CHILDERN: msc.conv2d_bias_13>
  IN: msc.conv2d_bias_14:0<1,136,14,14|float32>,add_6:0<1,136,14,14|float32>
  OUT: add_7:0<1,136,14,14|float32>
  OPTYPE: add
  SCOPE: block

ID_74 msc.conv2d_bias_13 <PARENTS: add_7| CHILDERN: clip_26>
  IN: add_7:0<1,136,14,14|float32>
  OUT: msc.conv2d_bias_13:0<1,816,14,14|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=816 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_26<816,136,1,1|float32>
    bias: const_27<816|float32>

ID_75 clip_26 <PARENTS: msc.conv2d_bias_13| CHILDERN: msc.conv2d_bias_12>
  IN: msc.conv2d_bias_13:0<1,816,14,14|float32>
  OUT: clip_26:0<1,816,14,14|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_76 msc.conv2d_bias_12 <PARENTS: clip_26| CHILDERN: clip_27>
  IN: clip_26:0<1,816,14,14|float32>
  OUT: msc.conv2d_bias_12:0<1,816,7,7|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=2,2 kernel_layout=OIHW groups=816 channels=816 kernel_size=3,3 axis=1 padding=0,0,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_24<816,1,3,3|float32>
    bias: const_25<816|float32>

ID_77 clip_27 <PARENTS: msc.conv2d_bias_12| CHILDERN: msc.conv2d_bias_11>
  IN: msc.conv2d_bias_12:0<1,816,7,7|float32>
  OUT: clip_27:0<1,816,7,7|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_78 msc.conv2d_bias_11 <PARENTS: clip_27| CHILDERN: msc.conv2d_bias_10,add_8>
  IN: clip_27:0<1,816,7,7|float32>
  OUT: msc.conv2d_bias_11:0<1,224,7,7|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=224 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_22<224,816,1,1|float32>
    bias: const_23<224|float32>

ID_79 msc.conv2d_bias_10 <PARENTS: msc.conv2d_bias_11| CHILDERN: clip_28>
  IN: msc.conv2d_bias_11:0<1,224,7,7|float32>
  OUT: msc.conv2d_bias_10:0<1,1344,7,7|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=1344 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_20<1344,224,1,1|float32>
    bias: const_21<1344|float32>

ID_80 clip_28 <PARENTS: msc.conv2d_bias_10| CHILDERN: msc.conv2d_bias_9>
  IN: msc.conv2d_bias_10:0<1,1344,7,7|float32>
  OUT: clip_28:0<1,1344,7,7|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_81 msc.conv2d_bias_9 <PARENTS: clip_28| CHILDERN: clip_29>
  IN: clip_28:0<1,1344,7,7|float32>
  OUT: msc.conv2d_bias_9:0<1,1344,7,7|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1344 channels=1344 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_18<1344,1,3,3|float32>
    bias: const_19<1344|float32>

ID_82 clip_29 <PARENTS: msc.conv2d_bias_9| CHILDERN: msc.conv2d_bias_8>
  IN: msc.conv2d_bias_9:0<1,1344,7,7|float32>
  OUT: clip_29:0<1,1344,7,7|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_83 msc.conv2d_bias_8 <PARENTS: clip_29| CHILDERN: add_8>
  IN: clip_29:0<1,1344,7,7|float32>
  OUT: msc.conv2d_bias_8:0<1,224,7,7|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=224 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_16<224,1344,1,1|float32>
    bias: const_17<224|float32>

ID_84 add_8 <PARENTS: msc.conv2d_bias_8,msc.conv2d_bias_11| CHILDERN: msc.conv2d_bias_7,add_9>
  IN: msc.conv2d_bias_8:0<1,224,7,7|float32>,msc.conv2d_bias_11:0<1,224,7,7|float32>
  OUT: add_8:0<1,224,7,7|float32>
  OPTYPE: add
  SCOPE: block

ID_85 msc.conv2d_bias_7 <PARENTS: add_8| CHILDERN: clip_30>
  IN: add_8:0<1,224,7,7|float32>
  OUT: msc.conv2d_bias_7:0<1,1344,7,7|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=1344 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_14<1344,224,1,1|float32>
    bias: const_15<1344|float32>

ID_86 clip_30 <PARENTS: msc.conv2d_bias_7| CHILDERN: msc.conv2d_bias_6>
  IN: msc.conv2d_bias_7:0<1,1344,7,7|float32>
  OUT: clip_30:0<1,1344,7,7|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_87 msc.conv2d_bias_6 <PARENTS: clip_30| CHILDERN: clip_31>
  IN: clip_30:0<1,1344,7,7|float32>
  OUT: msc.conv2d_bias_6:0<1,1344,7,7|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1344 channels=1344 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_12<1344,1,3,3|float32>
    bias: const_13<1344|float32>

ID_88 clip_31 <PARENTS: msc.conv2d_bias_6| CHILDERN: msc.conv2d_bias_5>
  IN: msc.conv2d_bias_6:0<1,1344,7,7|float32>
  OUT: clip_31:0<1,1344,7,7|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_89 msc.conv2d_bias_5 <PARENTS: clip_31| CHILDERN: add_9>
  IN: clip_31:0<1,1344,7,7|float32>
  OUT: msc.conv2d_bias_5:0<1,224,7,7|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=224 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_10<224,1344,1,1|float32>
    bias: const_11<224|float32>

ID_90 add_9 <PARENTS: msc.conv2d_bias_5,add_8| CHILDERN: msc.conv2d_bias_4>
  IN: msc.conv2d_bias_5:0<1,224,7,7|float32>,add_8:0<1,224,7,7|float32>
  OUT: add_9:0<1,224,7,7|float32>
  OPTYPE: add
  SCOPE: block

ID_91 msc.conv2d_bias_4 <PARENTS: add_9| CHILDERN: clip_32>
  IN: add_9:0<1,224,7,7|float32>
  OUT: msc.conv2d_bias_4:0<1,1344,7,7|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=1344 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_8<1344,224,1,1|float32>
    bias: const_9<1344|float32>

ID_92 clip_32 <PARENTS: msc.conv2d_bias_4| CHILDERN: msc.conv2d_bias_3>
  IN: msc.conv2d_bias_4:0<1,1344,7,7|float32>
  OUT: clip_32:0<1,1344,7,7|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_93 msc.conv2d_bias_3 <PARENTS: clip_32| CHILDERN: clip_33>
  IN: clip_32:0<1,1344,7,7|float32>
  OUT: msc.conv2d_bias_3:0<1,1344,7,7|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1344 channels=1344 kernel_size=3,3 axis=1 padding=1,1,1,1 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_6<1344,1,3,3|float32>
    bias: const_7<1344|float32>

ID_94 clip_33 <PARENTS: msc.conv2d_bias_3| CHILDERN: msc.conv2d_bias_2>
  IN: msc.conv2d_bias_3:0<1,1344,7,7|float32>
  OUT: clip_33:0<1,1344,7,7|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_95 msc.conv2d_bias_2 <PARENTS: clip_33| CHILDERN: msc.conv2d_bias_1>
  IN: clip_33:0<1,1344,7,7|float32>
  OUT: msc.conv2d_bias_2:0<1,448,7,7|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=448 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_4<448,1344,1,1|float32>
    bias: const_5<448|float32>

ID_96 msc.conv2d_bias_1 <PARENTS: msc.conv2d_bias_2| CHILDERN: clip_34>
  IN: msc.conv2d_bias_2:0<1,448,7,7|float32>
  OUT: msc.conv2d_bias_1:0<1,1792,7,7|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=1792 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const_2<1792,448,1,1|float32>
    bias: const_3<1792|float32>

ID_97 clip_34 <PARENTS: msc.conv2d_bias_1| CHILDERN: avg_pool2d>
  IN: msc.conv2d_bias_1:0<1,1792,7,7|float32>
  OUT: clip_34:0<1,1792,7,7|float32>
  OPTYPE: clip
  SCOPE: block
  ATTRS: a_min=0.000000 a_max=6.000000 

ID_98 avg_pool2d <PARENTS: clip_34| CHILDERN: reshape>
  IN: clip_34:0<1,1792,7,7|float32>
  OUT: avg_pool2d:0<1,1792,1,1|float32>
  OPTYPE: nn.avg_pool2d
  SCOPE: block
  ATTRS: count_include_pad=0 strides=1,1 pool_size=7,7 ceil_mode=0 layout=NCHW padding=0,0,0,0 dilation=1,1 out_layout= 

ID_99 reshape <PARENTS: avg_pool2d| CHILDERN: msc.conv2d_bias>
  IN: avg_pool2d:0<1,1792,1,1|float32>
  OUT: reshape:0<1,1792,1,1|float32>
  OPTYPE: reshape
  SCOPE: block
  ATTRS: newshape=1,1792,1,1 allowzero=0 

ID_100 msc.conv2d_bias <PARENTS: reshape| CHILDERN: squeeze>
  IN: reshape:0<1,1792,1,1|float32>
  OUT: msc.conv2d_bias:0<1,1001,1,1|float32>
  OPTYPE: msc.conv2d_bias
  SCOPE: block
  ATTRS: out_dtype= strides=1,1 kernel_layout=OIHW groups=1 channels=1001 kernel_size=1,1 axis=1 padding=0,0,0,0 data_layout=NCHW dilation=1,1 out_layout= 
  WEIGHTS: 
    weight: const<1001,1792,1,1|float32>
    bias: const_1<1001|float32>

ID_101 squeeze <PARENTS: msc.conv2d_bias| CHILDERN: reshape_1>
  IN: msc.conv2d_bias:0<1,1001,1,1|float32>
  OUT: squeeze:0<1,1001|float32>
  OPTYPE: squeeze
  SCOPE: block
  ATTRS: axis=2,3 

ID_102 reshape_1 <PARENTS: squeeze| CHILDERN: softmax>
  IN: squeeze:0<1,1001|float32>
  OUT: reshape_1:0<1,1001|float32>
  OPTYPE: reshape
  SCOPE: block
  ATTRS: newshape=-1,1001 allowzero=0 

ID_103 softmax <PARENTS: reshape_1| CHILDERN: reshape_2>
  IN: reshape_1:0<1,1001|float32>
  OUT: softmax:0<1,1001|float32>
  OPTYPE: nn.softmax
  SCOPE: block
  ATTRS: axis=1 

ID_104 reshape_2 <PARENTS: softmax| CHILDERN: >
  IN: softmax:0<1,1001|float32>
  OUT: reshape_2:0(reshape_2)<1,1001|float32>
  OPTYPE: reshape
  SCOPE: block
  ATTRS: newshape=1,1001 allowzero=0