Skip to content

Provide utilities to generate input meta constraints#378

Merged
lixinqi merged 40 commits intoPaddlePaddle:developfrom
lixinqi:multi_shape
Nov 22, 2025
Merged

Provide utilities to generate input meta constraints#378
lixinqi merged 40 commits intoPaddlePaddle:developfrom
lixinqi:multi_shape

Conversation

@lixinqi
Copy link
Collaborator

@lixinqi lixinqi commented Nov 22, 2025

PR Category

Feature Enhancement

Description

Provide utilities to generate input_meta_constraints.py

Example input_meta_constraints.py results:

from sympy import Symbol, Expr, Rel, Eq

S0 = Symbol("S0")
S1 = Symbol("S1")

dynamic_dim_constraint_symbols = [S0, S1]

dynamic_dim_constraint_symbol2example_value = {S0: 1, S1: 224}

dynamic_dim_constraint_relations = []

dynamic_dim_constraint_input_shapes = [
    ([64], "L_self_modules_bn1_buffers_running_mean_"),
    ([64], "L_self_modules_bn1_buffers_running_var_"),
    ([64], "L_self_modules_bn1_parameters_bias_"),
    ([64], "L_self_modules_bn1_parameters_weight_"),
    ([64, 3, 7, 7], "L_self_modules_conv1_parameters_weight_"),
    ([1000], "L_self_modules_fc_parameters_bias_"),
    ([1000, 512], "L_self_modules_fc_parameters_weight_"),
    ([64], "L_self_modules_layer1_modules_0_modules_bn1_buffers_running_mean_"),
    ([64], "L_self_modules_layer1_modules_0_modules_bn1_buffers_running_var_"),
    ([64], "L_self_modules_layer1_modules_0_modules_bn1_parameters_bias_"),
    ([64], "L_self_modules_layer1_modules_0_modules_bn1_parameters_weight_"),
    ([64], "L_self_modules_layer1_modules_0_modules_bn2_buffers_running_mean_"),
    ([64], "L_self_modules_layer1_modules_0_modules_bn2_buffers_running_var_"),
    ([64], "L_self_modules_layer1_modules_0_modules_bn2_parameters_bias_"),
    ([64], "L_self_modules_layer1_modules_0_modules_bn2_parameters_weight_"),
    (
        [64, 64, 3, 3],
        "L_self_modules_layer1_modules_0_modules_conv1_parameters_weight_",
    ),
    (
        [64, 64, 3, 3],
        "L_self_modules_layer1_modules_0_modules_conv2_parameters_weight_",
    ),
    ([64], "L_self_modules_layer1_modules_1_modules_bn1_buffers_running_mean_"),
    ([64], "L_self_modules_layer1_modules_1_modules_bn1_buffers_running_var_"),
    ([64], "L_self_modules_layer1_modules_1_modules_bn1_parameters_bias_"),
    ([64], "L_self_modules_layer1_modules_1_modules_bn1_parameters_weight_"),
    ([64], "L_self_modules_layer1_modules_1_modules_bn2_buffers_running_mean_"),
    ([64], "L_self_modules_layer1_modules_1_modules_bn2_buffers_running_var_"),
    ([64], "L_self_modules_layer1_modules_1_modules_bn2_parameters_bias_"),
    ([64], "L_self_modules_layer1_modules_1_modules_bn2_parameters_weight_"),
    (
        [64, 64, 3, 3],
        "L_self_modules_layer1_modules_1_modules_conv1_parameters_weight_",
    ),
    (
        [64, 64, 3, 3],
        "L_self_modules_layer1_modules_1_modules_conv2_parameters_weight_",
    ),
    ([128], "L_self_modules_layer2_modules_0_modules_bn1_buffers_running_mean_"),
    ([128], "L_self_modules_layer2_modules_0_modules_bn1_buffers_running_var_"),
    ([128], "L_self_modules_layer2_modules_0_modules_bn1_parameters_bias_"),
    ([128], "L_self_modules_layer2_modules_0_modules_bn1_parameters_weight_"),
    ([128], "L_self_modules_layer2_modules_0_modules_bn2_buffers_running_mean_"),
    ([128], "L_self_modules_layer2_modules_0_modules_bn2_buffers_running_var_"),
    ([128], "L_self_modules_layer2_modules_0_modules_bn2_parameters_bias_"),
    ([128], "L_self_modules_layer2_modules_0_modules_bn2_parameters_weight_"),
    (
        [128, 64, 3, 3],
        "L_self_modules_layer2_modules_0_modules_conv1_parameters_weight_",
    ),
    (
        [128, 128, 3, 3],
        "L_self_modules_layer2_modules_0_modules_conv2_parameters_weight_",
    ),
    (
        [128, 64, 1, 1],
        "L_self_modules_layer2_modules_0_modules_downsample_modules_0_parameters_weight_",
    ),
    (
        [128],
        "L_self_modules_layer2_modules_0_modules_downsample_modules_1_buffers_running_mean_",
    ),
    (
        [128],
        "L_self_modules_layer2_modules_0_modules_downsample_modules_1_buffers_running_var_",
    ),
    (
        [128],
        "L_self_modules_layer2_modules_0_modules_downsample_modules_1_parameters_bias_",
    ),
    (
        [128],
        "L_self_modules_layer2_modules_0_modules_downsample_modules_1_parameters_weight_",
    ),
    ([128], "L_self_modules_layer2_modules_1_modules_bn1_buffers_running_mean_"),
    ([128], "L_self_modules_layer2_modules_1_modules_bn1_buffers_running_var_"),
    ([128], "L_self_modules_layer2_modules_1_modules_bn1_parameters_bias_"),
    ([128], "L_self_modules_layer2_modules_1_modules_bn1_parameters_weight_"),
    ([128], "L_self_modules_layer2_modules_1_modules_bn2_buffers_running_mean_"),
    ([128], "L_self_modules_layer2_modules_1_modules_bn2_buffers_running_var_"),
    ([128], "L_self_modules_layer2_modules_1_modules_bn2_parameters_bias_"),
    ([128], "L_self_modules_layer2_modules_1_modules_bn2_parameters_weight_"),
    (
        [128, 128, 3, 3],
        "L_self_modules_layer2_modules_1_modules_conv1_parameters_weight_",
    ),
    (
        [128, 128, 3, 3],
        "L_self_modules_layer2_modules_1_modules_conv2_parameters_weight_",
    ),
    ([256], "L_self_modules_layer3_modules_0_modules_bn1_buffers_running_mean_"),
    ([256], "L_self_modules_layer3_modules_0_modules_bn1_buffers_running_var_"),
    ([256], "L_self_modules_layer3_modules_0_modules_bn1_parameters_bias_"),
    ([256], "L_self_modules_layer3_modules_0_modules_bn1_parameters_weight_"),
    ([256], "L_self_modules_layer3_modules_0_modules_bn2_buffers_running_mean_"),
    ([256], "L_self_modules_layer3_modules_0_modules_bn2_buffers_running_var_"),
    ([256], "L_self_modules_layer3_modules_0_modules_bn2_parameters_bias_"),
    ([256], "L_self_modules_layer3_modules_0_modules_bn2_parameters_weight_"),
    (
        [256, 128, 3, 3],
        "L_self_modules_layer3_modules_0_modules_conv1_parameters_weight_",
    ),
    (
        [256, 256, 3, 3],
        "L_self_modules_layer3_modules_0_modules_conv2_parameters_weight_",
    ),
    (
        [256, 128, 1, 1],
        "L_self_modules_layer3_modules_0_modules_downsample_modules_0_parameters_weight_",
    ),
    (
        [256],
        "L_self_modules_layer3_modules_0_modules_downsample_modules_1_buffers_running_mean_",
    ),
    (
        [256],
        "L_self_modules_layer3_modules_0_modules_downsample_modules_1_buffers_running_var_",
    ),
    (
        [256],
        "L_self_modules_layer3_modules_0_modules_downsample_modules_1_parameters_bias_",
    ),
    (
        [256],
        "L_self_modules_layer3_modules_0_modules_downsample_modules_1_parameters_weight_",
    ),
    ([256], "L_self_modules_layer3_modules_1_modules_bn1_buffers_running_mean_"),
    ([256], "L_self_modules_layer3_modules_1_modules_bn1_buffers_running_var_"),
    ([256], "L_self_modules_layer3_modules_1_modules_bn1_parameters_bias_"),
    ([256], "L_self_modules_layer3_modules_1_modules_bn1_parameters_weight_"),
    ([256], "L_self_modules_layer3_modules_1_modules_bn2_buffers_running_mean_"),
    ([256], "L_self_modules_layer3_modules_1_modules_bn2_buffers_running_var_"),
    ([256], "L_self_modules_layer3_modules_1_modules_bn2_parameters_bias_"),
    ([256], "L_self_modules_layer3_modules_1_modules_bn2_parameters_weight_"),
    (
        [256, 256, 3, 3],
        "L_self_modules_layer3_modules_1_modules_conv1_parameters_weight_",
    ),
    (
        [256, 256, 3, 3],
        "L_self_modules_layer3_modules_1_modules_conv2_parameters_weight_",
    ),
    ([512], "L_self_modules_layer4_modules_0_modules_bn1_buffers_running_mean_"),
    ([512], "L_self_modules_layer4_modules_0_modules_bn1_buffers_running_var_"),
    ([512], "L_self_modules_layer4_modules_0_modules_bn1_parameters_bias_"),
    ([512], "L_self_modules_layer4_modules_0_modules_bn1_parameters_weight_"),
    ([512], "L_self_modules_layer4_modules_0_modules_bn2_buffers_running_mean_"),
    ([512], "L_self_modules_layer4_modules_0_modules_bn2_buffers_running_var_"),
    ([512], "L_self_modules_layer4_modules_0_modules_bn2_parameters_bias_"),
    ([512], "L_self_modules_layer4_modules_0_modules_bn2_parameters_weight_"),
    (
        [512, 256, 3, 3],
        "L_self_modules_layer4_modules_0_modules_conv1_parameters_weight_",
    ),
    (
        [512, 512, 3, 3],
        "L_self_modules_layer4_modules_0_modules_conv2_parameters_weight_",
    ),
    (
        [512, 256, 1, 1],
        "L_self_modules_layer4_modules_0_modules_downsample_modules_0_parameters_weight_",
    ),
    (
        [512],
        "L_self_modules_layer4_modules_0_modules_downsample_modules_1_buffers_running_mean_",
    ),
    (
        [512],
        "L_self_modules_layer4_modules_0_modules_downsample_modules_1_buffers_running_var_",
    ),
    (
        [512],
        "L_self_modules_layer4_modules_0_modules_downsample_modules_1_parameters_bias_",
    ),
    (
        [512],
        "L_self_modules_layer4_modules_0_modules_downsample_modules_1_parameters_weight_",
    ),
    ([512], "L_self_modules_layer4_modules_1_modules_bn1_buffers_running_mean_"),
    ([512], "L_self_modules_layer4_modules_1_modules_bn1_buffers_running_var_"),
    ([512], "L_self_modules_layer4_modules_1_modules_bn1_parameters_bias_"),
    ([512], "L_self_modules_layer4_modules_1_modules_bn1_parameters_weight_"),
    ([512], "L_self_modules_layer4_modules_1_modules_bn2_buffers_running_mean_"),
    ([512], "L_self_modules_layer4_modules_1_modules_bn2_buffers_running_var_"),
    ([512], "L_self_modules_layer4_modules_1_modules_bn2_parameters_bias_"),
    ([512], "L_self_modules_layer4_modules_1_modules_bn2_parameters_weight_"),
    (
        [512, 512, 3, 3],
        "L_self_modules_layer4_modules_1_modules_conv1_parameters_weight_",
    ),
    (
        [512, 512, 3, 3],
        "L_self_modules_layer4_modules_1_modules_conv2_parameters_weight_",
    ),
    ([S0, 3, S1, S1], "L_x_"),
    ([], "s1"),
]

