diff --git a/graph_net/tests/test_squeezenet1_1_extract.py b/graph_net/tests/test_squeezenet1_1_extract.py new file mode 100644 index 000000000..2280d03e0 --- /dev/null +++ b/graph_net/tests/test_squeezenet1_1_extract.py @@ -0,0 +1,41 @@ +import paddle +import os +import json +from paddle.vision.models import squeezenet1_1 + + +def extract_squeezenet(): + # 1. Environment setup + os.environ["FLAGS_enable_pir_api"] = "1" + paddle.enable_static() + + # 2. Capture computation graph + main_program = paddle.static.Program() + with paddle.static.program_guard(main_program): + inputs = paddle.static.data( + name="image", shape=[1, 3, 224, 224], dtype="float32" + ) + model = squeezenet1_1(pretrained=False) + model(inputs) + + # 3. Get absolute save path + current_file_path = os.path.abspath(__file__) + project_root = os.path.dirname(os.path.dirname(os.path.dirname(current_file_path))) + target_dir = os.path.join(project_root, "paddle_samples/PaddleX/squeezenet1_1") + save_path = os.path.join(target_dir, "graph_net.json") + + # 4. Standardize format: Convert program to a valid JSON string + # We wrap it in a dictionary to ensure valid JSON structure with double quotes + program_content = str(main_program) + json_data = {"protocol": "PIR", "program_desc": program_content} + + # 5. Write to file using json.dump (this enforces double quotes for keys) + os.makedirs(target_dir, exist_ok=True) + with open(save_path, "w") as f: + json.dump(json_data, f, indent=4) + + print(f"Extraction successful! Standard JSON generated at: {save_path}") + + +if __name__ == "__main__": + extract_squeezenet() diff --git a/paddle_samples/PaddleX/squeezenet1_1/__init__.py b/paddle_samples/PaddleX/squeezenet1_1/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/paddle_samples/PaddleX/squeezenet1_1/graph_hash.txt b/paddle_samples/PaddleX/squeezenet1_1/graph_hash.txt new file mode 100644 index 000000000..18b6e5171 --- /dev/null +++ b/paddle_samples/PaddleX/squeezenet1_1/graph_hash.txt @@ -0,0 +1 @@ +a87bc38868b688b562b67634fb432eab7051fff838290f80ec278d02c9391a80 \ No newline at end of file diff --git a/paddle_samples/PaddleX/squeezenet1_1/graph_net.json b/paddle_samples/PaddleX/squeezenet1_1/graph_net.json new file mode 100644 index 000000000..6b77276be --- /dev/null +++ b/paddle_samples/PaddleX/squeezenet1_1/graph_net.json @@ -0,0 +1,4 @@ +{ + "protocol": "PIR", + "program_desc": "{\n (%0) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_25.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<1000xf32>\n (%1) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_25.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<1000x512x1x1xf32>\n (%2) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_24.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<256xf32>\n (%3) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_24.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<256x64x3x3xf32>\n (%4) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_23.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<256xf32>\n (%5) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_23.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<256x64x1x1xf32>\n (%6) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_22.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64xf32>\n (%7) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_22.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64x512x1x1xf32>\n (%8) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_21.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<256xf32>\n (%9) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_21.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<256x64x3x3xf32>\n (%10) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_20.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<256xf32>\n (%11) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_20.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<256x64x1x1xf32>\n (%12) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_19.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64xf32>\n (%13) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_19.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64x384x1x1xf32>\n (%14) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_18.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<192xf32>\n (%15) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_18.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<192x48x3x3xf32>\n (%16) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_17.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<192xf32>\n (%17) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_17.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<192x48x1x1xf32>\n (%18) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_16.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<48xf32>\n (%19) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_16.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<48x384x1x1xf32>\n (%20) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_15.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<192xf32>\n (%21) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_15.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<192x48x3x3xf32>\n (%22) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_14.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<192xf32>\n (%23) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_14.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<192x48x1x1xf32>\n (%24) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_13.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<48xf32>\n (%25) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_13.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<48x256x1x1xf32>\n (%26) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_12.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<128xf32>\n (%27) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_12.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<128x32x3x3xf32>\n (%28) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_11.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<128xf32>\n (%29) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_11.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<128x32x1x1xf32>\n (%30) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_10.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<32xf32>\n (%31) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_10.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<32x256x1x1xf32>\n (%32) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_9.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<128xf32>\n (%33) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_9.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<128x32x3x3xf32>\n (%34) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_8.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<128xf32>\n (%35) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_8.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<128x32x1x1xf32>\n (%36) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_7.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<32xf32>\n (%37) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_7.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<32x128x1x1xf32>\n (%38) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_6.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64xf32>\n (%39) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_6.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64x16x3x3xf32>\n (%40) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_5.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64xf32>\n (%41) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_5.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64x16x1x1xf32>\n (%42) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_4.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<16xf32>\n (%43) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_4.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<16x128x1x1xf32>\n (%44) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_3.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64xf32>\n (%45) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_3.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64x16x3x3xf32>\n (%46) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_2.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64xf32>\n (%47) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_2.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64x16x1x1xf32>\n (%48) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_1.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<16xf32>\n (%49) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_1.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<16x64x1x1xf32>\n (%50) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_0.b_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64xf32>\n (%51) = \"builtin.parameter\" () {is_distributed:[false],is_parameter:[true],need_clip:[true],parameter_name:\"conv2d_0.w_0\",persistable:[true],stop_gradient:[false],trainable:[true]} : () -> tensor<64x3x3x3xf32>\n (%52) = \"pd_op.data\" () {dtype:float32,name:\"image\",place:Place(undefined:0),shape:[1,3,224,224],stop_gradient:[true]} : () -> tensor<1x3x224x224xf32>\n (%53) = \"pd_op.conv2d\" (%52, %51) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[1,1],stop_gradient:[false],strides:[2,2],struct_name:\"/SqueezeNet/Conv2D/\"} : (tensor<1x3x224x224xf32>, tensor<64x3x3x3xf32>) -> tensor<1x64x112x112xf32>\n (%54) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%55) = \"pd_op.reshape\" (%50, %54) {stop_gradient:[false],struct_name:\"/SqueezeNet/Conv2D/\"} : (tensor<64xf32>, tensor<4xi64>) -> tensor<1x64x1x1xf32>\n (%56) = \"pd_op.add\" (%53, %55) {stop_gradient:[false],struct_name:\"/SqueezeNet/Conv2D/\"} : (tensor<1x64x112x112xf32>, tensor<1x64x1x1xf32>) -> tensor<1x64x112x112xf32>\n (%57) = \"pd_op.relu\" (%56) {stop_gradient:[false],struct_name:\"/SqueezeNet/\"} : (tensor<1x64x112x112xf32>) -> tensor<1x64x112x112xf32>\n (%58) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MaxPool2D/\",value:[3,3]} : () -> tensor<2xi64>\n (%59) = \"pd_op.pool2d\" (%57, %58) {adaptive:false,ceil_mode:false,data_format:\"NCHW\",exclusive:true,global_pooling:false,padding_algorithm:\"EXPLICIT\",paddings:[0,0],pooling_type:\"max\",stop_gradient:[false],strides:[2,2],struct_name:\"/SqueezeNet/MaxPool2D/\"} : (tensor<1x64x112x112xf32>, tensor<2xi64>) -> tensor<1x64x55x55xf32>\n (%60) = \"pd_op.conv2d\" (%59, %49) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv/Conv2D/\"} : (tensor<1x64x55x55xf32>, tensor<16x64x1x1xf32>) -> tensor<1x16x55x55xf32>\n (%61) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%62) = \"pd_op.reshape\" (%48, %61) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv/Conv2D/\"} : (tensor<16xf32>, tensor<4xi64>) -> tensor<1x16x1x1xf32>\n (%63) = \"pd_op.add\" (%60, %62) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv/Conv2D/\"} : (tensor<1x16x55x55xf32>, tensor<1x16x1x1xf32>) -> tensor<1x16x55x55xf32>\n (%64) = \"pd_op.relu\" (%63) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv/\"} : (tensor<1x16x55x55xf32>) -> tensor<1x16x55x55xf32>\n (%65) = \"pd_op.conv2d\" (%64, %47) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv_1/Conv2D/\"} : (tensor<1x16x55x55xf32>, tensor<64x16x1x1xf32>) -> tensor<1x64x55x55xf32>\n (%66) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv_1/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%67) = \"pd_op.reshape\" (%46, %66) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv_1/Conv2D/\"} : (tensor<64xf32>, tensor<4xi64>) -> tensor<1x64x1x1xf32>\n (%68) = \"pd_op.add\" (%65, %67) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv_1/Conv2D/\"} : (tensor<1x64x55x55xf32>, tensor<1x64x1x1xf32>) -> tensor<1x64x55x55xf32>\n (%69) = \"pd_op.relu\" (%68) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv_1/\"} : (tensor<1x64x55x55xf32>) -> tensor<1x64x55x55xf32>\n (%70) = \"pd_op.conv2d\" (%64, %45) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[1,1],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv_2/Conv2D/\"} : (tensor<1x16x55x55xf32>, tensor<64x16x3x3xf32>) -> tensor<1x64x55x55xf32>\n (%71) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv_2/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%72) = \"pd_op.reshape\" (%44, %71) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv_2/Conv2D/\"} : (tensor<64xf32>, tensor<4xi64>) -> tensor<1x64x1x1xf32>\n (%73) = \"pd_op.add\" (%70, %72) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv_2/Conv2D/\"} : (tensor<1x64x55x55xf32>, tensor<1x64x1x1xf32>) -> tensor<1x64x55x55xf32>\n (%74) = \"pd_op.relu\" (%73) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire/MakeFireConv_2/\"} : (tensor<1x64x55x55xf32>) -> tensor<1x64x55x55xf32>\n (%75) = \"pd_op.full\" () {dtype:int32,place:Place(cpu),shape:[1],stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire/\",value:1} : () -> tensor<1xi32>\n (%76) = \"builtin.combine\" (%69, %74) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire/\"} : (tensor<1x64x55x55xf32>, tensor<1x64x55x55xf32>) -> vec[tensor<1x64x55x55xf32>,tensor<1x64x55x55xf32>]\n (%77) = \"pd_op.concat\" (%76, %75) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire/\"} : (vec[tensor<1x64x55x55xf32>,tensor<1x64x55x55xf32>], tensor<1xi32>) -> tensor<1x128x55x55xf32>\n (%78) = \"pd_op.conv2d\" (%77, %43) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv/Conv2D/\"} : (tensor<1x128x55x55xf32>, tensor<16x128x1x1xf32>) -> tensor<1x16x55x55xf32>\n (%79) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%80) = \"pd_op.reshape\" (%42, %79) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv/Conv2D/\"} : (tensor<16xf32>, tensor<4xi64>) -> tensor<1x16x1x1xf32>\n (%81) = \"pd_op.add\" (%78, %80) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv/Conv2D/\"} : (tensor<1x16x55x55xf32>, tensor<1x16x1x1xf32>) -> tensor<1x16x55x55xf32>\n (%82) = \"pd_op.relu\" (%81) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv/\"} : (tensor<1x16x55x55xf32>) -> tensor<1x16x55x55xf32>\n (%83) = \"pd_op.conv2d\" (%82, %41) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv_1/Conv2D/\"} : (tensor<1x16x55x55xf32>, tensor<64x16x1x1xf32>) -> tensor<1x64x55x55xf32>\n (%84) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv_1/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%85) = \"pd_op.reshape\" (%40, %84) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv_1/Conv2D/\"} : (tensor<64xf32>, tensor<4xi64>) -> tensor<1x64x1x1xf32>\n (%86) = \"pd_op.add\" (%83, %85) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv_1/Conv2D/\"} : (tensor<1x64x55x55xf32>, tensor<1x64x1x1xf32>) -> tensor<1x64x55x55xf32>\n (%87) = \"pd_op.relu\" (%86) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv_1/\"} : (tensor<1x64x55x55xf32>) -> tensor<1x64x55x55xf32>\n (%88) = \"pd_op.conv2d\" (%82, %39) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[1,1],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv_2/Conv2D/\"} : (tensor<1x16x55x55xf32>, tensor<64x16x3x3xf32>) -> tensor<1x64x55x55xf32>\n (%89) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv_2/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%90) = \"pd_op.reshape\" (%38, %89) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv_2/Conv2D/\"} : (tensor<64xf32>, tensor<4xi64>) -> tensor<1x64x1x1xf32>\n (%91) = \"pd_op.add\" (%88, %90) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv_2/Conv2D/\"} : (tensor<1x64x55x55xf32>, tensor<1x64x1x1xf32>) -> tensor<1x64x55x55xf32>\n (%92) = \"pd_op.relu\" (%91) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_1/MakeFireConv_2/\"} : (tensor<1x64x55x55xf32>) -> tensor<1x64x55x55xf32>\n (%93) = \"pd_op.full\" () {dtype:int32,place:Place(cpu),shape:[1],stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_1/\",value:1} : () -> tensor<1xi32>\n (%94) = \"builtin.combine\" (%87, %92) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_1/\"} : (tensor<1x64x55x55xf32>, tensor<1x64x55x55xf32>) -> vec[tensor<1x64x55x55xf32>,tensor<1x64x55x55xf32>]\n (%95) = \"pd_op.concat\" (%94, %93) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_1/\"} : (vec[tensor<1x64x55x55xf32>,tensor<1x64x55x55xf32>], tensor<1xi32>) -> tensor<1x128x55x55xf32>\n (%96) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MaxPool2D_1/\",value:[3,3]} : () -> tensor<2xi64>\n (%97) = \"pd_op.pool2d\" (%95, %96) {adaptive:false,ceil_mode:false,data_format:\"NCHW\",exclusive:true,global_pooling:false,padding_algorithm:\"EXPLICIT\",paddings:[0,0],pooling_type:\"max\",stop_gradient:[false],strides:[2,2],struct_name:\"/SqueezeNet/MaxPool2D_1/\"} : (tensor<1x128x55x55xf32>, tensor<2xi64>) -> tensor<1x128x27x27xf32>\n (%98) = \"pd_op.conv2d\" (%97, %37) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv/Conv2D/\"} : (tensor<1x128x27x27xf32>, tensor<32x128x1x1xf32>) -> tensor<1x32x27x27xf32>\n (%99) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%100) = \"pd_op.reshape\" (%36, %99) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv/Conv2D/\"} : (tensor<32xf32>, tensor<4xi64>) -> tensor<1x32x1x1xf32>\n (%101) = \"pd_op.add\" (%98, %100) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv/Conv2D/\"} : (tensor<1x32x27x27xf32>, tensor<1x32x1x1xf32>) -> tensor<1x32x27x27xf32>\n (%102) = \"pd_op.relu\" (%101) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv/\"} : (tensor<1x32x27x27xf32>) -> tensor<1x32x27x27xf32>\n (%103) = \"pd_op.conv2d\" (%102, %35) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv_1/Conv2D/\"} : (tensor<1x32x27x27xf32>, tensor<128x32x1x1xf32>) -> tensor<1x128x27x27xf32>\n (%104) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv_1/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%105) = \"pd_op.reshape\" (%34, %104) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv_1/Conv2D/\"} : (tensor<128xf32>, tensor<4xi64>) -> tensor<1x128x1x1xf32>\n (%106) = \"pd_op.add\" (%103, %105) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv_1/Conv2D/\"} : (tensor<1x128x27x27xf32>, tensor<1x128x1x1xf32>) -> tensor<1x128x27x27xf32>\n (%107) = \"pd_op.relu\" (%106) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv_1/\"} : (tensor<1x128x27x27xf32>) -> tensor<1x128x27x27xf32>\n (%108) = \"pd_op.conv2d\" (%102, %33) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[1,1],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv_2/Conv2D/\"} : (tensor<1x32x27x27xf32>, tensor<128x32x3x3xf32>) -> tensor<1x128x27x27xf32>\n (%109) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv_2/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%110) = \"pd_op.reshape\" (%32, %109) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv_2/Conv2D/\"} : (tensor<128xf32>, tensor<4xi64>) -> tensor<1x128x1x1xf32>\n (%111) = \"pd_op.add\" (%108, %110) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv_2/Conv2D/\"} : (tensor<1x128x27x27xf32>, tensor<1x128x1x1xf32>) -> tensor<1x128x27x27xf32>\n (%112) = \"pd_op.relu\" (%111) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_2/MakeFireConv_2/\"} : (tensor<1x128x27x27xf32>) -> tensor<1x128x27x27xf32>\n (%113) = \"pd_op.full\" () {dtype:int32,place:Place(cpu),shape:[1],stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_2/\",value:1} : () -> tensor<1xi32>\n (%114) = \"builtin.combine\" (%107, %112) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_2/\"} : (tensor<1x128x27x27xf32>, tensor<1x128x27x27xf32>) -> vec[tensor<1x128x27x27xf32>,tensor<1x128x27x27xf32>]\n (%115) = \"pd_op.concat\" (%114, %113) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_2/\"} : (vec[tensor<1x128x27x27xf32>,tensor<1x128x27x27xf32>], tensor<1xi32>) -> tensor<1x256x27x27xf32>\n (%116) = \"pd_op.conv2d\" (%115, %31) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv/Conv2D/\"} : (tensor<1x256x27x27xf32>, tensor<32x256x1x1xf32>) -> tensor<1x32x27x27xf32>\n (%117) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%118) = \"pd_op.reshape\" (%30, %117) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv/Conv2D/\"} : (tensor<32xf32>, tensor<4xi64>) -> tensor<1x32x1x1xf32>\n (%119) = \"pd_op.add\" (%116, %118) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv/Conv2D/\"} : (tensor<1x32x27x27xf32>, tensor<1x32x1x1xf32>) -> tensor<1x32x27x27xf32>\n (%120) = \"pd_op.relu\" (%119) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv/\"} : (tensor<1x32x27x27xf32>) -> tensor<1x32x27x27xf32>\n (%121) = \"pd_op.conv2d\" (%120, %29) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv_1/Conv2D/\"} : (tensor<1x32x27x27xf32>, tensor<128x32x1x1xf32>) -> tensor<1x128x27x27xf32>\n (%122) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv_1/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%123) = \"pd_op.reshape\" (%28, %122) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv_1/Conv2D/\"} : (tensor<128xf32>, tensor<4xi64>) -> tensor<1x128x1x1xf32>\n (%124) = \"pd_op.add\" (%121, %123) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv_1/Conv2D/\"} : (tensor<1x128x27x27xf32>, tensor<1x128x1x1xf32>) -> tensor<1x128x27x27xf32>\n (%125) = \"pd_op.relu\" (%124) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv_1/\"} : (tensor<1x128x27x27xf32>) -> tensor<1x128x27x27xf32>\n (%126) = \"pd_op.conv2d\" (%120, %27) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[1,1],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv_2/Conv2D/\"} : (tensor<1x32x27x27xf32>, tensor<128x32x3x3xf32>) -> tensor<1x128x27x27xf32>\n (%127) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv_2/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%128) = \"pd_op.reshape\" (%26, %127) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv_2/Conv2D/\"} : (tensor<128xf32>, tensor<4xi64>) -> tensor<1x128x1x1xf32>\n (%129) = \"pd_op.add\" (%126, %128) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv_2/Conv2D/\"} : (tensor<1x128x27x27xf32>, tensor<1x128x1x1xf32>) -> tensor<1x128x27x27xf32>\n (%130) = \"pd_op.relu\" (%129) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_3/MakeFireConv_2/\"} : (tensor<1x128x27x27xf32>) -> tensor<1x128x27x27xf32>\n (%131) = \"pd_op.full\" () {dtype:int32,place:Place(cpu),shape:[1],stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_3/\",value:1} : () -> tensor<1xi32>\n (%132) = \"builtin.combine\" (%125, %130) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_3/\"} : (tensor<1x128x27x27xf32>, tensor<1x128x27x27xf32>) -> vec[tensor<1x128x27x27xf32>,tensor<1x128x27x27xf32>]\n (%133) = \"pd_op.concat\" (%132, %131) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_3/\"} : (vec[tensor<1x128x27x27xf32>,tensor<1x128x27x27xf32>], tensor<1xi32>) -> tensor<1x256x27x27xf32>\n (%134) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MaxPool2D_2/\",value:[3,3]} : () -> tensor<2xi64>\n (%135) = \"pd_op.pool2d\" (%133, %134) {adaptive:false,ceil_mode:false,data_format:\"NCHW\",exclusive:true,global_pooling:false,padding_algorithm:\"EXPLICIT\",paddings:[0,0],pooling_type:\"max\",stop_gradient:[false],strides:[2,2],struct_name:\"/SqueezeNet/MaxPool2D_2/\"} : (tensor<1x256x27x27xf32>, tensor<2xi64>) -> tensor<1x256x13x13xf32>\n (%136) = \"pd_op.conv2d\" (%135, %25) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv/Conv2D/\"} : (tensor<1x256x13x13xf32>, tensor<48x256x1x1xf32>) -> tensor<1x48x13x13xf32>\n (%137) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%138) = \"pd_op.reshape\" (%24, %137) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv/Conv2D/\"} : (tensor<48xf32>, tensor<4xi64>) -> tensor<1x48x1x1xf32>\n (%139) = \"pd_op.add\" (%136, %138) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv/Conv2D/\"} : (tensor<1x48x13x13xf32>, tensor<1x48x1x1xf32>) -> tensor<1x48x13x13xf32>\n (%140) = \"pd_op.relu\" (%139) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv/\"} : (tensor<1x48x13x13xf32>) -> tensor<1x48x13x13xf32>\n (%141) = \"pd_op.conv2d\" (%140, %23) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv_1/Conv2D/\"} : (tensor<1x48x13x13xf32>, tensor<192x48x1x1xf32>) -> tensor<1x192x13x13xf32>\n (%142) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv_1/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%143) = \"pd_op.reshape\" (%22, %142) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv_1/Conv2D/\"} : (tensor<192xf32>, tensor<4xi64>) -> tensor<1x192x1x1xf32>\n (%144) = \"pd_op.add\" (%141, %143) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv_1/Conv2D/\"} : (tensor<1x192x13x13xf32>, tensor<1x192x1x1xf32>) -> tensor<1x192x13x13xf32>\n (%145) = \"pd_op.relu\" (%144) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv_1/\"} : (tensor<1x192x13x13xf32>) -> tensor<1x192x13x13xf32>\n (%146) = \"pd_op.conv2d\" (%140, %21) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[1,1],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv_2/Conv2D/\"} : (tensor<1x48x13x13xf32>, tensor<192x48x3x3xf32>) -> tensor<1x192x13x13xf32>\n (%147) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv_2/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%148) = \"pd_op.reshape\" (%20, %147) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv_2/Conv2D/\"} : (tensor<192xf32>, tensor<4xi64>) -> tensor<1x192x1x1xf32>\n (%149) = \"pd_op.add\" (%146, %148) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv_2/Conv2D/\"} : (tensor<1x192x13x13xf32>, tensor<1x192x1x1xf32>) -> tensor<1x192x13x13xf32>\n (%150) = \"pd_op.relu\" (%149) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_4/MakeFireConv_2/\"} : (tensor<1x192x13x13xf32>) -> tensor<1x192x13x13xf32>\n (%151) = \"pd_op.full\" () {dtype:int32,place:Place(cpu),shape:[1],stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_4/\",value:1} : () -> tensor<1xi32>\n (%152) = \"builtin.combine\" (%145, %150) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_4/\"} : (tensor<1x192x13x13xf32>, tensor<1x192x13x13xf32>) -> vec[tensor<1x192x13x13xf32>,tensor<1x192x13x13xf32>]\n (%153) = \"pd_op.concat\" (%152, %151) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_4/\"} : (vec[tensor<1x192x13x13xf32>,tensor<1x192x13x13xf32>], tensor<1xi32>) -> tensor<1x384x13x13xf32>\n (%154) = \"pd_op.conv2d\" (%153, %19) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv/Conv2D/\"} : (tensor<1x384x13x13xf32>, tensor<48x384x1x1xf32>) -> tensor<1x48x13x13xf32>\n (%155) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%156) = \"pd_op.reshape\" (%18, %155) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv/Conv2D/\"} : (tensor<48xf32>, tensor<4xi64>) -> tensor<1x48x1x1xf32>\n (%157) = \"pd_op.add\" (%154, %156) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv/Conv2D/\"} : (tensor<1x48x13x13xf32>, tensor<1x48x1x1xf32>) -> tensor<1x48x13x13xf32>\n (%158) = \"pd_op.relu\" (%157) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv/\"} : (tensor<1x48x13x13xf32>) -> tensor<1x48x13x13xf32>\n (%159) = \"pd_op.conv2d\" (%158, %17) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv_1/Conv2D/\"} : (tensor<1x48x13x13xf32>, tensor<192x48x1x1xf32>) -> tensor<1x192x13x13xf32>\n (%160) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv_1/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%161) = \"pd_op.reshape\" (%16, %160) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv_1/Conv2D/\"} : (tensor<192xf32>, tensor<4xi64>) -> tensor<1x192x1x1xf32>\n (%162) = \"pd_op.add\" (%159, %161) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv_1/Conv2D/\"} : (tensor<1x192x13x13xf32>, tensor<1x192x1x1xf32>) -> tensor<1x192x13x13xf32>\n (%163) = \"pd_op.relu\" (%162) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv_1/\"} : (tensor<1x192x13x13xf32>) -> tensor<1x192x13x13xf32>\n (%164) = \"pd_op.conv2d\" (%158, %15) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[1,1],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv_2/Conv2D/\"} : (tensor<1x48x13x13xf32>, tensor<192x48x3x3xf32>) -> tensor<1x192x13x13xf32>\n (%165) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv_2/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%166) = \"pd_op.reshape\" (%14, %165) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv_2/Conv2D/\"} : (tensor<192xf32>, tensor<4xi64>) -> tensor<1x192x1x1xf32>\n (%167) = \"pd_op.add\" (%164, %166) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv_2/Conv2D/\"} : (tensor<1x192x13x13xf32>, tensor<1x192x1x1xf32>) -> tensor<1x192x13x13xf32>\n (%168) = \"pd_op.relu\" (%167) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_5/MakeFireConv_2/\"} : (tensor<1x192x13x13xf32>) -> tensor<1x192x13x13xf32>\n (%169) = \"pd_op.full\" () {dtype:int32,place:Place(cpu),shape:[1],stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_5/\",value:1} : () -> tensor<1xi32>\n (%170) = \"builtin.combine\" (%163, %168) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_5/\"} : (tensor<1x192x13x13xf32>, tensor<1x192x13x13xf32>) -> vec[tensor<1x192x13x13xf32>,tensor<1x192x13x13xf32>]\n (%171) = \"pd_op.concat\" (%170, %169) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_5/\"} : (vec[tensor<1x192x13x13xf32>,tensor<1x192x13x13xf32>], tensor<1xi32>) -> tensor<1x384x13x13xf32>\n (%172) = \"pd_op.conv2d\" (%171, %13) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv/Conv2D/\"} : (tensor<1x384x13x13xf32>, tensor<64x384x1x1xf32>) -> tensor<1x64x13x13xf32>\n (%173) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%174) = \"pd_op.reshape\" (%12, %173) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv/Conv2D/\"} : (tensor<64xf32>, tensor<4xi64>) -> tensor<1x64x1x1xf32>\n (%175) = \"pd_op.add\" (%172, %174) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv/Conv2D/\"} : (tensor<1x64x13x13xf32>, tensor<1x64x1x1xf32>) -> tensor<1x64x13x13xf32>\n (%176) = \"pd_op.relu\" (%175) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv/\"} : (tensor<1x64x13x13xf32>) -> tensor<1x64x13x13xf32>\n (%177) = \"pd_op.conv2d\" (%176, %11) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv_1/Conv2D/\"} : (tensor<1x64x13x13xf32>, tensor<256x64x1x1xf32>) -> tensor<1x256x13x13xf32>\n (%178) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv_1/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%179) = \"pd_op.reshape\" (%10, %178) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv_1/Conv2D/\"} : (tensor<256xf32>, tensor<4xi64>) -> tensor<1x256x1x1xf32>\n (%180) = \"pd_op.add\" (%177, %179) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv_1/Conv2D/\"} : (tensor<1x256x13x13xf32>, tensor<1x256x1x1xf32>) -> tensor<1x256x13x13xf32>\n (%181) = \"pd_op.relu\" (%180) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv_1/\"} : (tensor<1x256x13x13xf32>) -> tensor<1x256x13x13xf32>\n (%182) = \"pd_op.conv2d\" (%176, %9) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[1,1],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv_2/Conv2D/\"} : (tensor<1x64x13x13xf32>, tensor<256x64x3x3xf32>) -> tensor<1x256x13x13xf32>\n (%183) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv_2/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%184) = \"pd_op.reshape\" (%8, %183) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv_2/Conv2D/\"} : (tensor<256xf32>, tensor<4xi64>) -> tensor<1x256x1x1xf32>\n (%185) = \"pd_op.add\" (%182, %184) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv_2/Conv2D/\"} : (tensor<1x256x13x13xf32>, tensor<1x256x1x1xf32>) -> tensor<1x256x13x13xf32>\n (%186) = \"pd_op.relu\" (%185) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_6/MakeFireConv_2/\"} : (tensor<1x256x13x13xf32>) -> tensor<1x256x13x13xf32>\n (%187) = \"pd_op.full\" () {dtype:int32,place:Place(cpu),shape:[1],stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_6/\",value:1} : () -> tensor<1xi32>\n (%188) = \"builtin.combine\" (%181, %186) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_6/\"} : (tensor<1x256x13x13xf32>, tensor<1x256x13x13xf32>) -> vec[tensor<1x256x13x13xf32>,tensor<1x256x13x13xf32>]\n (%189) = \"pd_op.concat\" (%188, %187) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_6/\"} : (vec[tensor<1x256x13x13xf32>,tensor<1x256x13x13xf32>], tensor<1xi32>) -> tensor<1x512x13x13xf32>\n (%190) = \"pd_op.conv2d\" (%189, %7) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv/Conv2D/\"} : (tensor<1x512x13x13xf32>, tensor<64x512x1x1xf32>) -> tensor<1x64x13x13xf32>\n (%191) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%192) = \"pd_op.reshape\" (%6, %191) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv/Conv2D/\"} : (tensor<64xf32>, tensor<4xi64>) -> tensor<1x64x1x1xf32>\n (%193) = \"pd_op.add\" (%190, %192) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv/Conv2D/\"} : (tensor<1x64x13x13xf32>, tensor<1x64x1x1xf32>) -> tensor<1x64x13x13xf32>\n (%194) = \"pd_op.relu\" (%193) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv/\"} : (tensor<1x64x13x13xf32>) -> tensor<1x64x13x13xf32>\n (%195) = \"pd_op.conv2d\" (%194, %5) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv_1/Conv2D/\"} : (tensor<1x64x13x13xf32>, tensor<256x64x1x1xf32>) -> tensor<1x256x13x13xf32>\n (%196) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv_1/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%197) = \"pd_op.reshape\" (%4, %196) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv_1/Conv2D/\"} : (tensor<256xf32>, tensor<4xi64>) -> tensor<1x256x1x1xf32>\n (%198) = \"pd_op.add\" (%195, %197) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv_1/Conv2D/\"} : (tensor<1x256x13x13xf32>, tensor<1x256x1x1xf32>) -> tensor<1x256x13x13xf32>\n (%199) = \"pd_op.relu\" (%198) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv_1/\"} : (tensor<1x256x13x13xf32>) -> tensor<1x256x13x13xf32>\n (%200) = \"pd_op.conv2d\" (%194, %3) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[1,1],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv_2/Conv2D/\"} : (tensor<1x64x13x13xf32>, tensor<256x64x3x3xf32>) -> tensor<1x256x13x13xf32>\n (%201) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv_2/Conv2D/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%202) = \"pd_op.reshape\" (%2, %201) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv_2/Conv2D/\"} : (tensor<256xf32>, tensor<4xi64>) -> tensor<1x256x1x1xf32>\n (%203) = \"pd_op.add\" (%200, %202) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv_2/Conv2D/\"} : (tensor<1x256x13x13xf32>, tensor<1x256x1x1xf32>) -> tensor<1x256x13x13xf32>\n (%204) = \"pd_op.relu\" (%203) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_7/MakeFireConv_2/\"} : (tensor<1x256x13x13xf32>) -> tensor<1x256x13x13xf32>\n (%205) = \"pd_op.full\" () {dtype:int32,place:Place(cpu),shape:[1],stop_gradient:[true],struct_name:\"/SqueezeNet/MakeFire_7/\",value:1} : () -> tensor<1xi32>\n (%206) = \"builtin.combine\" (%199, %204) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_7/\"} : (tensor<1x256x13x13xf32>, tensor<1x256x13x13xf32>) -> vec[tensor<1x256x13x13xf32>,tensor<1x256x13x13xf32>]\n (%207) = \"pd_op.concat\" (%206, %205) {stop_gradient:[false],struct_name:\"/SqueezeNet/MakeFire_7/\"} : (vec[tensor<1x256x13x13xf32>,tensor<1x256x13x13xf32>], tensor<1xi32>) -> tensor<1x512x13x13xf32>\n (%208) = \"pd_op.full\" () {dtype:float32,place:Place(cpu),shape:[1],stop_gradient:[true],struct_name:\"/SqueezeNet/Dropout/\",value:0.5} : () -> tensor<1xf32>\n (%209, %210) = \"pd_op.dropout\" (%207, <>, %208) {fix_seed:false,is_test:false,mode:\"downgrade_in_infer\",seed:0,stop_gradient:[false,false],struct_name:\"/SqueezeNet/Dropout/\"} : (tensor<1x512x13x13xf32>, <>, tensor<1xf32>) -> tensor<1x512x13x13xf32>, tensor<1x512x13x13xu8>\n (%211) = \"pd_op.conv2d\" (%209, %1) {data_format:\"NCHW\",dilations:[1,1],groups:1,padding_algorithm:\"EXPLICIT\",paddings:[0,0],stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/Conv2D_1/\"} : (tensor<1x512x13x13xf32>, tensor<1000x512x1x1xf32>) -> tensor<1x1000x13x13xf32>\n (%212) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/Conv2D_1/\",value:[1,-1,1,1]} : () -> tensor<4xi64>\n (%213) = \"pd_op.reshape\" (%0, %212) {stop_gradient:[false],struct_name:\"/SqueezeNet/Conv2D_1/\"} : (tensor<1000xf32>, tensor<4xi64>) -> tensor<1x1000x1x1xf32>\n (%214) = \"pd_op.add\" (%211, %213) {stop_gradient:[false],struct_name:\"/SqueezeNet/Conv2D_1/\"} : (tensor<1x1000x13x13xf32>, tensor<1x1000x1x1xf32>) -> tensor<1x1000x13x13xf32>\n (%215) = \"pd_op.relu\" (%214) {stop_gradient:[false],struct_name:\"/SqueezeNet/\"} : (tensor<1x1000x13x13xf32>) -> tensor<1x1000x13x13xf32>\n (%216) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/AdaptiveAvgPool2D/\",value:[1,1]} : () -> tensor<2xi64>\n (%217) = \"pd_op.pool2d\" (%215, %216) {adaptive:true,ceil_mode:false,data_format:\"NCHW\",exclusive:true,global_pooling:false,padding_algorithm:\"EXPLICIT\",paddings:[0,0],pooling_type:\"avg\",stop_gradient:[false],strides:[1,1],struct_name:\"/SqueezeNet/AdaptiveAvgPool2D/\"} : (tensor<1x1000x13x13xf32>, tensor<2xi64>) -> tensor<1x1000x1x1xf32>\n (%218) = \"pd_op.full_int_array\" () {dtype:int64,place:Place(cpu),stop_gradient:[true],struct_name:\"/SqueezeNet/\",value:[2,3]} : () -> tensor<2xi64>\n (%219) = \"pd_op.squeeze\" (%217, %218) {stop_gradient:[false],struct_name:\"/SqueezeNet/\"} : (tensor<1x1000x1x1xf32>, tensor<2xi64>) -> tensor<1x1000xf32>\n}\n" +} \ No newline at end of file diff --git a/paddle_samples/PaddleX/squeezenet1_1/input_meta.py b/paddle_samples/PaddleX/squeezenet1_1/input_meta.py new file mode 100644 index 000000000..d41e0d9b7 --- /dev/null +++ b/paddle_samples/PaddleX/squeezenet1_1/input_meta.py @@ -0,0 +1,13 @@ +# Input metadata for SqueezeNet 1.1 + + +# This follows the style of existing samples in the repo +class Program_input_tensor_image: + name = "image" + shape = [1, 3, 224, 224] + dtype = "float32" + data = None + + +# The validation script needs this dict to match with model.forward(**state_dict) +input_meta = {"image": {"shape": [1, 3, 224, 224], "dtype": "float32"}} diff --git a/paddle_samples/PaddleX/squeezenet1_1/model.py b/paddle_samples/PaddleX/squeezenet1_1/model.py new file mode 100644 index 000000000..946875a0d --- /dev/null +++ b/paddle_samples/PaddleX/squeezenet1_1/model.py @@ -0,0 +1,28 @@ +import paddle +from paddle.vision.models import squeezenet1_1 + + +class GraphModule(paddle.nn.Layer): + def __init__(self): + super().__init__() + self.model = squeezenet1_1(pretrained=False) + + def forward(self, *args, **kwargs): + # 1. Try to get tensor from positional arguments + if args: + x = args[0] + # 2. Try to get tensor from keyword arguments + else: + x = None + for val in kwargs.values(): + if isinstance(val, (paddle.Tensor, paddle.static.Variable)): + x = val + break + + if x is None: + # Log keys for debugging in CI if it fails again + raise ValueError( + f"No input tensor found. args_len: {len(args)}, kwargs_keys: {list(kwargs.keys())}" + ) + + return self.model(x) diff --git a/paddle_samples/PaddleX/squeezenet1_1/weight_meta.py b/paddle_samples/PaddleX/squeezenet1_1/weight_meta.py new file mode 100644 index 000000000..80606a5fb --- /dev/null +++ b/paddle_samples/PaddleX/squeezenet1_1/weight_meta.py @@ -0,0 +1,2 @@ +# Weight metadata for SqueezeNet 1.1 +weight_meta = {}