chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,789 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
# ruff: noqa: F401, F841
|
||||
|
||||
import copy
|
||||
import json
|
||||
|
||||
import numpy as np
|
||||
import pytest
|
||||
|
||||
pytest.importorskip("onnx")
|
||||
|
||||
import onnx
|
||||
from utils import verify_results
|
||||
|
||||
import tvm
|
||||
import tvm.testing
|
||||
from tvm import relax
|
||||
from tvm.relax.frontend.onnx import from_onnx
|
||||
from tvm.relax.transform.legalize_ops import adreno as legalize_adreno
|
||||
from tvm.script import ir as I
|
||||
from tvm.script import relax as R
|
||||
from tvm.script import tirx as T
|
||||
from tvm.script.ir_builder import IRBuilder
|
||||
from tvm.script.ir_builder import relax as relax_builder
|
||||
|
||||
TARGETS = [tvm.target.Target("qcom/adreno-opencl-texture")]
|
||||
|
||||
|
||||
@pytest.mark.gpu
|
||||
@pytest.mark.skipif(not tvm.testing.device_enabled(TARGETS[0]), reason="opencl not enabled")
|
||||
def test_network_resnet():
|
||||
target = TARGETS[0]
|
||||
|
||||
@I.ir_module
|
||||
class Resnet:
|
||||
@R.function
|
||||
def main(
|
||||
data: R.Tensor((1, 3, 224, 224), dtype="float32"),
|
||||
resnetv22_batchnorm0_gamma: R.Tensor((3,), dtype="float32"),
|
||||
resnetv22_batchnorm0_beta: R.Tensor((3,), dtype="float32"),
|
||||
resnetv22_batchnorm0_running_mea: R.Tensor((3,), dtype="float32"),
|
||||
resnetv22_batchnorm0_running_var: R.Tensor((3,), dtype="float32"),
|
||||
resnetv22_conv0_weight: R.Tensor((64, 3, 7, 7), dtype="float32"),
|
||||
resnetv22_batchnorm1_gamma: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_batchnorm1_beta: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_batchnorm1_running_mea: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_batchnorm1_running_var: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm0_gamma: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm0_beta: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm0_running_mea: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm0_running_var: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_conv0_weight: R.Tensor((64, 64, 3, 3), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm1_gamma: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm1_beta: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm1_running_mea: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm1_running_var: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_conv1_weight: R.Tensor((64, 64, 3, 3), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm2_gamma: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm2_beta: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm2_running_mea: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm2_running_var: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_conv2_weight: R.Tensor((64, 64, 3, 3), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm3_gamma: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm3_beta: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm3_running_mea: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_batchnorm3_running_var: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage1_conv3_weight: R.Tensor((64, 64, 3, 3), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm0_gamma: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm0_beta: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm0_running_mea: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm0_running_var: R.Tensor((64,), dtype="float32"),
|
||||
resnetv22_stage2_conv0_weight: R.Tensor((128, 64, 3, 3), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm1_gamma: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm1_beta: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm1_running_mea: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm1_running_var: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage2_conv1_weight: R.Tensor((128, 128, 3, 3), dtype="float32"),
|
||||
resnetv22_stage2_conv2_weight: R.Tensor((128, 64, 1, 1), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm2_gamma: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm2_beta: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm2_running_mea: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm2_running_var: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage2_conv3_weight: R.Tensor((128, 128, 3, 3), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm3_gamma: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm3_beta: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm3_running_mea: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage2_batchnorm3_running_var: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage2_conv4_weight: R.Tensor((128, 128, 3, 3), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm0_gamma: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm0_beta: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm0_running_mea: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm0_running_var: R.Tensor((128,), dtype="float32"),
|
||||
resnetv22_stage3_conv0_weight: R.Tensor((256, 128, 3, 3), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm1_gamma: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm1_beta: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm1_running_mea: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm1_running_var: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage3_conv1_weight: R.Tensor((256, 256, 3, 3), dtype="float32"),
|
||||
resnetv22_stage3_conv2_weight: R.Tensor((256, 128, 1, 1), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm2_gamma: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm2_beta: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm2_running_mea: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm2_running_var: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage3_conv3_weight: R.Tensor((256, 256, 3, 3), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm3_gamma: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm3_beta: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm3_running_mea: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage3_batchnorm3_running_var: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage3_conv4_weight: R.Tensor((256, 256, 3, 3), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm0_gamma: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm0_beta: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm0_running_mea: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm0_running_var: R.Tensor((256,), dtype="float32"),
|
||||
resnetv22_stage4_conv0_weight: R.Tensor((512, 256, 3, 3), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm1_gamma: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm1_beta: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm1_running_mea: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm1_running_var: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_stage4_conv1_weight: R.Tensor((512, 512, 3, 3), dtype="float32"),
|
||||
resnetv22_stage4_conv2_weight: R.Tensor((512, 256, 1, 1), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm2_gamma: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm2_beta: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm2_running_mea: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm2_running_var: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_stage4_conv3_weight: R.Tensor((512, 512, 3, 3), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm3_gamma: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm3_beta: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm3_running_mea: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_stage4_batchnorm3_running_var: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_stage4_conv4_weight: R.Tensor((512, 512, 3, 3), dtype="float32"),
|
||||
resnetv22_batchnorm2_gamma: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_batchnorm2_beta: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_batchnorm2_running_mea: R.Tensor((512,), dtype="float32"),
|
||||
resnetv22_batchnorm2_running_var: R.Tensor((512,), dtype="float32"),
|
||||
reshape_attr_tensor164: R.Tensor((2,), dtype="int64"),
|
||||
resnetv22_dense0_weight: R.Tensor((1000, 512), dtype="float32"),
|
||||
resnetv22_dense0_bias: R.Tensor((1000,), dtype="float32"),
|
||||
) -> R.Tensor((1, 1000), dtype="float32"):
|
||||
with R.dataflow():
|
||||
lv: R.Tuple(
|
||||
R.Tensor((1, 3, 224, 224), dtype="float32"),
|
||||
R.Tensor((3,), dtype="float32"),
|
||||
R.Tensor((3,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
data,
|
||||
resnetv22_batchnorm0_gamma,
|
||||
resnetv22_batchnorm0_beta,
|
||||
resnetv22_batchnorm0_running_mea,
|
||||
resnetv22_batchnorm0_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv1: R.Tensor((1, 3, 224, 224), dtype="float32") = lv[0]
|
||||
lv2: R.Tensor((3,), dtype="float32") = lv[1]
|
||||
lv3: R.Tensor((3,), dtype="float32") = lv[2]
|
||||
lv4: R.Tensor((1, 64, 112, 112), dtype="float32") = R.nn.conv2d(
|
||||
lv1,
|
||||
resnetv22_conv0_weight,
|
||||
strides=[2, 2],
|
||||
padding=[3, 3, 3, 3],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv5: R.Tuple(
|
||||
R.Tensor((1, 64, 112, 112), dtype="float32"),
|
||||
R.Tensor((64,), dtype="float32"),
|
||||
R.Tensor((64,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv4,
|
||||
resnetv22_batchnorm1_gamma,
|
||||
resnetv22_batchnorm1_beta,
|
||||
resnetv22_batchnorm1_running_mea,
|
||||
resnetv22_batchnorm1_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv6: R.Tensor((1, 64, 112, 112), dtype="float32") = lv5[0]
|
||||
lv7: R.Tensor((64,), dtype="float32") = lv5[1]
|
||||
lv8: R.Tensor((64,), dtype="float32") = lv5[2]
|
||||
lv9: R.Tensor((1, 64, 112, 112), dtype="float32") = R.nn.relu(lv6)
|
||||
lv10: R.Tensor((1, 64, 56, 56), dtype="float32") = R.nn.max_pool2d(
|
||||
lv9,
|
||||
pool_size=[3, 3],
|
||||
strides=[2, 2],
|
||||
dilation=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
ceil_mode=False,
|
||||
count_include_pad=False,
|
||||
layout="NCHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv11: R.Tuple(
|
||||
R.Tensor((1, 64, 56, 56), dtype="float32"),
|
||||
R.Tensor((64,), dtype="float32"),
|
||||
R.Tensor((64,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv10,
|
||||
resnetv22_stage1_batchnorm0_gamma,
|
||||
resnetv22_stage1_batchnorm0_beta,
|
||||
resnetv22_stage1_batchnorm0_running_mea,
|
||||
resnetv22_stage1_batchnorm0_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv12: R.Tensor((1, 64, 56, 56), dtype="float32") = lv11[0]
|
||||
lv13: R.Tensor((64,), dtype="float32") = lv11[1]
|
||||
lv14: R.Tensor((64,), dtype="float32") = lv11[2]
|
||||
lv15: R.Tensor((1, 64, 56, 56), dtype="float32") = R.nn.relu(lv12)
|
||||
lv16: R.Tensor((1, 64, 56, 56), dtype="float32") = R.nn.conv2d(
|
||||
lv15,
|
||||
resnetv22_stage1_conv0_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv17: R.Tuple(
|
||||
R.Tensor((1, 64, 56, 56), dtype="float32"),
|
||||
R.Tensor((64,), dtype="float32"),
|
||||
R.Tensor((64,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv16,
|
||||
resnetv22_stage1_batchnorm1_gamma,
|
||||
resnetv22_stage1_batchnorm1_beta,
|
||||
resnetv22_stage1_batchnorm1_running_mea,
|
||||
resnetv22_stage1_batchnorm1_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv18: R.Tensor((1, 64, 56, 56), dtype="float32") = lv17[0]
|
||||
lv19: R.Tensor((64,), dtype="float32") = lv17[1]
|
||||
lv20: R.Tensor((64,), dtype="float32") = lv17[2]
|
||||
lv21: R.Tensor((1, 64, 56, 56), dtype="float32") = R.nn.relu(lv18)
|
||||
lv22: R.Tensor((1, 64, 56, 56), dtype="float32") = R.nn.conv2d(
|
||||
lv21,
|
||||
resnetv22_stage1_conv1_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv23: R.Tensor((1, 64, 56, 56), dtype="float32") = R.add(lv22, lv10)
|
||||
lv24: R.Tuple(
|
||||
R.Tensor((1, 64, 56, 56), dtype="float32"),
|
||||
R.Tensor((64,), dtype="float32"),
|
||||
R.Tensor((64,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv23,
|
||||
resnetv22_stage1_batchnorm2_gamma,
|
||||
resnetv22_stage1_batchnorm2_beta,
|
||||
resnetv22_stage1_batchnorm2_running_mea,
|
||||
resnetv22_stage1_batchnorm2_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv25: R.Tensor((1, 64, 56, 56), dtype="float32") = lv24[0]
|
||||
lv26: R.Tensor((64,), dtype="float32") = lv24[1]
|
||||
lv27: R.Tensor((64,), dtype="float32") = lv24[2]
|
||||
lv28: R.Tensor((1, 64, 56, 56), dtype="float32") = R.nn.relu(lv25)
|
||||
lv29: R.Tensor((1, 64, 56, 56), dtype="float32") = R.nn.conv2d(
|
||||
lv28,
|
||||
resnetv22_stage1_conv2_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv30: R.Tuple(
|
||||
R.Tensor((1, 64, 56, 56), dtype="float32"),
|
||||
R.Tensor((64,), dtype="float32"),
|
||||
R.Tensor((64,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv29,
|
||||
resnetv22_stage1_batchnorm3_gamma,
|
||||
resnetv22_stage1_batchnorm3_beta,
|
||||
resnetv22_stage1_batchnorm3_running_mea,
|
||||
resnetv22_stage1_batchnorm3_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv31: R.Tensor((1, 64, 56, 56), dtype="float32") = lv30[0]
|
||||
lv32: R.Tensor((64,), dtype="float32") = lv30[1]
|
||||
lv33: R.Tensor((64,), dtype="float32") = lv30[2]
|
||||
lv34: R.Tensor((1, 64, 56, 56), dtype="float32") = R.nn.relu(lv31)
|
||||
lv35: R.Tensor((1, 64, 56, 56), dtype="float32") = R.nn.conv2d(
|
||||
lv34,
|
||||
resnetv22_stage1_conv3_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv36: R.Tensor((1, 64, 56, 56), dtype="float32") = R.add(lv35, lv23)
|
||||
lv37: R.Tuple(
|
||||
R.Tensor((1, 64, 56, 56), dtype="float32"),
|
||||
R.Tensor((64,), dtype="float32"),
|
||||
R.Tensor((64,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv36,
|
||||
resnetv22_stage2_batchnorm0_gamma,
|
||||
resnetv22_stage2_batchnorm0_beta,
|
||||
resnetv22_stage2_batchnorm0_running_mea,
|
||||
resnetv22_stage2_batchnorm0_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv38: R.Tensor((1, 64, 56, 56), dtype="float32") = lv37[0]
|
||||
lv39: R.Tensor((64,), dtype="float32") = lv37[1]
|
||||
lv40: R.Tensor((64,), dtype="float32") = lv37[2]
|
||||
lv41: R.Tensor((1, 64, 56, 56), dtype="float32") = R.nn.relu(lv38)
|
||||
lv42: R.Tensor((1, 128, 28, 28), dtype="float32") = R.nn.conv2d(
|
||||
lv41,
|
||||
resnetv22_stage2_conv0_weight,
|
||||
strides=[2, 2],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv43: R.Tuple(
|
||||
R.Tensor((1, 128, 28, 28), dtype="float32"),
|
||||
R.Tensor((128,), dtype="float32"),
|
||||
R.Tensor((128,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv42,
|
||||
resnetv22_stage2_batchnorm1_gamma,
|
||||
resnetv22_stage2_batchnorm1_beta,
|
||||
resnetv22_stage2_batchnorm1_running_mea,
|
||||
resnetv22_stage2_batchnorm1_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv44: R.Tensor((1, 128, 28, 28), dtype="float32") = lv43[0]
|
||||
lv45: R.Tensor((128,), dtype="float32") = lv43[1]
|
||||
lv46: R.Tensor((128,), dtype="float32") = lv43[2]
|
||||
lv47: R.Tensor((1, 128, 28, 28), dtype="float32") = R.nn.relu(lv44)
|
||||
lv48: R.Tensor((1, 128, 28, 28), dtype="float32") = R.nn.conv2d(
|
||||
lv47,
|
||||
resnetv22_stage2_conv1_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv49: R.Tensor((1, 128, 28, 28), dtype="float32") = R.nn.conv2d(
|
||||
lv41,
|
||||
resnetv22_stage2_conv2_weight,
|
||||
strides=[2, 2],
|
||||
padding=[0, 0, 0, 0],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv50: R.Tensor((1, 128, 28, 28), dtype="float32") = R.add(lv48, lv49)
|
||||
lv51: R.Tuple(
|
||||
R.Tensor((1, 128, 28, 28), dtype="float32"),
|
||||
R.Tensor((128,), dtype="float32"),
|
||||
R.Tensor((128,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv50,
|
||||
resnetv22_stage2_batchnorm2_gamma,
|
||||
resnetv22_stage2_batchnorm2_beta,
|
||||
resnetv22_stage2_batchnorm2_running_mea,
|
||||
resnetv22_stage2_batchnorm2_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv52: R.Tensor((1, 128, 28, 28), dtype="float32") = lv51[0]
|
||||
lv53: R.Tensor((128,), dtype="float32") = lv51[1]
|
||||
lv54: R.Tensor((128,), dtype="float32") = lv51[2]
|
||||
lv55: R.Tensor((1, 128, 28, 28), dtype="float32") = R.nn.relu(lv52)
|
||||
lv56: R.Tensor((1, 128, 28, 28), dtype="float32") = R.nn.conv2d(
|
||||
lv55,
|
||||
resnetv22_stage2_conv3_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv57: R.Tuple(
|
||||
R.Tensor((1, 128, 28, 28), dtype="float32"),
|
||||
R.Tensor((128,), dtype="float32"),
|
||||
R.Tensor((128,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv56,
|
||||
resnetv22_stage2_batchnorm3_gamma,
|
||||
resnetv22_stage2_batchnorm3_beta,
|
||||
resnetv22_stage2_batchnorm3_running_mea,
|
||||
resnetv22_stage2_batchnorm3_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv58: R.Tensor((1, 128, 28, 28), dtype="float32") = lv57[0]
|
||||
lv59: R.Tensor((128,), dtype="float32") = lv57[1]
|
||||
lv60: R.Tensor((128,), dtype="float32") = lv57[2]
|
||||
lv61: R.Tensor((1, 128, 28, 28), dtype="float32") = R.nn.relu(lv58)
|
||||
lv62: R.Tensor((1, 128, 28, 28), dtype="float32") = R.nn.conv2d(
|
||||
lv61,
|
||||
resnetv22_stage2_conv4_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv63: R.Tensor((1, 128, 28, 28), dtype="float32") = R.add(lv62, lv50)
|
||||
lv64: R.Tuple(
|
||||
R.Tensor((1, 128, 28, 28), dtype="float32"),
|
||||
R.Tensor((128,), dtype="float32"),
|
||||
R.Tensor((128,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv63,
|
||||
resnetv22_stage3_batchnorm0_gamma,
|
||||
resnetv22_stage3_batchnorm0_beta,
|
||||
resnetv22_stage3_batchnorm0_running_mea,
|
||||
resnetv22_stage3_batchnorm0_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv65: R.Tensor((1, 128, 28, 28), dtype="float32") = lv64[0]
|
||||
lv66: R.Tensor((128,), dtype="float32") = lv64[1]
|
||||
lv67: R.Tensor((128,), dtype="float32") = lv64[2]
|
||||
lv68: R.Tensor((1, 128, 28, 28), dtype="float32") = R.nn.relu(lv65)
|
||||
lv69: R.Tensor((1, 256, 14, 14), dtype="float32") = R.nn.conv2d(
|
||||
lv68,
|
||||
resnetv22_stage3_conv0_weight,
|
||||
strides=[2, 2],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv70: R.Tuple(
|
||||
R.Tensor((1, 256, 14, 14), dtype="float32"),
|
||||
R.Tensor((256,), dtype="float32"),
|
||||
R.Tensor((256,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv69,
|
||||
resnetv22_stage3_batchnorm1_gamma,
|
||||
resnetv22_stage3_batchnorm1_beta,
|
||||
resnetv22_stage3_batchnorm1_running_mea,
|
||||
resnetv22_stage3_batchnorm1_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv71: R.Tensor((1, 256, 14, 14), dtype="float32") = lv70[0]
|
||||
lv72: R.Tensor((256,), dtype="float32") = lv70[1]
|
||||
lv73: R.Tensor((256,), dtype="float32") = lv70[2]
|
||||
lv74: R.Tensor((1, 256, 14, 14), dtype="float32") = R.nn.relu(lv71)
|
||||
lv75: R.Tensor((1, 256, 14, 14), dtype="float32") = R.nn.conv2d(
|
||||
lv74,
|
||||
resnetv22_stage3_conv1_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv76: R.Tensor((1, 256, 14, 14), dtype="float32") = R.nn.conv2d(
|
||||
lv68,
|
||||
resnetv22_stage3_conv2_weight,
|
||||
strides=[2, 2],
|
||||
padding=[0, 0, 0, 0],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv77: R.Tensor((1, 256, 14, 14), dtype="float32") = R.add(lv75, lv76)
|
||||
lv78: R.Tuple(
|
||||
R.Tensor((1, 256, 14, 14), dtype="float32"),
|
||||
R.Tensor((256,), dtype="float32"),
|
||||
R.Tensor((256,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv77,
|
||||
resnetv22_stage3_batchnorm2_gamma,
|
||||
resnetv22_stage3_batchnorm2_beta,
|
||||
resnetv22_stage3_batchnorm2_running_mea,
|
||||
resnetv22_stage3_batchnorm2_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv79: R.Tensor((1, 256, 14, 14), dtype="float32") = lv78[0]
|
||||
lv80: R.Tensor((256,), dtype="float32") = lv78[1]
|
||||
lv81: R.Tensor((256,), dtype="float32") = lv78[2]
|
||||
lv82: R.Tensor((1, 256, 14, 14), dtype="float32") = R.nn.relu(lv79)
|
||||
lv83: R.Tensor((1, 256, 14, 14), dtype="float32") = R.nn.conv2d(
|
||||
lv82,
|
||||
resnetv22_stage3_conv3_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv84: R.Tuple(
|
||||
R.Tensor((1, 256, 14, 14), dtype="float32"),
|
||||
R.Tensor((256,), dtype="float32"),
|
||||
R.Tensor((256,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv83,
|
||||
resnetv22_stage3_batchnorm3_gamma,
|
||||
resnetv22_stage3_batchnorm3_beta,
|
||||
resnetv22_stage3_batchnorm3_running_mea,
|
||||
resnetv22_stage3_batchnorm3_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv85: R.Tensor((1, 256, 14, 14), dtype="float32") = lv84[0]
|
||||
lv86: R.Tensor((256,), dtype="float32") = lv84[1]
|
||||
lv87: R.Tensor((256,), dtype="float32") = lv84[2]
|
||||
lv88: R.Tensor((1, 256, 14, 14), dtype="float32") = R.nn.relu(lv85)
|
||||
lv89: R.Tensor((1, 256, 14, 14), dtype="float32") = R.nn.conv2d(
|
||||
lv88,
|
||||
resnetv22_stage3_conv4_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv90: R.Tensor((1, 256, 14, 14), dtype="float32") = R.add(lv89, lv77)
|
||||
lv91: R.Tuple(
|
||||
R.Tensor((1, 256, 14, 14), dtype="float32"),
|
||||
R.Tensor((256,), dtype="float32"),
|
||||
R.Tensor((256,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv90,
|
||||
resnetv22_stage4_batchnorm0_gamma,
|
||||
resnetv22_stage4_batchnorm0_beta,
|
||||
resnetv22_stage4_batchnorm0_running_mea,
|
||||
resnetv22_stage4_batchnorm0_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv92: R.Tensor((1, 256, 14, 14), dtype="float32") = lv91[0]
|
||||
lv93: R.Tensor((256,), dtype="float32") = lv91[1]
|
||||
lv94: R.Tensor((256,), dtype="float32") = lv91[2]
|
||||
lv95: R.Tensor((1, 256, 14, 14), dtype="float32") = R.nn.relu(lv92)
|
||||
lv96: R.Tensor((1, 512, 7, 7), dtype="float32") = R.nn.conv2d(
|
||||
lv95,
|
||||
resnetv22_stage4_conv0_weight,
|
||||
strides=[2, 2],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv97: R.Tuple(
|
||||
R.Tensor((1, 512, 7, 7), dtype="float32"),
|
||||
R.Tensor((512,), dtype="float32"),
|
||||
R.Tensor((512,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv96,
|
||||
resnetv22_stage4_batchnorm1_gamma,
|
||||
resnetv22_stage4_batchnorm1_beta,
|
||||
resnetv22_stage4_batchnorm1_running_mea,
|
||||
resnetv22_stage4_batchnorm1_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv98: R.Tensor((1, 512, 7, 7), dtype="float32") = lv97[0]
|
||||
lv99: R.Tensor((512,), dtype="float32") = lv97[1]
|
||||
lv100: R.Tensor((512,), dtype="float32") = lv97[2]
|
||||
lv101: R.Tensor((1, 512, 7, 7), dtype="float32") = R.nn.relu(lv98)
|
||||
lv102: R.Tensor((1, 512, 7, 7), dtype="float32") = R.nn.conv2d(
|
||||
lv101,
|
||||
resnetv22_stage4_conv1_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv103: R.Tensor((1, 512, 7, 7), dtype="float32") = R.nn.conv2d(
|
||||
lv95,
|
||||
resnetv22_stage4_conv2_weight,
|
||||
strides=[2, 2],
|
||||
padding=[0, 0, 0, 0],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv104: R.Tensor((1, 512, 7, 7), dtype="float32") = R.add(lv102, lv103)
|
||||
lv105: R.Tuple(
|
||||
R.Tensor((1, 512, 7, 7), dtype="float32"),
|
||||
R.Tensor((512,), dtype="float32"),
|
||||
R.Tensor((512,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv104,
|
||||
resnetv22_stage4_batchnorm2_gamma,
|
||||
resnetv22_stage4_batchnorm2_beta,
|
||||
resnetv22_stage4_batchnorm2_running_mea,
|
||||
resnetv22_stage4_batchnorm2_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv106: R.Tensor((1, 512, 7, 7), dtype="float32") = lv105[0]
|
||||
lv107: R.Tensor((512,), dtype="float32") = lv105[1]
|
||||
lv108: R.Tensor((512,), dtype="float32") = lv105[2]
|
||||
lv109: R.Tensor((1, 512, 7, 7), dtype="float32") = R.nn.relu(lv106)
|
||||
lv110: R.Tensor((1, 512, 7, 7), dtype="float32") = R.nn.conv2d(
|
||||
lv109,
|
||||
resnetv22_stage4_conv3_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv111: R.Tuple(
|
||||
R.Tensor((1, 512, 7, 7), dtype="float32"),
|
||||
R.Tensor((512,), dtype="float32"),
|
||||
R.Tensor((512,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv110,
|
||||
resnetv22_stage4_batchnorm3_gamma,
|
||||
resnetv22_stage4_batchnorm3_beta,
|
||||
resnetv22_stage4_batchnorm3_running_mea,
|
||||
resnetv22_stage4_batchnorm3_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv112: R.Tensor((1, 512, 7, 7), dtype="float32") = lv111[0]
|
||||
lv113: R.Tensor((512,), dtype="float32") = lv111[1]
|
||||
lv114: R.Tensor((512,), dtype="float32") = lv111[2]
|
||||
lv115: R.Tensor((1, 512, 7, 7), dtype="float32") = R.nn.relu(lv112)
|
||||
lv116: R.Tensor((1, 512, 7, 7), dtype="float32") = R.nn.conv2d(
|
||||
lv115,
|
||||
resnetv22_stage4_conv4_weight,
|
||||
strides=[1, 1],
|
||||
padding=[1, 1, 1, 1],
|
||||
dilation=[1, 1],
|
||||
groups=1,
|
||||
data_layout="NCHW",
|
||||
kernel_layout="OIHW",
|
||||
out_layout="NCHW",
|
||||
)
|
||||
lv117: R.Tensor((1, 512, 7, 7), dtype="float32") = R.add(lv116, lv104)
|
||||
lv118: R.Tuple(
|
||||
R.Tensor((1, 512, 7, 7), dtype="float32"),
|
||||
R.Tensor((512,), dtype="float32"),
|
||||
R.Tensor((512,), dtype="float32"),
|
||||
) = R.nn.batch_norm(
|
||||
lv117,
|
||||
resnetv22_batchnorm2_gamma,
|
||||
resnetv22_batchnorm2_beta,
|
||||
resnetv22_batchnorm2_running_mea,
|
||||
resnetv22_batchnorm2_running_var,
|
||||
axis=1,
|
||||
epsilon=9.9999997473787516e-06,
|
||||
center=True,
|
||||
scale=True,
|
||||
momentum=0.10000000000000001,
|
||||
)
|
||||
lv119: R.Tensor((1, 512, 7, 7), dtype="float32") = lv118[0]
|
||||
lv120: R.Tensor((512,), dtype="float32") = lv118[1]
|
||||
lv121: R.Tensor((512,), dtype="float32") = lv118[2]
|
||||
lv122: R.Tensor((1, 512, 7, 7), dtype="float32") = R.nn.relu(lv119)
|
||||
lv123: R.Tensor((1, 512, 1, 1), dtype="float32") = R.mean(
|
||||
lv122, axis=[2, 3], keepdims=True
|
||||
)
|
||||
lv124: R.Tensor((1, 512), dtype="float32") = R.reshape(lv123, R.shape([1, 512]))
|
||||
lv125: R.Tensor((512, 1000), dtype="float32") = R.permute_dims(
|
||||
resnetv22_dense0_weight, axes=[1, 0]
|
||||
)
|
||||
lv126: R.Tensor((1, 1000), dtype="float32") = R.matmul(lv124, lv125)
|
||||
gv: R.Tensor((1, 1000), dtype="float32") = R.add(lv126, resnetv22_dense0_bias)
|
||||
R.output(gv)
|
||||
return gv
|
||||
|
||||
verify_results(Resnet, target, tvm.target.Target("llvm"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
tvm.testing.main()
|
||||
Reference in New Issue
Block a user