Skip to content

Commit 8c38a04

Browse files
Merge pull request #152 from JingyuanZhang/master
feat(converter): update optimize because paddlelite v2.8 does not expose set_passes_internal api
2 parents 26e1559 + 24faa93 commit 8c38a04

File tree

1 file changed

+45
-37
lines changed

1 file changed

+45
-37
lines changed

packages/paddlejs-converter/optimizeModel.py

Lines changed: 45 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
import collections
55
import argparse
66
import 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

913
def 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

Comments
 (0)