44import collections
55import argparse
66import traceback
7- import paddlelite .lite as lite
7+ from paddlelite import lite
8+ import pkg_resources
9+ from packaging import version
10+
11+ lite_version = pkg_resources .get_distribution ("paddlelite" ).version
812
913def optimizeModel (inputDir , modelPath , paramPath , outputDir ):
1014 """ 使用opt python接口执行模型优化 """
@@ -20,42 +24,46 @@ def optimizeModel(inputDir, modelPath, paramPath, outputDir):
2024 opt .set_valid_places ("arm" )
2125 opt .set_model_type ("protobuf" )
2226 opt .set_optimize_out (outputDir )
23-
24- optimize_passes = [
25- "lite_conv_elementwise_fuse_pass" ,
26- "lite_conv_bn_fuse_pass" ,
27- "lite_conv_elementwise_fuse_pass" ,
28- "lite_conv_activation_fuse_pass" ,
29- "lite_var_conv_2d_activation_fuse_pass" ,
30- "lite_fc_fuse_pass" ,
31- "lite_shuffle_channel_fuse_pass" ,
32- "lite_transpose_softmax_transpose_fuse_pass" ,
33- "lite_interpolate_fuse_pass" ,
34- "identity_scale_eliminate_pass" ,
35- "elementwise_mul_constant_eliminate_pass" ,
36- "lite_sequence_pool_concat_fuse_pass" ,
37- "lite_elementwise_add_activation_fuse_pass" ,
38- "static_kernel_pick_pass" ,
39- "variable_place_inference_pass" ,
40- "argument_type_display_pass" ,
41- "type_target_cast_pass" ,
42- "variable_place_inference_pass" ,
43- "argument_type_display_pass" ,
44- "io_copy_kernel_pick_pass" ,
45- "argument_type_display_pass" ,
46- "variable_place_inference_pass" ,
47- "argument_type_display_pass" ,
48- "type_precision_cast_pass" ,
49- "variable_place_inference_pass" ,
50- "argument_type_display_pass" ,
51- "type_layout_cast_pass" ,
52- "argument_type_display_pass" ,
53- "variable_place_inference_pass" ,
54- "argument_type_display_pass" ,
55- "runtime_context_assign_pass" ,
56- "argument_type_display_pass"
57- ]
58- opt .set_passes_internal (optimize_passes )
27+
28+ if version .parse (lite_version ) <= version .parse ('2.7.1' ):
29+ print ("python paddlelite version: " + lite_version )
30+
31+ optimize_passes = [
32+ "lite_conv_elementwise_fuse_pass" ,
33+ "lite_conv_bn_fuse_pass" ,
34+ "lite_conv_elementwise_fuse_pass" ,
35+ "lite_conv_activation_fuse_pass" ,
36+ "lite_var_conv_2d_activation_fuse_pass" ,
37+ "lite_fc_fuse_pass" ,
38+ "lite_shuffle_channel_fuse_pass" ,
39+ "lite_transpose_softmax_transpose_fuse_pass" ,
40+ "lite_interpolate_fuse_pass" ,
41+ "identity_scale_eliminate_pass" ,
42+ "elementwise_mul_constant_eliminate_pass" ,
43+ "lite_sequence_pool_concat_fuse_pass" ,
44+ "lite_elementwise_add_activation_fuse_pass" ,
45+ "static_kernel_pick_pass" ,
46+ "variable_place_inference_pass" ,
47+ "argument_type_display_pass" ,
48+ "type_target_cast_pass" ,
49+ "variable_place_inference_pass" ,
50+ "argument_type_display_pass" ,
51+ "io_copy_kernel_pick_pass" ,
52+ "argument_type_display_pass" ,
53+ "variable_place_inference_pass" ,
54+ "argument_type_display_pass" ,
55+ "type_precision_cast_pass" ,
56+ "variable_place_inference_pass" ,
57+ "argument_type_display_pass" ,
58+ "type_layout_cast_pass" ,
59+ "argument_type_display_pass" ,
60+ "variable_place_inference_pass" ,
61+ "argument_type_display_pass" ,
62+ "runtime_context_assign_pass" ,
63+ "argument_type_display_pass"
64+ ]
65+ opt .set_passes_internal (optimize_passes )
66+
5967 opt .run ()
6068
6169
0 commit comments