dynamic_dim_constraint_input_max_values = [
    (None, "L_self_modules_bn1_buffers_running_mean_"),
    (None, "L_self_modules_bn1_buffers_running_var_"),
    (None, "L_self_modules_bn1_parameters_bias_"),
    (None, "L_self_modules_bn1_parameters_weight_"),
    (None, "L_self_modules_conv1_parameters_weight_"),
    (None, "L_self_modules_fc_parameters_bias_"),
    (None, "L_self_modules_fc_parameters_weight_"),
    (None, "L_self_modules_layer1_modules_0_modules_bn1_buffers_running_mean_"),
    (None, "L_self_modules_layer1_modules_0_modules_bn1_buffers_running_var_"),
    (None, "L_self_modules_layer1_modules_0_modules_bn1_parameters_bias_"),
    (None, "L_self_modules_layer1_modules_0_modules_bn1_parameters_weight_"),
    (None, "L_self_modules_layer1_modules_0_modules_bn2_buffers_running_mean_"),
    (None, "L_self_modules_layer1_modules_0_modules_bn2_buffers_running_var_"),
    (None, "L_self_modules_layer1_modules_0_modules_bn2_parameters_bias_"),
    (None, "L_self_modules_layer1_modules_0_modules_bn2_parameters_weight_"),
    (None, "L_self_modules_layer1_modules_0_modules_conv1_parameters_weight_"),
    (None, "L_self_modules_layer1_modules_0_modules_conv2_parameters_weight_"),
    (None, "L_self_modules_layer1_modules_1_modules_bn1_buffers_running_mean_"),
    (None, "L_self_modules_layer1_modules_1_modules_bn1_buffers_running_var_"),
    (None, "L_self_modules_layer1_modules_1_modules_bn1_parameters_bias_"),
    (None, "L_self_modules_layer1_modules_1_modules_bn1_parameters_weight_"),
    (None, "L_self_modules_layer1_modules_1_modules_bn2_buffers_running_mean_"),
    (None, "L_self_modules_layer1_modules_1_modules_bn2_buffers_running_var_"),
    (None, "L_self_modules_layer1_modules_1_modules_bn2_parameters_bias_"),
    (None, "L_self_modules_layer1_modules_1_modules_bn2_parameters_weight_"),
    (None, "L_self_modules_layer1_modules_1_modules_conv1_parameters_weight_"),
    (None, "L_self_modules_layer1_modules_1_modules_conv2_parameters_weight_"),
    (None, "L_self_modules_layer2_modules_0_modules_bn1_buffers_running_mean_"),
    (None, "L_self_modules_layer2_modules_0_modules_bn1_buffers_running_var_"),
    (None, "L_self_modules_layer2_modules_0_modules_bn1_parameters_bias_"),
    (None, "L_self_modules_layer2_modules_0_modules_bn1_parameters_weight_"),
    (None, "L_self_modules_layer2_modules_0_modules_bn2_buffers_running_mean_"),
    (None, "L_self_modules_layer2_modules_0_modules_bn2_buffers_running_var_"),
    (None, "L_self_modules_layer2_modules_0_modules_bn2_parameters_bias_"),
    (None, "L_self_modules_layer2_modules_0_modules_bn2_parameters_weight_"),
    (None, "L_self_modules_layer2_modules_0_modules_conv1_parameters_weight_"),
    (None, "L_self_modules_layer2_modules_0_modules_conv2_parameters_weight_"),
    (
        None,
        "L_self_modules_layer2_modules_0_modules_downsample_modules_0_parameters_weight_",
    ),
    (
        None,
        "L_self_modules_layer2_modules_0_modules_downsample_modules_1_buffers_running_mean_",
    ),
    (
        None,
        "L_self_modules_layer2_modules_0_modules_downsample_modules_1_buffers_running_var_",
    ),
    (
        None,
        "L_self_modules_layer2_modules_0_modules_downsample_modules_1_parameters_bias_",
    ),
    (
        None,
        "L_self_modules_layer2_modules_0_modules_downsample_modules_1_parameters_weight_",
    ),
    (None, "L_self_modules_layer2_modules_1_modules_bn1_buffers_running_mean_"),
    (None, "L_self_modules_layer2_modules_1_modules_bn1_buffers_running_var_"),
    (None, "L_self_modules_layer2_modules_1_modules_bn1_parameters_bias_"),
    (None, "L_self_modules_layer2_modules_1_modules_bn1_parameters_weight_"),
    (None, "L_self_modules_layer2_modules_1_modules_bn2_buffers_running_mean_"),
    (None, "L_self_modules_layer2_modules_1_modules_bn2_buffers_running_var_"),
    (None, "L_self_modules_layer2_modules_1_modules_bn2_parameters_bias_"),
    (None, "L_self_modules_layer2_modules_1_modules_bn2_parameters_weight_"),
    (None, "L_self_modules_layer2_modules_1_modules_conv1_parameters_weight_"),
    (None, "L_self_modules_layer2_modules_1_modules_conv2_parameters_weight_"),
    (None, "L_self_modules_layer3_modules_0_modules_bn1_buffers_running_mean_"),
    (None, "L_self_modules_layer3_modules_0_modules_bn1_buffers_running_var_"),
    (None, "L_self_modules_layer3_modules_0_modules_bn1_parameters_bias_"),
    (None, "L_self_modules_layer3_modules_0_modules_bn1_parameters_weight_"),
    (None, "L_self_modules_layer3_modules_0_modules_bn2_buffers_running_mean_"),
    (None, "L_self_modules_layer3_modules_0_modules_bn2_buffers_running_var_"),
    (None, "L_self_modules_layer3_modules_0_modules_bn2_parameters_bias_"),
    (None, "L_self_modules_layer3_modules_0_modules_bn2_parameters_weight_"),
    (None, "L_self_modules_layer3_modules_0_modules_conv1_parameters_weight_"),
    (None, "L_self_modules_layer3_modules_0_modules_conv2_parameters_weight_"),
    (
        None,
        "L_self_modules_layer3_modules_0_modules_downsample_modules_0_parameters_weight_",
    ),
    (
        None,
        "L_self_modules_layer3_modules_0_modules_downsample_modules_1_buffers_running_mean_",
    ),
    (
        None,
        "L_self_modules_layer3_modules_0_modules_downsample_modules_1_buffers_running_var_",
    ),
    (
        None,
        "L_self_modules_layer3_modules_0_modules_downsample_modules_1_parameters_bias_",
    ),
    (
        None,
        "L_self_modules_layer3_modules_0_modules_downsample_modules_1_parameters_weight_",
    ),
    (None, "L_self_modules_layer3_modules_1_modules_bn1_buffers_running_mean_"),
    (None, "L_self_modules_layer3_modules_1_modules_bn1_buffers_running_var_"),
    (None, "L_self_modules_layer3_modules_1_modules_bn1_parameters_bias_"),
    (None, "L_self_modules_layer3_modules_1_modules_bn1_parameters_weight_"),
    (None, "L_self_modules_layer3_modules_1_modules_bn2_buffers_running_mean_"),
    (None, "L_self_modules_layer3_modules_1_modules_bn2_buffers_running_var_"),
    (None, "L_self_modules_layer3_modules_1_modules_bn2_parameters_bias_"),
    (None, "L_self_modules_layer3_modules_1_modules_bn2_parameters_weight_"),
    (None, "L_self_modules_layer3_modules_1_modules_conv1_parameters_weight_"),
    (None, "L_self_modules_layer3_modules_1_modules_conv2_parameters_weight_"),
    (None, "L_self_modules_layer4_modules_0_modules_bn1_buffers_running_mean_"),
    (None, "L_self_modules_layer4_modules_0_modules_bn1_buffers_running_var_"),
    (None, "L_self_modules_layer4_modules_0_modules_bn1_parameters_bias_"),
    (None, "L_self_modules_layer4_modules_0_modules_bn1_parameters_weight_"),
    (None, "L_self_modules_layer4_modules_0_modules_bn2_buffers_running_mean_"),
    (None, "L_self_modules_layer4_modules_0_modules_bn2_buffers_running_var_"),
    (None, "L_self_modules_layer4_modules_0_modules_bn2_parameters_bias_"),
    (None, "L_self_modules_layer4_modules_0_modules_bn2_parameters_weight_"),
    (None, "L_self_modules_layer4_modules_0_modules_conv1_parameters_weight_"),
    (None, "L_self_modules_layer4_modules_0_modules_conv2_parameters_weight_"),
    (
        None,
        "L_self_modules_layer4_modules_0_modules_downsample_modules_0_parameters_weight_",
    ),
    (
        None,
        "L_self_modules_layer4_modules_0_modules_downsample_modules_1_buffers_running_mean_",
    ),
    (
        None,
        "L_self_modules_layer4_modules_0_modules_downsample_modules_1_buffers_running_var_",
    ),
    (
        None,
        "L_self_modules_layer4_modules_0_modules_downsample_modules_1_parameters_bias_",
    ),
    (
        None,
        "L_self_modules_layer4_modules_0_modules_downsample_modules_1_parameters_weight_",
    ),
    (None, "L_self_modules_layer4_modules_1_modules_bn1_buffers_running_mean_"),
    (None, "L_self_modules_layer4_modules_1_modules_bn1_buffers_running_var_"),
    (None, "L_self_modules_layer4_modules_1_modules_bn1_parameters_bias_"),
    (None, "L_self_modules_layer4_modules_1_modules_bn1_parameters_weight_"),
    (None, "L_self_modules_layer4_modules_1_modules_bn2_buffers_running_mean_"),
    (None, "L_self_modules_layer4_modules_1_modules_bn2_buffers_running_var_"),
    (None, "L_self_modules_layer4_modules_1_modules_bn2_parameters_bias_"),
    (None, "L_self_modules_layer4_modules_1_modules_bn2_parameters_weight_"),
    (None, "L_self_modules_layer4_modules_1_modules_conv1_parameters_weight_"),
    (None, "L_self_modules_layer4_modules_1_modules_conv2_parameters_weight_"),
    (None, "L_x_"),
    (None, "s1"),
]

