tico 0.1.0.dev250525__py3-none-any.whl → 0.1.0.dev250527__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.
- tico/__init__.py +1 -1
- tico/serialize/circle_graph.py +11 -3
- tico/serialize/circle_serializer.py +1 -0
- tico/serialize/operators/op_abs.py +53 -0
- tico/serialize/operators/op_conv2d.py +6 -2
- tico/serialize/operators/op_max_dim.py +70 -0
- tico/serialize/operators/op_max_pool2d_with_indices.py +15 -3
- tico/serialize/operators/utils.py +43 -0
- tico/utils/validate_args_kwargs.py +22 -0
- {tico-0.1.0.dev250525.dist-info → tico-0.1.0.dev250527.dist-info}/METADATA +1 -1
- {tico-0.1.0.dev250525.dist-info → tico-0.1.0.dev250527.dist-info}/RECORD +15 -13
- {tico-0.1.0.dev250525.dist-info → tico-0.1.0.dev250527.dist-info}/LICENSE +0 -0
- {tico-0.1.0.dev250525.dist-info → tico-0.1.0.dev250527.dist-info}/WHEEL +0 -0
- {tico-0.1.0.dev250525.dist-info → tico-0.1.0.dev250527.dist-info}/entry_points.txt +0 -0
- {tico-0.1.0.dev250525.dist-info → tico-0.1.0.dev250527.dist-info}/top_level.txt +0 -0
tico/__init__.py
CHANGED
@@ -22,7 +22,7 @@ from tico.config import CompileConfigV1, get_default_config
|
|
22
22
|
from tico.utils.convert import convert, convert_from_exported_program, convert_from_pt2
|
23
23
|
|
24
24
|
# THIS LINE IS AUTOMATICALLY GENERATED BY setup.py
|
25
|
-
__version__ = "0.1.0.
|
25
|
+
__version__ = "0.1.0.dev250527"
|
26
26
|
|
27
27
|
|
28
28
|
if Version(torch.__version__) < Version("2.5.0"):
|
tico/serialize/circle_graph.py
CHANGED
@@ -29,7 +29,7 @@ from tico.serialize.circle_mapping import (
|
|
29
29
|
to_circle_dtype,
|
30
30
|
)
|
31
31
|
from tico.serialize.pack import pack_buffer
|
32
|
-
from tico.serialize.quant_param import QPARAM_KEY
|
32
|
+
from tico.serialize.quant_param import QPARAM_KEY, QuantParam
|
33
33
|
from tico.utils.utils import to_circle_qparam
|
34
34
|
|
35
35
|
"""
|
@@ -184,13 +184,21 @@ class CircleSubgraph(circle.SubGraph.SubGraphT):
|
|
184
184
|
return tensor
|
185
185
|
|
186
186
|
def add_tensor_from_scratch(
|
187
|
-
self,
|
187
|
+
self,
|
188
|
+
prefix: str,
|
189
|
+
shape: List[int],
|
190
|
+
dtype: int,
|
191
|
+
qparam: Optional[QuantParam] = None,
|
188
192
|
) -> circle.Tensor.TensorT:
|
189
193
|
assert isinstance(dtype, int), f"{dtype} must be integer. Use to_circle_dtype."
|
190
194
|
tensor = circle.Tensor.TensorT()
|
191
195
|
tensor.name = self._gen_unique_name_with_prefix(prefix)
|
192
|
-
tensor.type = dtype
|
193
196
|
tensor.shape = shape
|
197
|
+
if qparam is not None:
|
198
|
+
tensor.quantization = to_circle_qparam(qparam)
|
199
|
+
tensor.type = str_to_circle_dtype(qparam.dtype)
|
200
|
+
else:
|
201
|
+
tensor.type = dtype
|
194
202
|
|
195
203
|
buffer = circle.Buffer.BufferT()
|
196
204
|
bid = self.model.add_buffer(buffer)
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
from typing import Dict, List, TYPE_CHECKING
|
16
|
+
|
17
|
+
if TYPE_CHECKING:
|
18
|
+
import torch._ops
|
19
|
+
import torch.fx
|
20
|
+
import torch
|
21
|
+
from circle_schema import circle
|
22
|
+
|
23
|
+
from tico.serialize.circle_graph import CircleSubgraph
|
24
|
+
from tico.serialize.operators.hashable_opcode import OpCode
|
25
|
+
from tico.serialize.operators.node_visitor import NodeVisitor, register_node_visitor
|
26
|
+
from tico.serialize.operators.utils import create_builtin_operator, get_op_index
|
27
|
+
from tico.utils.validate_args_kwargs import AbsArgs
|
28
|
+
|
29
|
+
|
30
|
+
@register_node_visitor
|
31
|
+
class AbsVisitor(NodeVisitor):
|
32
|
+
target: List[torch._ops.OpOverload] = [torch.ops.aten.abs.default]
|
33
|
+
|
34
|
+
def __init__(self, op_codes: Dict[OpCode, int], graph: CircleSubgraph):
|
35
|
+
super().__init__(op_codes, graph)
|
36
|
+
|
37
|
+
def define_node(
|
38
|
+
self,
|
39
|
+
node: torch.fx.Node,
|
40
|
+
) -> circle.Operator.OperatorT:
|
41
|
+
op_index = get_op_index(
|
42
|
+
circle.BuiltinOperator.BuiltinOperator.ABS, self._op_codes
|
43
|
+
)
|
44
|
+
|
45
|
+
args = AbsArgs(*node.args, **node.kwargs) # type: ignore[arg-type]
|
46
|
+
input = args.input
|
47
|
+
|
48
|
+
inputs = [input]
|
49
|
+
outputs = [node]
|
50
|
+
|
51
|
+
operator = create_builtin_operator(self.graph, op_index, inputs, outputs)
|
52
|
+
|
53
|
+
return operator
|
@@ -12,7 +12,7 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
from typing import Dict, List, TYPE_CHECKING
|
15
|
+
from typing import Dict, List, Optional, TYPE_CHECKING
|
16
16
|
|
17
17
|
if TYPE_CHECKING:
|
18
18
|
import torch._ops
|
@@ -24,6 +24,7 @@ from tico.serialize.circle_mapping import extract_circle_dtype, extract_shape
|
|
24
24
|
from tico.serialize.operators.hashable_opcode import OpCode
|
25
25
|
from tico.serialize.operators.node_visitor import NodeVisitor, register_node_visitor
|
26
26
|
from tico.serialize.operators.utils import create_builtin_operator, get_op_index
|
27
|
+
from tico.serialize.quant_param import QPARAM_KEY, QuantParam
|
27
28
|
from tico.utils.define import define_pad_node
|
28
29
|
from tico.utils.padding import is_same_padding, is_valid_padding, SAME, VALID
|
29
30
|
from tico.utils.validate_args_kwargs import Conv2DArgs
|
@@ -150,11 +151,14 @@ class Conv2dVisitor(NodeVisitor):
|
|
150
151
|
# Add (pad_left+pad_Right) to pad_output_shape_w
|
151
152
|
pad_output_shape[2] += padding[1] * 2
|
152
153
|
# create padded output tensor
|
153
|
-
|
154
|
+
input_qparam: Optional[QuantParam] = (
|
155
|
+
input_.meta[QPARAM_KEY] if QPARAM_KEY in input_.meta else None
|
156
|
+
)
|
154
157
|
pad_output = self.graph.add_tensor_from_scratch(
|
155
158
|
prefix=f"{node.name}_input_pad_output",
|
156
159
|
shape=pad_output_shape,
|
157
160
|
dtype=input_dtype,
|
161
|
+
qparam=input_qparam,
|
158
162
|
)
|
159
163
|
# CirclePad
|
160
164
|
pad_operator = define_pad_node(
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
from typing import Dict, List, TYPE_CHECKING
|
16
|
+
|
17
|
+
if TYPE_CHECKING:
|
18
|
+
import torch._ops
|
19
|
+
import torch.fx
|
20
|
+
import torch
|
21
|
+
from circle_schema import circle
|
22
|
+
|
23
|
+
from tico.serialize.circle_graph import CircleSubgraph
|
24
|
+
from tico.serialize.circle_mapping import circle_legalize_dtype_to
|
25
|
+
from tico.serialize.operators.hashable_opcode import OpCode
|
26
|
+
from tico.serialize.operators.node_visitor import NodeVisitor, register_node_visitor
|
27
|
+
from tico.serialize.operators.utils import create_builtin_operator, get_op_index
|
28
|
+
from tico.utils.validate_args_kwargs import MaxDimArgs
|
29
|
+
|
30
|
+
|
31
|
+
@register_node_visitor
|
32
|
+
class MaxDimVisitor(NodeVisitor):
|
33
|
+
target: List[torch._ops.OpOverload] = [torch.ops.aten.max.dim]
|
34
|
+
|
35
|
+
def __init__(self, op_codes: Dict[OpCode, int], graph: CircleSubgraph):
|
36
|
+
super().__init__(op_codes, graph)
|
37
|
+
|
38
|
+
def define_node(
|
39
|
+
self,
|
40
|
+
node: torch.fx.Node,
|
41
|
+
) -> circle.Operator.OperatorT:
|
42
|
+
args = MaxDimArgs(*node.args, **node.kwargs) # type: ignore[arg-type]
|
43
|
+
input = args.input
|
44
|
+
dim = args.dim
|
45
|
+
keepdim = args.keepdim
|
46
|
+
|
47
|
+
# Only support modules that return the first output.
|
48
|
+
assert len(node.users) == 1
|
49
|
+
assert list(node.users.keys())[0].args[1] == 0 # node.users: {getitem: None}
|
50
|
+
|
51
|
+
op_index = get_op_index(
|
52
|
+
circle.BuiltinOperator.BuiltinOperator.REDUCE_MAX, self._op_codes
|
53
|
+
)
|
54
|
+
|
55
|
+
dim_i32 = circle_legalize_dtype_to(dim, dtype=torch.int32)
|
56
|
+
inputs = [input, dim_i32]
|
57
|
+
outputs = [list(node.users.keys())[0]]
|
58
|
+
|
59
|
+
operator = create_builtin_operator(self.graph, op_index, inputs, outputs)
|
60
|
+
|
61
|
+
# Op-specific option
|
62
|
+
operator.builtinOptionsType = (
|
63
|
+
circle.BuiltinOptions.BuiltinOptions.ReducerOptions
|
64
|
+
)
|
65
|
+
option = circle.ReducerOptions.ReducerOptionsT()
|
66
|
+
option.keepDims = keepdim
|
67
|
+
|
68
|
+
operator.builtinOptions = option
|
69
|
+
|
70
|
+
return operator
|
@@ -13,7 +13,7 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
from enum import IntEnum
|
16
|
-
from typing import Dict, List, TYPE_CHECKING
|
16
|
+
from typing import Dict, List, Optional, TYPE_CHECKING
|
17
17
|
|
18
18
|
if TYPE_CHECKING:
|
19
19
|
import torch._ops
|
@@ -25,7 +25,12 @@ from tico.serialize.circle_graph import CircleSubgraph
|
|
25
25
|
from tico.serialize.circle_mapping import extract_circle_dtype, extract_shape
|
26
26
|
from tico.serialize.operators.hashable_opcode import OpCode
|
27
27
|
from tico.serialize.operators.node_visitor import NodeVisitor, register_node_visitor
|
28
|
-
from tico.serialize.operators.utils import
|
28
|
+
from tico.serialize.operators.utils import (
|
29
|
+
create_builtin_operator,
|
30
|
+
get_integer_dtype_min,
|
31
|
+
get_op_index,
|
32
|
+
)
|
33
|
+
from tico.serialize.quant_param import QPARAM_KEY, QuantParam
|
29
34
|
from tico.utils.validate_args_kwargs import MaxPool2dWithIndicesArgs
|
30
35
|
|
31
36
|
|
@@ -82,7 +87,6 @@ class MaxPool2DWithIndicesVisitor(NodeVisitor):
|
|
82
87
|
],
|
83
88
|
dtype=torch.int32,
|
84
89
|
)
|
85
|
-
padding_value = float("-inf")
|
86
90
|
input_shape = list(extract_shape(input))
|
87
91
|
input_dtype: int = extract_circle_dtype(input)
|
88
92
|
padded_input_shape = [
|
@@ -93,12 +97,20 @@ class MaxPool2DWithIndicesVisitor(NodeVisitor):
|
|
93
97
|
]
|
94
98
|
padded_input_shape[1] += padding[0] * 2
|
95
99
|
padded_input_shape[2] += padding[1] * 2
|
100
|
+
input_qparam: Optional[QuantParam] = (
|
101
|
+
input.meta[QPARAM_KEY] if QPARAM_KEY in input.meta else None
|
102
|
+
)
|
96
103
|
# create padded input tensor
|
97
104
|
padded_input_tensor = self.graph.add_tensor_from_scratch(
|
98
105
|
prefix=f"{input.name}_pad_output",
|
99
106
|
shape=padded_input_shape,
|
100
107
|
dtype=input_dtype,
|
108
|
+
qparam=input_qparam,
|
101
109
|
)
|
110
|
+
if input_qparam is not None:
|
111
|
+
padding_value = get_integer_dtype_min(input_qparam.dtype)
|
112
|
+
else:
|
113
|
+
padding_value = float("-inf")
|
102
114
|
pad_operator = self.define_padV2_node(
|
103
115
|
[input, padding_vec, padding_value], [padded_input_tensor]
|
104
116
|
)
|
@@ -12,6 +12,7 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
+
import re
|
15
16
|
from typing import Dict, List
|
16
17
|
|
17
18
|
from circle_schema import circle
|
@@ -49,3 +50,45 @@ def create_builtin_operator(
|
|
49
50
|
operator.inputs = [graph.get_tid(input) for input in inputs]
|
50
51
|
operator.outputs = [graph.get_tid(output) for output in outputs]
|
51
52
|
return operator
|
53
|
+
|
54
|
+
|
55
|
+
def get_integer_dtype_min(dtype_str: str):
|
56
|
+
"""
|
57
|
+
Returns the minimum representable value for a given integer dtype string.
|
58
|
+
|
59
|
+
Supports "intN" and "uintN" where N >= 2 and uses two's complement for
|
60
|
+
signed integers.
|
61
|
+
|
62
|
+
Args:
|
63
|
+
dtype_str (str): A string representing the integer dtype.
|
64
|
+
Must be in the format "intN" or "uintN" where N is the bit width.
|
65
|
+
|
66
|
+
Returns:
|
67
|
+
int: The minimum representable integer value for the given dtype.
|
68
|
+
|
69
|
+
Raises:
|
70
|
+
ValueError: If the dtype format is invalid or bit width is less then 2.
|
71
|
+
|
72
|
+
Examples:
|
73
|
+
>>> get_integer_dtype_min("int8")
|
74
|
+
-128
|
75
|
+
>>> get_integer_dtype_min("uint4")
|
76
|
+
0
|
77
|
+
>>> get_integer_dtype_min("int4")
|
78
|
+
-8
|
79
|
+
"""
|
80
|
+
match = re.fullmatch(r"(u?)int(\d+)", dtype_str)
|
81
|
+
|
82
|
+
if not match:
|
83
|
+
raise ValueError(f"Unsupported or malformed dtype: {dtype_str}")
|
84
|
+
|
85
|
+
is_unsigned = match.group(1) == "u"
|
86
|
+
bits = int(match.group(2))
|
87
|
+
|
88
|
+
if bits < 2:
|
89
|
+
raise ValueError(f"Bit width too small: {bits} bits")
|
90
|
+
|
91
|
+
if is_unsigned:
|
92
|
+
return 0
|
93
|
+
else:
|
94
|
+
return -(2 ** (bits - 1))
|
@@ -32,6 +32,16 @@ This file includes OpArgs classes that provide arguments with type annotations.
|
|
32
32
|
"""
|
33
33
|
|
34
34
|
|
35
|
+
@enforce_type
|
36
|
+
@dataclass
|
37
|
+
class AbsArgs:
|
38
|
+
"""
|
39
|
+
abs(Tensor self) -> Tensor
|
40
|
+
"""
|
41
|
+
|
42
|
+
input: torch.fx.Node
|
43
|
+
|
44
|
+
|
35
45
|
@enforce_type
|
36
46
|
@dataclass
|
37
47
|
class AddTensorArgs:
|
@@ -567,6 +577,18 @@ class LtArgs:
|
|
567
577
|
other: torch.fx.Node
|
568
578
|
|
569
579
|
|
580
|
+
@enforce_type
|
581
|
+
@dataclass
|
582
|
+
class MaxDimArgs:
|
583
|
+
"""
|
584
|
+
max.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices)
|
585
|
+
"""
|
586
|
+
|
587
|
+
input: torch.fx.Node
|
588
|
+
dim: int
|
589
|
+
keepdim: bool = False
|
590
|
+
|
591
|
+
|
570
592
|
@enforce_type
|
571
593
|
@dataclass
|
572
594
|
class MaxPool2dWithIndicesArgs:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
tico/__init__.py,sha256=
|
1
|
+
tico/__init__.py,sha256=zY__nsnts-mqniDecMFut79ZDvsK2yrh51Bcmt4F8rU,1181
|
2
2
|
tico/pt2_to_circle.py,sha256=PPmFNw20jw2Z2VyM3ln9pX__jTzBOAZiv0gT5a-p-Y8,2666
|
3
3
|
tico/config/__init__.py,sha256=xZzCXjZ84qE-CsBi-dfaL05bqpQ3stKKfTXhnrJRyVs,142
|
4
4
|
tico/config/base.py,sha256=anwOiJFkUxUi7Cef573JgQcjk6S-FSi6O_TLjYASW-g,1244
|
@@ -93,14 +93,15 @@ tico/passes/remove_redundant_to_copy.py,sha256=uTIjAn3Eli_RvXC-QOqxBAkV_whDBkkNh
|
|
93
93
|
tico/passes/restore_linear.py,sha256=UMMHdLmRGq9bfJx_0L9lL2UQBd51PGNP0WywO8KdrDM,4066
|
94
94
|
tico/passes/segment_index_select.py,sha256=ifXOIFC12lNwsB-s3k1cJcMHP3UEijPpkMAbwI7lZbQ,5097
|
95
95
|
tico/serialize/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
|
96
|
-
tico/serialize/circle_graph.py,sha256=
|
96
|
+
tico/serialize/circle_graph.py,sha256=l9fcvV4x3L5Bh2WmEseo--0KFjSVTrlSBaBrqbrmXgg,9498
|
97
97
|
tico/serialize/circle_mapping.py,sha256=C9C3ORACQOdvBdnt5KRzlT8zao_TvzQklIxH794OhP0,5719
|
98
|
-
tico/serialize/circle_serializer.py,sha256=
|
98
|
+
tico/serialize/circle_serializer.py,sha256=AWpLRgwjp1Xm70xMPY3cxWZTOtjV_DKzzIxJXLVKBdg,8755
|
99
99
|
tico/serialize/pack.py,sha256=5HZ9kX3x6C6CyT_FWS6FRmvx_P7Dx21orjUNQxJ2xlo,1297
|
100
100
|
tico/serialize/quant_param.py,sha256=s97GJyDOZULnqFUWPakHais31G_qqPuO0awPHCkZDvI,1342
|
101
101
|
tico/serialize/operators/__init__.py,sha256=LIvXsNnN4yUCS2CGNQ5XW8p8oXDTV_WHWuOEAw1t6WY,990
|
102
102
|
tico/serialize/operators/hashable_opcode.py,sha256=sDVKNTgIQw4IBtMEjNH8tzssMPx1x8-U2oagomRjGF0,1368
|
103
103
|
tico/serialize/operators/node_visitor.py,sha256=UYyCwXqSCeRyimThMShstHnt7vKM9tsuzQ_02uEwF9I,2356
|
104
|
+
tico/serialize/operators/op_abs.py,sha256=Y-vy7rcqPT-qD3QS5R8zbApWWTPpjY6xuMMVnbIhYmQ,1827
|
104
105
|
tico/serialize/operators/op_add.py,sha256=otm062DMHVAThWmOtSTZdPyP3P5-2cv5VL_UWBJeLms,2346
|
105
106
|
tico/serialize/operators/op_alias_copy.py,sha256=Xu9OiILbGf8oddh8yTqovvLfgVs8XYV7Cg4n6CesWcg,2175
|
106
107
|
tico/serialize/operators/op_any.py,sha256=WMsHLq7WIcl6rD2G3QqpWRSCR-a6UYX6y5AjB6BDS3U,5049
|
@@ -112,7 +113,7 @@ tico/serialize/operators/op_cat.py,sha256=XDYOh0XAyrM0TlxVm6Sa0OFFGrKk7aSDcGXC-h
|
|
112
113
|
tico/serialize/operators/op_clamp.py,sha256=V3rncHvUAuJ2nXOyywTnOGCvNBeCQGqQIW1_zxKlSsA,4231
|
113
114
|
tico/serialize/operators/op_clone.py,sha256=vzDYJ8TS3tc2BAyd_z8nt5VqT1inpymSseMEhd9dva0,2394
|
114
115
|
tico/serialize/operators/op_constant_pad_nd.py,sha256=OpP4AP-d1IFcWZolNa-o9ZxzXJQkMdG9WQ66soX3s-E,2675
|
115
|
-
tico/serialize/operators/op_conv2d.py,sha256=
|
116
|
+
tico/serialize/operators/op_conv2d.py,sha256=a8aU0CwPgCYM37rDWmrCpxMoQZQdxzXaPtJAVB7dK0M,7283
|
116
117
|
tico/serialize/operators/op_copy.py,sha256=W_ih1yqqMwSCO_l9l_LUn_G_IoTgDJcNUnAbX1ZITZI,6054
|
117
118
|
tico/serialize/operators/op_cos.py,sha256=N12bNyuTQIxRnD0eHRPdFVzRQPMy1NFM4iM8oQ4lYzw,2034
|
118
119
|
tico/serialize/operators/op_cumsum.py,sha256=HhPF2uKMamk8KIiV0j6P-grU8oZ9AhlcRsRVC28oYVw,3731
|
@@ -138,7 +139,8 @@ tico/serialize/operators/op_log1p.py,sha256=lH0rLxpag7kGeM5UiE5b1Q4JluOE-yiQSsEc
|
|
138
139
|
tico/serialize/operators/op_logical_and.py,sha256=WhQ8knuq32BO-WhAqkOgpcUStPkjoPmRWuYNsKveF3w,2163
|
139
140
|
tico/serialize/operators/op_logical_not.py,sha256=ugrVcRqR3IvUUaiRVW5cArCYJbzmkcXp88QM846jCww,2129
|
140
141
|
tico/serialize/operators/op_lt.py,sha256=_vA7dWpV9wVBxB7JL9pLQT9BsV91NGQBq_0auAtHK5Y,2080
|
141
|
-
tico/serialize/operators/
|
142
|
+
tico/serialize/operators/op_max_dim.py,sha256=nS_TZl5uq4uv1LwgBD9Wddyac4atKqBiIWKIyeXse2s,2519
|
143
|
+
tico/serialize/operators/op_max_pool2d_with_indices.py,sha256=GBeBNEyohVSGMIiY0Z1UUX-9N8OdVGitbGNAq_TJZd4,5631
|
142
144
|
tico/serialize/operators/op_maximum.py,sha256=JjBr6gWEnuakLuk1_feotTHfIIm3s5YqWmqhUMpSPI0,1873
|
143
145
|
tico/serialize/operators/op_mean.py,sha256=rVQZOxCJkHFY4kQBAS1HVK0HkcqxgkSy6zvEDLX_WYQ,2267
|
144
146
|
tico/serialize/operators/op_minimum.py,sha256=fASjQVcTPCin02umQwFPdq2ss-Ve7S5A33J3QmmQ_wQ,1873
|
@@ -173,7 +175,7 @@ tico/serialize/operators/op_to_copy.py,sha256=a8T0uPMavMO_md1a-4_0dlvDHyZS_xew0q
|
|
173
175
|
tico/serialize/operators/op_unsqueeze.py,sha256=ZHhfVXSWEiwb2VDYX5uhxbGQyzZjKT7CrbBpVGxVHBU,2310
|
174
176
|
tico/serialize/operators/op_view.py,sha256=5EMww-ve17Vm9XPuV03Tn7vJsjpU2J8U4d_FOrlm9_o,2546
|
175
177
|
tico/serialize/operators/op_where.py,sha256=qZDFKVQ2u8HB0Jjpto_1A4g-jfpEprAbBT3PmIGzdoY,2855
|
176
|
-
tico/serialize/operators/utils.py,sha256=
|
178
|
+
tico/serialize/operators/utils.py,sha256=lXGpEJW1h8U_-gfc6EWjvvSiq3yJ9P-v1v3EMRT_pSk,2954
|
177
179
|
tico/utils/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
|
178
180
|
tico/utils/convert.py,sha256=KCllPnvQ8bjEYR1yI72s9aNBp7Py1CzIEEpYSYZcu60,11684
|
179
181
|
tico/utils/define.py,sha256=Ypgp7YffM4pgPl4Zh6TmogSn1OxGBMRw_e09qYGflZk,1467
|
@@ -187,14 +189,14 @@ tico/utils/passes.py,sha256=kGmDe__5cPaO6i5EDAoXSVe6yXEoX9hAny4ROb3ZEmQ,2409
|
|
187
189
|
tico/utils/register_custom_op.py,sha256=iRQvdqlBqrJxq_pNkvJyDIJD_SYtCUl88wwbbuvSwlk,22952
|
188
190
|
tico/utils/trace_decorators.py,sha256=ddLIiKQfSaQrxgF1kNpwjFTQnXENzeSfcr1kuAW4jGI,3221
|
189
191
|
tico/utils/utils.py,sha256=pybDU1LoNhjEplANig11lboX9yzYRkvFCSmyYth_2Do,10359
|
190
|
-
tico/utils/validate_args_kwargs.py,sha256=
|
192
|
+
tico/utils/validate_args_kwargs.py,sha256=P4aMnr9EhNCtc_AgJPpuezfQbqFfDn0lhJSWqmumLZ8,25054
|
191
193
|
tico/utils/mx/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
|
192
194
|
tico/utils/mx/elemwise_ops.py,sha256=V6glyAHsVR1joqpsgnNytatCD_ew92xNWZ19UFDoMTA,10281
|
193
195
|
tico/utils/mx/formats.py,sha256=uzNWyu-1onUlwQfX5cZ6fZSUfHMRqorper7_T1k3jfk,3404
|
194
196
|
tico/utils/mx/mx_ops.py,sha256=RcfUTYVi-wilGB2sC35OeARdwDqnixv7dG5iyZ-fQT8,8555
|
195
|
-
tico-0.1.0.
|
196
|
-
tico-0.1.0.
|
197
|
-
tico-0.1.0.
|
198
|
-
tico-0.1.0.
|
199
|
-
tico-0.1.0.
|
200
|
-
tico-0.1.0.
|
197
|
+
tico-0.1.0.dev250527.dist-info/LICENSE,sha256=kp4JLII7bzRhPb0CPD5XTDZMh22BQ7h3k3B7t8TiSbw,12644
|
198
|
+
tico-0.1.0.dev250527.dist-info/METADATA,sha256=6z0-wJTVKt3EvNXMPY3CLHXIvQulhZdeQaJ1oMFhoz0,8633
|
199
|
+
tico-0.1.0.dev250527.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
200
|
+
tico-0.1.0.dev250527.dist-info/entry_points.txt,sha256=kBKYSS_IYrSXmUYevmmepqIVPScq5vF8ulQRu3I_Zf0,59
|
201
|
+
tico-0.1.0.dev250527.dist-info/top_level.txt,sha256=oqs7UPoNSKZEwqsX8B-KAWdQwfAa7i60pbxW_Jk7P3w,5
|
202
|
+
tico-0.1.0.dev250527.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|