def METHOD_NAME():
    net = AutoFormer()
    input = ShapeTensor(torch.randn(1, 3, 224, 224), True)
    output = shape_inference(net, input)
    assert output.real_shape == MutableShape(1, 1000)
    sample = {}
    real_model = net.random(sample)
    shapes = submodule_input_output_shapes(net, input)
    input_shapes = {k: v[0][0].freeze(sample) for k, v in shapes.items()}
    output_shapes = {k: v[1].freeze(sample) for k, v in shapes.items()}
    expected_shapes = _real_shape_inference(real_model, torch.randn(1, 3, 224, 224))
    expected_input_shapes = {k: v[0][0] for k, v in expected_shapes.items()}
    expected_output_shapes = {k: v[1] for k, v in expected_shapes.items()}
    for k, v in input_shapes.items():
        k_ = k.replace('blocks.blocks.', 'blocks.')
        if k_ in expected_input_shapes:
            assert v == expected_input_shapes[k_]
            assert output_shapes[k] == expected_output_shapes[k_]