How to generate

#!/bin/bash

GRAPH_NET_ROOT=$(python3 -c "import graph_net; import os; print(
os.path.dirname(graph_net.__file__))")

# input model path
MODEL_NAME=resnet18
MODEL_PATH_IN_SAMPLES=/timm/$MODEL_NAME
config_json_str=$(cat <<EOF
{
    "handler_path": "$GRAPH_NET_ROOT/constraint_util.py",
    "handler_class_name": "UpdateInputTensorConstraints",
    "handler_config": {
        "data_input_predicator_filepath": "$GRAPH_NET_ROOT/torch/constraint_util.py",
        "data_input_predicator_class_name": "NaiveDataInputPredicator",
        "model_runnable_predicator_filepath": "$GRAPH_NET_ROOT/torch/constraint_util.py",
        "model_runnable_predicator_class_name": "ModelRunnablePredicator"
    }
}
EOF
)
CONFIG=$(echo $config_json_str | base64 -w 0)

python3 -m graph_net.model_path_handler --model-path $GRAPH_NET_ROOT/../samples/$MODEL_PATH_IN_SAMPLES --handler-config=$CONFIG

todo works

  1. Generate more reified typical dimensions.
  2. Implement mult-shape feature.

lixinqi added 30 commits July 31, 2025 08:23
@paddle-bot
Copy link

paddle-bot bot commented Nov 22, 2025

Thanks for your contribution!

@lixinqi lixinqi merged commit 32d68ab into PaddlePaddle:develop Nov 22, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant