onnxslim 0.1.68__py3-none-any.whl → 0.1.70__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- onnxslim/__init__.py +0 -2
- onnxslim/argparser.py +25 -7
- onnxslim/cli/_main.py +3 -1
- onnxslim/third_party/symbolic_shape_infer.py +19 -2
- onnxslim/version.py +1 -1
- {onnxslim-0.1.68.dist-info → onnxslim-0.1.70.dist-info}/METADATA +1 -1
- {onnxslim-0.1.68.dist-info → onnxslim-0.1.70.dist-info}/RECORD +12 -12
- {onnxslim-0.1.68.dist-info → onnxslim-0.1.70.dist-info}/WHEEL +0 -0
- {onnxslim-0.1.68.dist-info → onnxslim-0.1.70.dist-info}/entry_points.txt +0 -0
- {onnxslim-0.1.68.dist-info → onnxslim-0.1.70.dist-info}/licenses/LICENSE +0 -0
- {onnxslim-0.1.68.dist-info → onnxslim-0.1.70.dist-info}/top_level.txt +0 -0
- {onnxslim-0.1.68.dist-info → onnxslim-0.1.70.dist-info}/zip-safe +0 -0
onnxslim/__init__.py
CHANGED
|
@@ -2,9 +2,7 @@ import os
|
|
|
2
2
|
import warnings
|
|
3
3
|
|
|
4
4
|
from onnxslim.cli import slim
|
|
5
|
-
from onnxslim.core.optimization import OptimizationSettings
|
|
6
5
|
from onnxslim.core.pattern.registry import (
|
|
7
|
-
DEFAULT_FUSION_PATTERNS,
|
|
8
6
|
register_fusion_pattern,
|
|
9
7
|
)
|
|
10
8
|
from onnxslim.version import __version__
|
onnxslim/argparser.py
CHANGED
|
@@ -2,10 +2,28 @@ import argparse
|
|
|
2
2
|
import dataclasses
|
|
3
3
|
from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
|
|
4
4
|
from dataclasses import dataclass, field
|
|
5
|
-
from typing import List, Optional, Type, Union, get_args, get_origin
|
|
6
|
-
|
|
7
|
-
import
|
|
8
|
-
|
|
5
|
+
from typing import List, Optional, Type, Union, get_args, get_origin, TypedDict, Dict, Literal
|
|
6
|
+
|
|
7
|
+
from .core.optimization import OptimizationSettings
|
|
8
|
+
from .core.pattern.registry import DEFAULT_FUSION_PATTERNS
|
|
9
|
+
from .version import __version__
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class OnnxSlimKwargs(TypedDict, total=False):
|
|
13
|
+
model_check: bool
|
|
14
|
+
input_shapes: Dict[str, List[int]]
|
|
15
|
+
inputs: List[str]
|
|
16
|
+
outputs: List[str]
|
|
17
|
+
no_shape_infer: bool
|
|
18
|
+
skip_optimizations: List[str]
|
|
19
|
+
dtype: Literal["float16", "float32", "uint8", "int8"]
|
|
20
|
+
skip_fusion_patterns: List[str]
|
|
21
|
+
size_threshold: int
|
|
22
|
+
inspect: bool
|
|
23
|
+
dump_to_disk: bool
|
|
24
|
+
save_as_external_data: bool
|
|
25
|
+
model_check_inputs: Optional[List[str]]
|
|
26
|
+
verbose: bool
|
|
9
27
|
|
|
10
28
|
def _get_inner_type(arg_type):
|
|
11
29
|
if get_origin(arg_type) is Union:
|
|
@@ -42,14 +60,14 @@ class OptimizationArguments:
|
|
|
42
60
|
default=None,
|
|
43
61
|
metadata={
|
|
44
62
|
"help": "whether to skip some optimizations",
|
|
45
|
-
"choices": list(
|
|
63
|
+
"choices": list(OptimizationSettings.keys()),
|
|
46
64
|
},
|
|
47
65
|
)
|
|
48
66
|
skip_fusion_patterns: Optional[List[str]] = field(
|
|
49
67
|
default=None,
|
|
50
68
|
metadata={
|
|
51
69
|
"help": "whether to skip the fusion of some patterns",
|
|
52
|
-
"choices": list(
|
|
70
|
+
"choices": list(DEFAULT_FUSION_PATTERNS.keys()),
|
|
53
71
|
},
|
|
54
72
|
)
|
|
55
73
|
size_threshold: int = field(
|
|
@@ -173,7 +191,7 @@ class OnnxSlimArgumentParser(ArgumentParser):
|
|
|
173
191
|
# Add positional arguments separately for ModelArguments
|
|
174
192
|
self.parser.add_argument("input_model", help="input onnx model")
|
|
175
193
|
self.parser.add_argument("output_model", nargs="?", default=None, help="output onnx model")
|
|
176
|
-
self.parser.add_argument("-v", "--version", action="version", version=
|
|
194
|
+
self.parser.add_argument("-v", "--version", action="version", version=__version__)
|
|
177
195
|
|
|
178
196
|
def parse_args_into_dataclasses(self):
|
|
179
197
|
# Pre-parse arguments to check for `--inspect`
|
onnxslim/cli/_main.py
CHANGED
|
@@ -2,8 +2,10 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import onnx
|
|
4
4
|
|
|
5
|
+
from onnxslim.argparser import OnnxSlimKwargs
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
|
|
8
|
+
def slim(model: str | onnx.ModelProto | list[str | onnx.ModelProto], *args, **kwargs: OnnxSlimKwargs):
|
|
7
9
|
import os
|
|
8
10
|
import time
|
|
9
11
|
from pathlib import Path
|
|
@@ -1944,7 +1944,25 @@ class SymbolicShapeInference:
|
|
|
1944
1944
|
|
|
1945
1945
|
def _infer_Shape(self, node): # noqa: N802
|
|
1946
1946
|
"""Infers and sets the symbolic shape for the output node in the computation graph."""
|
|
1947
|
-
|
|
1947
|
+
start = get_attribute(node, "start", 0)
|
|
1948
|
+
end = get_attribute(node, "end", None)
|
|
1949
|
+
|
|
1950
|
+
full_sympy_shape = self._get_sympy_shape(node, 0)
|
|
1951
|
+
num_dims = len(full_sympy_shape)
|
|
1952
|
+
|
|
1953
|
+
if start < 0:
|
|
1954
|
+
start = num_dims + start
|
|
1955
|
+
if end is None:
|
|
1956
|
+
end = num_dims
|
|
1957
|
+
elif end < 0:
|
|
1958
|
+
end = num_dims + end
|
|
1959
|
+
|
|
1960
|
+
assert 0 <= start <= end <= num_dims, (
|
|
1961
|
+
f"reshape start/end invalid: start={start}, end={end}, total_dims={num_dims}"
|
|
1962
|
+
)
|
|
1963
|
+
|
|
1964
|
+
target_sympy_shape = full_sympy_shape[start:end]
|
|
1965
|
+
self.sympy_data_[node.output[0]] = target_sympy_shape
|
|
1948
1966
|
|
|
1949
1967
|
def _infer_Size(self, node): # noqa: N802
|
|
1950
1968
|
"""Infers and sets the size of the output node by computing the product of its shape in the computation
|
|
@@ -2826,7 +2844,6 @@ class SymbolicShapeInference:
|
|
|
2826
2844
|
def _infer_impl(self, start_sympy_data=None):
|
|
2827
2845
|
"""Infer implementation details and update symbolic data and input symbols."""
|
|
2828
2846
|
self.sympy_data_ = start_sympy_data or {}
|
|
2829
|
-
self.out_mp_.graph.ClearField("value_info")
|
|
2830
2847
|
self._apply_suggested_merge(graph_input_only=True)
|
|
2831
2848
|
self.input_symbols_ = set()
|
|
2832
2849
|
for i in self.out_mp_.graph.input:
|
onnxslim/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.1.
|
|
1
|
+
__version__ = "0.1.70"
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
onnxslim/__init__.py,sha256
|
|
1
|
+
onnxslim/__init__.py,sha256=ECHGdxzg4b-4SZaPhxM_KulBi-xDbVcVUbpJc8i6a60,571
|
|
2
2
|
onnxslim/__main__.py,sha256=FgDcl6xX8kV_52rB-jPVsmGqidlVhkpe_YhXK75-nFU,75
|
|
3
|
-
onnxslim/argparser.py,sha256=
|
|
3
|
+
onnxslim/argparser.py,sha256=pFv3nEZH2BiHO9ejS4Iq5ZuZ3GrpdyRQJypAyR0xF7w,8942
|
|
4
4
|
onnxslim/utils.py,sha256=uNh3Mr4DberXtKL6p649QrrLR7gYbldYuIm6QLo14Zg,28043
|
|
5
|
-
onnxslim/version.py,sha256=
|
|
5
|
+
onnxslim/version.py,sha256=cccQoQHdRDqS_EuWR2yvG91WHNMC63UUtWzJGOrGCaY,23
|
|
6
6
|
onnxslim/cli/__init__.py,sha256=kxK27cDgWotBOWRs86rbRQf_dtmniKr1GZJeasxfESE,42
|
|
7
|
-
onnxslim/cli/_main.py,sha256=
|
|
7
|
+
onnxslim/cli/_main.py,sha256=jEKv9q7y_y9g0GsrfXcnk_wyMVej6jhe9QNPChE7yTs,5550
|
|
8
8
|
onnxslim/core/__init__.py,sha256=d6zfD4rcR51yJIFg1LpGQt2tK4g1WLmA87_7Gna89OU,8469
|
|
9
9
|
onnxslim/core/optimization/__init__.py,sha256=cAzv2YoZMS2krWoylrqDd9HU0aAhSCAM29dZclKqOQo,4777
|
|
10
10
|
onnxslim/core/optimization/dead_node_elimination.py,sha256=xAO37JvW7Yb3mT5cXY6K6cWMAvbmFL0pczpcRQfd5Ek,7557
|
|
@@ -29,7 +29,7 @@ onnxslim/core/pattern/fusion/reduce.py,sha256=dMC7CPlFglrJxugsJWjcc-jQCIa_GIbW1y
|
|
|
29
29
|
onnxslim/misc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
30
|
onnxslim/misc/tabulate.py,sha256=pytOhVcWPW6B464BvG0rycbz8QA0MAeCSqQ7EO93tqs,99648
|
|
31
31
|
onnxslim/third_party/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
-
onnxslim/third_party/symbolic_shape_infer.py,sha256=
|
|
32
|
+
onnxslim/third_party/symbolic_shape_infer.py,sha256=iBrhPAgR--GNm6jSbR0gmmhVnzDICVULIdiqRlL7EIg,153592
|
|
33
33
|
onnxslim/third_party/_sympy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
34
|
onnxslim/third_party/_sympy/functions.py,sha256=FrrTHPkDhwh_EccLGugbcodeOjfGeM17T5_oVPUjOlA,8877
|
|
35
35
|
onnxslim/third_party/_sympy/numbers.py,sha256=w1dJJcQkKRzLDCJMn70YTwPtrEWPFrhCJpAsZhukJOk,11383
|
|
@@ -55,10 +55,10 @@ onnxslim/third_party/onnx_graphsurgeon/logger/logger.py,sha256=L12rrwn33RHH-2WLv
|
|
|
55
55
|
onnxslim/third_party/onnx_graphsurgeon/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
56
|
onnxslim/third_party/onnx_graphsurgeon/util/exception.py,sha256=KrsHbKEQ4237UbjlODsUzvkXoAY72LZi23ApBeFANWg,786
|
|
57
57
|
onnxslim/third_party/onnx_graphsurgeon/util/misc.py,sha256=kyxInD2SCRLU4wHMeiDEYEHB3871fGks6kQTuF9uATY,8960
|
|
58
|
-
onnxslim-0.1.
|
|
59
|
-
onnxslim-0.1.
|
|
60
|
-
onnxslim-0.1.
|
|
61
|
-
onnxslim-0.1.
|
|
62
|
-
onnxslim-0.1.
|
|
63
|
-
onnxslim-0.1.
|
|
64
|
-
onnxslim-0.1.
|
|
58
|
+
onnxslim-0.1.70.dist-info/licenses/LICENSE,sha256=oHZXw-yrBwdNVGu4JtlZhMgmQHKIZ7BJJlJdhu1HKvI,1062
|
|
59
|
+
onnxslim-0.1.70.dist-info/METADATA,sha256=_Cv8cxA_t_EUzLq4rPTqnzhvvMs68Rs6exGDw1gxNVI,7621
|
|
60
|
+
onnxslim-0.1.70.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
61
|
+
onnxslim-0.1.70.dist-info/entry_points.txt,sha256=O2QgceCVeGeRhnxRSDRcGiFd0ZNfElwrTiRo1W2V7KA,47
|
|
62
|
+
onnxslim-0.1.70.dist-info/top_level.txt,sha256=EWFTb99i0kc6cC9akqNKp88ipzg17_VZzYN7z1kQNlA,9
|
|
63
|
+
onnxslim-0.1.70.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
64
|
+
onnxslim-0.1.70.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|