onnx2tf 1.29.17__py3-none-any.whl → 1.29.19__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.
- onnx2tf/__init__.py +1 -1
- onnx2tf/ops/Col2Im.py +108 -64
- onnx2tf/ops/DFT.py +245 -0
- onnx2tf/ops/DeformConv.py +399 -0
- onnx2tf/ops/ImageDecoder.py +147 -0
- onnx2tf/ops/NegativeLogLikelihoodLoss.py +237 -0
- onnx2tf/ops/RMSNormalization.py +175 -0
- onnx2tf/ops/RegexFullMatch.py +108 -0
- onnx2tf/ops/RotaryEmbedding.py +285 -0
- onnx2tf/ops/Scan.py +438 -0
- onnx2tf/ops/SoftmaxCrossEntropyLoss.py +289 -0
- onnx2tf/ops/StringConcat.py +128 -0
- onnx2tf/ops/StringNormalizer.py +54 -39
- onnx2tf/ops/StringSplit.py +156 -0
- onnx2tf/ops/TensorScatter.py +223 -0
- {onnx2tf-1.29.17.dist-info → onnx2tf-1.29.19.dist-info}/METADATA +15 -14
- {onnx2tf-1.29.17.dist-info → onnx2tf-1.29.19.dist-info}/RECORD +19 -7
- {onnx2tf-1.29.17.dist-info → onnx2tf-1.29.19.dist-info}/WHEEL +1 -1
- {onnx2tf-1.29.17.dist-info → onnx2tf-1.29.19.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import random
|
|
3
|
+
random.seed(0)
|
|
4
|
+
import numpy as np
|
|
5
|
+
np.random.seed(0)
|
|
6
|
+
import tensorflow as tf
|
|
7
|
+
import onnx_graphsurgeon as gs
|
|
8
|
+
from onnx2tf.utils.common_functions import (
|
|
9
|
+
get_constant_or_variable,
|
|
10
|
+
print_node_info,
|
|
11
|
+
inverted_operation_enable_disable,
|
|
12
|
+
make_tf_node_info,
|
|
13
|
+
convert_axis,
|
|
14
|
+
get_replacement_parameter,
|
|
15
|
+
pre_process_transpose,
|
|
16
|
+
post_process_transpose,
|
|
17
|
+
)
|
|
18
|
+
from onnx2tf.utils.enums import NUMPY_DTYPES_TO_TF_DTYPES
|
|
19
|
+
from onnx2tf.utils.logging import *
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def _as_tensor(value):
|
|
23
|
+
if isinstance(value, np.ndarray):
|
|
24
|
+
return tf.convert_to_tensor(value)
|
|
25
|
+
if isinstance(value, (np.generic, int, float, bool, str, bytes)):
|
|
26
|
+
return tf.convert_to_tensor(value)
|
|
27
|
+
return value
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@print_node_info
|
|
31
|
+
@inverted_operation_enable_disable
|
|
32
|
+
@get_replacement_parameter
|
|
33
|
+
def make_node(
|
|
34
|
+
*,
|
|
35
|
+
graph_node: gs.Node,
|
|
36
|
+
tf_layers_dict: dict,
|
|
37
|
+
**kwargs: dict,
|
|
38
|
+
):
|
|
39
|
+
"""TensorScatter
|
|
40
|
+
|
|
41
|
+
Parameters
|
|
42
|
+
----------
|
|
43
|
+
graph_node: gs.Node
|
|
44
|
+
graph_surgeon Node
|
|
45
|
+
|
|
46
|
+
tf_layers_dict: dict
|
|
47
|
+
optype, shape, dtype, tensorflow graph
|
|
48
|
+
"""
|
|
49
|
+
before_op_output_shape_trans_1 = \
|
|
50
|
+
tf_layers_dict.get(graph_node.inputs[0].name, {}).get('before_op_output_shape_trans', True)
|
|
51
|
+
before_op_output_shape_trans_2 = \
|
|
52
|
+
tf_layers_dict.get(graph_node.inputs[1].name, {}).get('before_op_output_shape_trans', True)
|
|
53
|
+
before_op_output_shape_trans = \
|
|
54
|
+
before_op_output_shape_trans_1 \
|
|
55
|
+
and before_op_output_shape_trans_2
|
|
56
|
+
if len(graph_node.inputs) >= 3:
|
|
57
|
+
before_op_output_shape_trans_3 = \
|
|
58
|
+
tf_layers_dict.get(graph_node.inputs[2].name, {}).get('before_op_output_shape_trans', True)
|
|
59
|
+
before_op_output_shape_trans = \
|
|
60
|
+
before_op_output_shape_trans \
|
|
61
|
+
and before_op_output_shape_trans_3
|
|
62
|
+
|
|
63
|
+
graph_node_input_1 = get_constant_or_variable(
|
|
64
|
+
graph_node.inputs[0],
|
|
65
|
+
before_op_output_shape_trans,
|
|
66
|
+
)
|
|
67
|
+
graph_node_input_2 = get_constant_or_variable(
|
|
68
|
+
graph_node.inputs[1],
|
|
69
|
+
before_op_output_shape_trans,
|
|
70
|
+
)
|
|
71
|
+
graph_node_input_3 = None
|
|
72
|
+
if len(graph_node.inputs) >= 3:
|
|
73
|
+
graph_node_input_3 = get_constant_or_variable(
|
|
74
|
+
graph_node.inputs[2],
|
|
75
|
+
before_op_output_shape_trans=False,
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
graph_node_output: gs.Variable = graph_node.outputs[0]
|
|
79
|
+
shape = graph_node_output.shape
|
|
80
|
+
dtype = graph_node_output.dtype
|
|
81
|
+
|
|
82
|
+
past_cache = tf_layers_dict[graph_node_input_1.name]['tf_node'] \
|
|
83
|
+
if isinstance(graph_node_input_1, gs.Variable) else graph_node_input_1
|
|
84
|
+
update = tf_layers_dict[graph_node_input_2.name]['tf_node'] \
|
|
85
|
+
if isinstance(graph_node_input_2, gs.Variable) else graph_node_input_2
|
|
86
|
+
write_indices = None
|
|
87
|
+
if graph_node_input_3 is not None:
|
|
88
|
+
write_indices = tf_layers_dict[graph_node_input_3.name]['tf_node'] \
|
|
89
|
+
if isinstance(graph_node_input_3, gs.Variable) else graph_node_input_3
|
|
90
|
+
|
|
91
|
+
# Preserving Graph Structure (Dict)
|
|
92
|
+
tf_layers_dict[graph_node_output.name] = {
|
|
93
|
+
'optype': graph_node.op,
|
|
94
|
+
'shape': shape,
|
|
95
|
+
'dtype': dtype,
|
|
96
|
+
'nhwc': tf_layers_dict[graph_node_input_1.name]['nhwc'] \
|
|
97
|
+
if isinstance(graph_node_input_1, gs.Variable) \
|
|
98
|
+
and 'nhwc' in tf_layers_dict[graph_node_input_1.name].keys() else False
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
# Pre-process transpose
|
|
102
|
+
past_cache = pre_process_transpose(
|
|
103
|
+
value_before_transpose=past_cache,
|
|
104
|
+
param_target='inputs',
|
|
105
|
+
param_name=graph_node.inputs[0].name,
|
|
106
|
+
**kwargs,
|
|
107
|
+
)
|
|
108
|
+
update = pre_process_transpose(
|
|
109
|
+
value_before_transpose=update,
|
|
110
|
+
param_target='inputs',
|
|
111
|
+
param_name=graph_node.inputs[1].name,
|
|
112
|
+
**kwargs,
|
|
113
|
+
)
|
|
114
|
+
if write_indices is not None:
|
|
115
|
+
write_indices = pre_process_transpose(
|
|
116
|
+
value_before_transpose=write_indices,
|
|
117
|
+
param_target='inputs',
|
|
118
|
+
param_name=graph_node.inputs[2].name,
|
|
119
|
+
**kwargs,
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
# Generation of TF OP
|
|
123
|
+
past_cache = _as_tensor(past_cache)
|
|
124
|
+
update = _as_tensor(update)
|
|
125
|
+
if write_indices is not None:
|
|
126
|
+
write_indices = _as_tensor(write_indices)
|
|
127
|
+
|
|
128
|
+
cache_rank = past_cache.shape.rank
|
|
129
|
+
if cache_rank is None and graph_node.inputs[0].shape is not None:
|
|
130
|
+
cache_rank = len(graph_node.inputs[0].shape)
|
|
131
|
+
if cache_rank is None:
|
|
132
|
+
error(
|
|
133
|
+
f'TensorScatter requires known input rank.\n' +
|
|
134
|
+
f'graph_node.name: {graph_node.name}'
|
|
135
|
+
)
|
|
136
|
+
sys.exit(1)
|
|
137
|
+
axis = graph_node.attrs.get('axis', -2)
|
|
138
|
+
axis = convert_axis(
|
|
139
|
+
axis=axis,
|
|
140
|
+
tensor_rank=cache_rank,
|
|
141
|
+
before_op_output_shape_trans=before_op_output_shape_trans,
|
|
142
|
+
)
|
|
143
|
+
mode = graph_node.attrs.get('mode', 'linear')
|
|
144
|
+
if mode not in ['linear', 'circular']:
|
|
145
|
+
error(
|
|
146
|
+
f'TensorScatter supports mode=linear or mode=circular only. mode={mode}\n' +
|
|
147
|
+
f'graph_node.name: {graph_node.name}'
|
|
148
|
+
)
|
|
149
|
+
sys.exit(1)
|
|
150
|
+
|
|
151
|
+
past_shape = tf.shape(past_cache)
|
|
152
|
+
update_shape = tf.shape(update)
|
|
153
|
+
|
|
154
|
+
if write_indices is None:
|
|
155
|
+
write_indices = tf.zeros(
|
|
156
|
+
[past_shape[0]],
|
|
157
|
+
dtype=tf.int64,
|
|
158
|
+
)
|
|
159
|
+
else:
|
|
160
|
+
write_indices = tf.cast(write_indices, tf.int64)
|
|
161
|
+
|
|
162
|
+
max_sequence_length = past_shape[axis]
|
|
163
|
+
sequence_length = update_shape[axis]
|
|
164
|
+
|
|
165
|
+
idx_tensors_per_axis = [
|
|
166
|
+
tf.range(update_shape[i]) for i in range(cache_rank)
|
|
167
|
+
]
|
|
168
|
+
idx_tensors_per_axis = tf.meshgrid(*idx_tensors_per_axis, indexing='ij')
|
|
169
|
+
|
|
170
|
+
axis_idx = idx_tensors_per_axis[axis]
|
|
171
|
+
batch_idx = idx_tensors_per_axis[0]
|
|
172
|
+
write_offsets = tf.gather(write_indices, batch_idx)
|
|
173
|
+
axis_idx = axis_idx + tf.cast(write_offsets, axis_idx.dtype)
|
|
174
|
+
if mode == 'circular':
|
|
175
|
+
axis_idx = tf.math.floormod(
|
|
176
|
+
axis_idx,
|
|
177
|
+
tf.cast(max_sequence_length, axis_idx.dtype),
|
|
178
|
+
)
|
|
179
|
+
idx_tensors_per_axis[axis] = axis_idx
|
|
180
|
+
|
|
181
|
+
coordinate = tf.stack(idx_tensors_per_axis, axis=-1)
|
|
182
|
+
indices = tf.reshape(coordinate, [-1, cache_rank])
|
|
183
|
+
indices = tf.cast(indices, tf.int64)
|
|
184
|
+
updates = tf.reshape(update, [-1])
|
|
185
|
+
|
|
186
|
+
output = tf.tensor_scatter_nd_update(
|
|
187
|
+
tensor=past_cache,
|
|
188
|
+
indices=indices,
|
|
189
|
+
updates=updates,
|
|
190
|
+
name=graph_node.name,
|
|
191
|
+
)
|
|
192
|
+
output_dtype = NUMPY_DTYPES_TO_TF_DTYPES[past_cache.dtype] \
|
|
193
|
+
if isinstance(past_cache.dtype, np.dtype) else past_cache.dtype
|
|
194
|
+
output = tf.cast(output, output_dtype)
|
|
195
|
+
|
|
196
|
+
tf_layers_dict[graph_node_output.name]['tf_node'] = output
|
|
197
|
+
|
|
198
|
+
# Post-process transpose
|
|
199
|
+
tf_layers_dict[graph_node_output.name]['tf_node'] = post_process_transpose(
|
|
200
|
+
value_before_transpose=tf_layers_dict[graph_node_output.name]['tf_node'],
|
|
201
|
+
param_target='outputs',
|
|
202
|
+
param_name=graph_node.outputs[0].name,
|
|
203
|
+
**kwargs,
|
|
204
|
+
)
|
|
205
|
+
|
|
206
|
+
# Generation of Debug Info
|
|
207
|
+
tf_layers_dict[graph_node_output.name]['tf_node_info'] = \
|
|
208
|
+
make_tf_node_info(
|
|
209
|
+
node_info={
|
|
210
|
+
'tf_op_type': tf.tensor_scatter_nd_update,
|
|
211
|
+
'tf_inputs': {
|
|
212
|
+
'tensor': past_cache,
|
|
213
|
+
'indices': indices,
|
|
214
|
+
'updates': update,
|
|
215
|
+
'axis': axis,
|
|
216
|
+
'mode': mode,
|
|
217
|
+
'write_indices': write_indices,
|
|
218
|
+
},
|
|
219
|
+
'tf_outputs': {
|
|
220
|
+
'output': tf_layers_dict[graph_node_output.name]['tf_node'],
|
|
221
|
+
},
|
|
222
|
+
}
|
|
223
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: onnx2tf
|
|
3
|
-
Version: 1.29.
|
|
3
|
+
Version: 1.29.19
|
|
4
4
|
Summary: Self-Created Tools to convert ONNX files (NCHW) to TensorFlow/TFLite/Keras format (NHWC). The purpose of this tool is to solve the massive Transpose extrapolation problem in onnx-tensorflow (onnx-tf).
|
|
5
5
|
Keywords: onnx,tensorflow,tflite,keras,deep-learning,machine-learning
|
|
6
6
|
Author: Katsuya Hyodo
|
|
@@ -137,11 +137,11 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
|
|
|
137
137
|
|Cos|:heavy_check_mark:|
|
|
138
138
|
|CumProd|:heavy_check_mark:|
|
|
139
139
|
|CumSum|:heavy_check_mark:|
|
|
140
|
-
|DeformConv
|
|
140
|
+
|DeformConv|:white_check_mark:|
|
|
141
141
|
|DepthToSpace|:heavy_check_mark:|
|
|
142
142
|
|Det|:heavy_check_mark:|
|
|
143
143
|
|DequantizeLinear|:heavy_check_mark:|
|
|
144
|
-
|DFT
|
|
144
|
+
|DFT|:white_check_mark:|
|
|
145
145
|
|Div|:heavy_check_mark:|
|
|
146
146
|
|Dropout|:heavy_check_mark:|
|
|
147
147
|
|DynamicQuantizeLinear|:heavy_check_mark:|
|
|
@@ -175,7 +175,7 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
|
|
|
175
175
|
|HardSwish|:heavy_check_mark:|
|
|
176
176
|
|Identity|:heavy_check_mark:|
|
|
177
177
|
|If|:heavy_check_mark:|
|
|
178
|
-
|ImageDecoder
|
|
178
|
+
|ImageDecoder|:white_check_mark:|
|
|
179
179
|
|Input|:heavy_check_mark:|
|
|
180
180
|
|InstanceNormalization|:heavy_check_mark:|
|
|
181
181
|
|Inverse|:heavy_check_mark:|
|
|
@@ -207,7 +207,7 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
|
|
|
207
207
|
|Mul|:heavy_check_mark:|
|
|
208
208
|
|Multinomial|:heavy_check_mark:|
|
|
209
209
|
|Neg|:heavy_check_mark:|
|
|
210
|
-
|NegativeLogLikelihoodLoss
|
|
210
|
+
|NegativeLogLikelihoodLoss|:heavy_check_mark:|
|
|
211
211
|
|NonMaxSuppression|:heavy_check_mark:|
|
|
212
212
|
|NonZero|:heavy_check_mark:|
|
|
213
213
|
|Optional|**Help wanted**|
|
|
@@ -244,19 +244,20 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
|
|
|
244
244
|
|ReduceProd|:heavy_check_mark:|
|
|
245
245
|
|ReduceSum|:heavy_check_mark:|
|
|
246
246
|
|ReduceSumSquare|:heavy_check_mark:|
|
|
247
|
+
|RegexFullMatch|:heavy_check_mark:|
|
|
247
248
|
|Relu|:heavy_check_mark:|
|
|
248
249
|
|Reshape|:heavy_check_mark:|
|
|
249
250
|
|Resize|:heavy_check_mark:|
|
|
250
251
|
|ReverseSequence|:heavy_check_mark:|
|
|
251
252
|
|RNN|:heavy_check_mark:|
|
|
252
253
|
|RoiAlign|:heavy_check_mark:|
|
|
253
|
-
|RotaryEmbedding
|
|
254
|
+
|RotaryEmbedding|:heavy_check_mark:|
|
|
254
255
|
|Round|:heavy_check_mark:|
|
|
255
256
|
|ScaleAndTranslate|:heavy_check_mark:|
|
|
256
257
|
|Scatter|:heavy_check_mark:|
|
|
257
258
|
|ScatterElements|:heavy_check_mark:|
|
|
258
259
|
|ScatterND|:heavy_check_mark:|
|
|
259
|
-
|Scan
|
|
260
|
+
|Scan|:heavy_check_mark:|
|
|
260
261
|
|Selu|:heavy_check_mark:|
|
|
261
262
|
|SequenceAt|:heavy_check_mark:|
|
|
262
263
|
|SequenceConstruct|:heavy_check_mark:|
|
|
@@ -273,7 +274,7 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
|
|
|
273
274
|
|Size|:heavy_check_mark:|
|
|
274
275
|
|Slice|:heavy_check_mark:|
|
|
275
276
|
|Softmax|:heavy_check_mark:|
|
|
276
|
-
|SoftmaxCrossEntropyLoss
|
|
277
|
+
|SoftmaxCrossEntropyLoss|:heavy_check_mark:|
|
|
277
278
|
|Softplus|:heavy_check_mark:|
|
|
278
279
|
|Softsign|:heavy_check_mark:|
|
|
279
280
|
|SpaceToDepth|:heavy_check_mark:|
|
|
@@ -282,14 +283,14 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
|
|
|
282
283
|
|Sqrt|:heavy_check_mark:|
|
|
283
284
|
|Squeeze|:heavy_check_mark:|
|
|
284
285
|
|STFT|:white_check_mark:|
|
|
285
|
-
|StringConcat
|
|
286
|
-
|StringNormalizer|:
|
|
287
|
-
|StringSplit
|
|
286
|
+
|StringConcat|:heavy_check_mark:|
|
|
287
|
+
|StringNormalizer|:heavy_check_mark:|
|
|
288
|
+
|StringSplit|:heavy_check_mark:|
|
|
288
289
|
|Sub|:heavy_check_mark:|
|
|
289
290
|
|Sum|:heavy_check_mark:|
|
|
290
291
|
|Tan|:heavy_check_mark:|
|
|
291
292
|
|Tanh|:heavy_check_mark:|
|
|
292
|
-
|TensorScatter
|
|
293
|
+
|TensorScatter|:heavy_check_mark:|
|
|
293
294
|
|TfIdfVectorizer|**Help wanted**|
|
|
294
295
|
|ThresholdedRelu|:heavy_check_mark:|
|
|
295
296
|
|Tile|:heavy_check_mark:|
|
|
@@ -364,7 +365,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
|
|
|
364
365
|
docker run --rm -it \
|
|
365
366
|
-v `pwd`:/workdir \
|
|
366
367
|
-w /workdir \
|
|
367
|
-
ghcr.io/pinto0309/onnx2tf:1.29.
|
|
368
|
+
ghcr.io/pinto0309/onnx2tf:1.29.19
|
|
368
369
|
|
|
369
370
|
or
|
|
370
371
|
|
|
@@ -372,7 +373,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
|
|
|
372
373
|
docker run --rm -it \
|
|
373
374
|
-v `pwd`:/workdir \
|
|
374
375
|
-w /workdir \
|
|
375
|
-
docker.io/pinto0309/onnx2tf:1.29.
|
|
376
|
+
docker.io/pinto0309/onnx2tf:1.29.19
|
|
376
377
|
|
|
377
378
|
or
|
|
378
379
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
onnx2tf/__init__.py,sha256=
|
|
1
|
+
onnx2tf/__init__.py,sha256=j0g0sP9V7WMAY5PXs_oOHLBgUSJ1dcjLILPUq39xOnU,67
|
|
2
2
|
onnx2tf/__main__.py,sha256=2RSCQ7d4lc6CwD-rlGn9UicPFg-P5du7ZD_yh-kuBEU,57
|
|
3
3
|
onnx2tf/onnx2tf.py,sha256=y8FewjpNYAFnUs0cjq6JzdYkiXQSm1o_sZ3PXLJzK64,161921
|
|
4
4
|
onnx2tf/ops/Abs.py,sha256=V7btmCG_ZvK_qJovUsguq0ZMJ349mhNQ4FHSgzP_Yuo,4029
|
|
@@ -27,7 +27,7 @@ onnx2tf/ops/Cast.py,sha256=M0LRClHPgZ_8NubwME6ipKrAqcY9aKC5ihQXCkTkNkM,4601
|
|
|
27
27
|
onnx2tf/ops/Ceil.py,sha256=0-jaueltpQSwpOIDUmy9DdTy98qN-XimYu5cHVPnUIs,3586
|
|
28
28
|
onnx2tf/ops/Celu.py,sha256=9g7WNKo4G_jMtUXcoOfpNdLYqEsuyXLPkkyQZxDuL4U,3853
|
|
29
29
|
onnx2tf/ops/Clip.py,sha256=K3Pgt9BXl5_rzg6s-kPFmwElL5COsvolRY1BUTo7UWw,8753
|
|
30
|
-
onnx2tf/ops/Col2Im.py,sha256=
|
|
30
|
+
onnx2tf/ops/Col2Im.py,sha256=8n66z3O59VJvJRlcrj93a5TLJ_qh-aSdR_-8SAQIlRo,7658
|
|
31
31
|
onnx2tf/ops/Compress.py,sha256=NvDGr9gCNl-8YG41xDBfe3UvhRP03K-ktdtY_MoytBc,3667
|
|
32
32
|
onnx2tf/ops/Concat.py,sha256=kDk7LN01nHuQyYnEPUEikSQ-M17jguAc-qFtCb9tg9I,38537
|
|
33
33
|
onnx2tf/ops/ConcatFromSequence.py,sha256=z8pNmGQRGq9cxWORW330NZS_0zsmhFudLswMyPn8AXU,3086
|
|
@@ -40,6 +40,8 @@ onnx2tf/ops/Cos.py,sha256=0v5ZJZRzrswVEObyxf4f0RvnWMWZA4uCEdoeq_VE31s,3608
|
|
|
40
40
|
onnx2tf/ops/Cosh.py,sha256=-L3QkQtiVBJIv1sSxbXtetVIwgI_2T4WC1O4t2aJ8Gc,3585
|
|
41
41
|
onnx2tf/ops/CumProd.py,sha256=k4hTEQrkwS7vk7pEy2Btvy2y0o70NlWj1MgsNomfOPg,3957
|
|
42
42
|
onnx2tf/ops/CumSum.py,sha256=SYKmD5r9Cm9gsCkJPNFoHigvvBO1PmRYRrVmn1HE78o,3954
|
|
43
|
+
onnx2tf/ops/DFT.py,sha256=rL_w1z16N9Kkf0TyMbywOawld0qZ_g1QOD9npGYD_zY,8086
|
|
44
|
+
onnx2tf/ops/DeformConv.py,sha256=tlhZDzNYAT093PkBDP4s6-EO-vnSdW_0KZTxtddjajM,13541
|
|
43
45
|
onnx2tf/ops/DepthToSpace.py,sha256=BiyBZ88dmXQAkZ5Jc-Ddo-5Kn8dRYCnoik_XnOFzqXc,14449
|
|
44
46
|
onnx2tf/ops/DequantizeLinear.py,sha256=1v43E1hUqO3g7N-PL1fy_cGj4oUgbphh7vXIGhUAyGc,6463
|
|
45
47
|
onnx2tf/ops/Det.py,sha256=kxuHkpv_KNHkof0uBv2RLtr3G1uA76MFHyCiCYCBXkw,3590
|
|
@@ -76,6 +78,7 @@ onnx2tf/ops/HardSwish.py,sha256=nEng3LCDQYMZ4XhFZ7pXKGyRsM2_waowi8PlZt_f6Ck,3994
|
|
|
76
78
|
onnx2tf/ops/Hardmax.py,sha256=tiMch3Tuc8Rvy52hgGSfqfOVyXaEsnxYplRMy7vtpyA,4398
|
|
77
79
|
onnx2tf/ops/Identity.py,sha256=egudADqdhe4BiunYHUTh-AlDAkPpRESRT2eG0Q4rBts,2425
|
|
78
80
|
onnx2tf/ops/If.py,sha256=Z3VEMm1mOKomYl1Mw58shc83kNPZsYs-wvhse7PlfTY,7062
|
|
81
|
+
onnx2tf/ops/ImageDecoder.py,sha256=HlIvsYOnSuxmreFSS6nlIXsMlDMsTGkag260d1lSiLc,4635
|
|
79
82
|
onnx2tf/ops/Input.py,sha256=aRZQ4uLWmMS3q317wZO68qqks8p3QDOINhTEObAhvvY,16225
|
|
80
83
|
onnx2tf/ops/InstanceNormalization.py,sha256=gUixsJ1105tt8UGwoLLdZ4V95GiZwzHm_jJMugqQ1yQ,11997
|
|
81
84
|
onnx2tf/ops/Inverse.py,sha256=YsRs0mpZg6dXWXnM1-UU5PcaUvrUqLmDDCNFpirXqp4,4595
|
|
@@ -107,6 +110,7 @@ onnx2tf/ops/Mod.py,sha256=Y7kqCEOLqof4zVszJslQayt6COyU-MS5qKLHAYOyxmc,10023
|
|
|
107
110
|
onnx2tf/ops/Mul.py,sha256=0hOf2O8ktRpIi4eOMfLGdwKl-yACFyGO3nU_s_XXUIE,15986
|
|
108
111
|
onnx2tf/ops/Multinomial.py,sha256=0HQC76IA3AvRsUx9RS0S__nIfEmPuvIaDfSt8bns4FU,3158
|
|
109
112
|
onnx2tf/ops/Neg.py,sha256=vu2ExVXyGpggAM_DNPeZj9QFeUyqhn5XmJnDlPJFsQU,4219
|
|
113
|
+
onnx2tf/ops/NegativeLogLikelihoodLoss.py,sha256=WMhNzV60PFmtY19KrYHw9MP7BA1DzjrAGGVyXLSW_7Q,7967
|
|
110
114
|
onnx2tf/ops/NonMaxSuppression.py,sha256=nHeiX5eMGQAq_51KoljNZGlZddJ89Oe7Yfe33xLhl6M,15763
|
|
111
115
|
onnx2tf/ops/NonZero.py,sha256=2EYZFMNIejeqR2azHw0CT2mthiKuRPQepUafzeVE8Nk,2788
|
|
112
116
|
onnx2tf/ops/Not.py,sha256=wn3nThGf4gtpQdHjP7OX2xlhyaNQGeHifjZ18O5shhg,3599
|
|
@@ -126,6 +130,7 @@ onnx2tf/ops/QLinearMul.py,sha256=QUqevMwVcDlSqAWlQ9ZTpNcvRlDXO1j3wWzEQZGEdq8,505
|
|
|
126
130
|
onnx2tf/ops/QLinearSigmoid.py,sha256=pV18RrqC64ADQQMaxJIO1iwrjbf2hpUVcvBQfntiBJ0,3931
|
|
127
131
|
onnx2tf/ops/QLinearSoftmax.py,sha256=GtfT2gVH-V2j4NRqBbDFFfZWygp7TIjP662vo8k6dbU,4256
|
|
128
132
|
onnx2tf/ops/QuantizeLinear.py,sha256=g_kZy7Ei4Ey_rGQWiSKDPaY9TOONegLxV1Jyt_gTP0k,7255
|
|
133
|
+
onnx2tf/ops/RMSNormalization.py,sha256=MJkJ_nWmybwOGPTqymPtZawPq4cY28HKm_PNartBeNk,5719
|
|
129
134
|
onnx2tf/ops/RNN.py,sha256=55G5muM0BmJU9xIUU7hWsxhz5npisTfLJipR1w83ZDk,28143
|
|
130
135
|
onnx2tf/ops/RandomNormal.py,sha256=g1HvpScrHBOffqPT6yhSV1y2fNx7klruD6Vkolfl0to,2013
|
|
131
136
|
onnx2tf/ops/RandomNormalLike.py,sha256=BKguRxj48JhJ68Hce6xO8eE0OE-mTwnpymxBlV81ofw,2772
|
|
@@ -143,14 +148,17 @@ onnx2tf/ops/ReduceMin.py,sha256=uVhoE6gz2_6vrirqYvikMGx4k7DTsyGk6mkBn-dMX-A,1243
|
|
|
143
148
|
onnx2tf/ops/ReduceProd.py,sha256=I4qqmdfr4t8i1sinuDqZrvndpw6KrpN1B7sFcjRUI9g,12438
|
|
144
149
|
onnx2tf/ops/ReduceSum.py,sha256=8vdqR5Qv8ui783ywa0xVuiMm3MNwRzGOD_GYFpsgPmc,12393
|
|
145
150
|
onnx2tf/ops/ReduceSumSquare.py,sha256=X8OFxb5YRl6VU12i35f7Gwzegvf4mXO56dp69n2TZPs,12336
|
|
151
|
+
onnx2tf/ops/RegexFullMatch.py,sha256=wbevjWnmJXPbLpOG2a2eBcxHF72lrV7PSW24o82MxAw,3084
|
|
146
152
|
onnx2tf/ops/Relu.py,sha256=FoCRlHmG-xI3YCPbR_7UlRDbk0Juw6N722iULONkwW0,5627
|
|
147
153
|
onnx2tf/ops/Reshape.py,sha256=_oPKYi1uSwt_aVsuAt9v127lt0aR5jnhHTzxKNEKdx0,25626
|
|
148
154
|
onnx2tf/ops/Resize.py,sha256=nvcp8X7daMapWgmpCsjg4ajt8EdTQCzB6xbHCqmEQ9M,20053
|
|
149
155
|
onnx2tf/ops/ReverseSequence.py,sha256=W2w_fBCiUXsD28grIz4AHNIoMjYXx6b6HkgwJTVRxf8,3308
|
|
150
156
|
onnx2tf/ops/RoiAlign.py,sha256=XgLdaJgsI6KX0u8tnQlVsvbpZECZp_TSnEuGR7LTaeM,8360
|
|
157
|
+
onnx2tf/ops/RotaryEmbedding.py,sha256=6V6FmPbNCX_M5KEs2wg-sKrzdOMvXNuuJOulBAdAGhI,9517
|
|
151
158
|
onnx2tf/ops/Round.py,sha256=OHdh1G2qgZe5OWlRc-OEOM4eYaA63LAoQ6hPmmUmR6o,3588
|
|
152
159
|
onnx2tf/ops/STFT.py,sha256=LDKN309_dBu4v9AYpz70uMJbNjRFiOte9O3wUL4bIJw,4463
|
|
153
160
|
onnx2tf/ops/ScaleAndTranslate.py,sha256=VQDDhSs9TyMLQy0mF7n8pZ2TuvoKY-Lhlzd7Inf4UdI,11989
|
|
161
|
+
onnx2tf/ops/Scan.py,sha256=hfN-DX6Gp-dG5158WMoHRrDWZAra3VSbsjsiphNqRIQ,16293
|
|
154
162
|
onnx2tf/ops/Scatter.py,sha256=5_rTM60FPCq8unyNPDO-BZXcuz6w9Uyl2Xqx-zJTpgg,746
|
|
155
163
|
onnx2tf/ops/ScatterElements.py,sha256=7u9-_pjS_x3JQsBCVnQyu6sPfuGx2o9qAW_RSZszOTs,7585
|
|
156
164
|
onnx2tf/ops/ScatterND.py,sha256=Y949fYKSAvkPW1s-58P7suafnna9hDLoTg0UA8cs2Ag,9087
|
|
@@ -170,6 +178,7 @@ onnx2tf/ops/Sinh.py,sha256=9zXIQWcZiZmu3RnQuQpW-PEgBLOKY51SY0OBu1B5eh8,3706
|
|
|
170
178
|
onnx2tf/ops/Size.py,sha256=vFD5eae9Jko3tHbBtydj2d3T3tbb4r0xua7OIH40p9M,2665
|
|
171
179
|
onnx2tf/ops/Slice.py,sha256=ChqpC_l-c32aZzI7o2GP7SyRz142Gwo0ctc75nkXFvE,26788
|
|
172
180
|
onnx2tf/ops/Softmax.py,sha256=CEnHcSm25v1QC4QVDg4fz1NooYY1v-Uq4GORd8dnnr8,14773
|
|
181
|
+
onnx2tf/ops/SoftmaxCrossEntropyLoss.py,sha256=F7EKMOyYRoz1gGPvmOB9B8u4WZbguKCjdlf3Y54BEg0,10364
|
|
173
182
|
onnx2tf/ops/Softplus.py,sha256=R44YMo8G2Ig15jBO6T2VOI6RhpUmjD70qvSCXFylU-Q,3605
|
|
174
183
|
onnx2tf/ops/Softsign.py,sha256=2ZdKH3KVHZXDzyO7S8f-O_aqRugurbRxd1i2g_fwCos,3600
|
|
175
184
|
onnx2tf/ops/SpaceToDepth.py,sha256=rWtPQNm2rErYs20gQyz-tFYsImAIUBGtdvfMVkJg5bo,2809
|
|
@@ -177,11 +186,14 @@ onnx2tf/ops/Split.py,sha256=Z2UwbEBnG8nY3fED__ijgD9KikTuqPBv5ZjHEeoNURU,12103
|
|
|
177
186
|
onnx2tf/ops/SplitToSequence.py,sha256=BS_JEd7DC7vuPfs5oRRW774mtlK--kqf9DJUalv-Agk,5062
|
|
178
187
|
onnx2tf/ops/Sqrt.py,sha256=-xE8Tk_6unSR56k9g3R46lML4Nht5kQwqJT0JYkn5ko,3585
|
|
179
188
|
onnx2tf/ops/Squeeze.py,sha256=FLIt2qjWh1IJyti1c4YHuepH2Fkxt40rnEKszzmwsnE,7980
|
|
180
|
-
onnx2tf/ops/
|
|
189
|
+
onnx2tf/ops/StringConcat.py,sha256=J0tlZ8f-DZEXsgLC8LrScSt2r5ibaVmg9jSpR4cEGUE,4006
|
|
190
|
+
onnx2tf/ops/StringNormalizer.py,sha256=N_E6lCwlDgIZNNKqK6Z8cOJ3DBI-jEyMBjxsZPPyASo,5914
|
|
191
|
+
onnx2tf/ops/StringSplit.py,sha256=YSATXLQtjQVzAY0Qp6GAFzkfgWNA7ywn13VdWu9a_zg,4866
|
|
181
192
|
onnx2tf/ops/Sub.py,sha256=JCUWNmRLrwJEB8_0MPRTzmZ4KAV_HLXNivUd_jNqPQI,11012
|
|
182
193
|
onnx2tf/ops/Sum.py,sha256=wtI0SbGuNFxkLskBk68ZhOAg3XyrIx-9xGYy1GZCVSo,3073
|
|
183
194
|
onnx2tf/ops/Tan.py,sha256=Ncig8clGvY7GWshqxRDRdcxjcbf_HTKGdpDw5ValrKI,3582
|
|
184
195
|
onnx2tf/ops/Tanh.py,sha256=PIQUvxS_AIDufblC2vc573nse2UCRA9z5yWd7kB-51s,3585
|
|
196
|
+
onnx2tf/ops/TensorScatter.py,sha256=xOB1HVeHXFUUTmKJfZuUBEyPSLpJYjzUf0cAMqblsnc,7413
|
|
185
197
|
onnx2tf/ops/ThresholdedRelu.py,sha256=ArF3uRH7jN8kdYYDNcivJgv9UTFl5aqqSH2Qu79j4sY,3769
|
|
186
198
|
onnx2tf/ops/Tile.py,sha256=xkprg6yTaykivcHFJ644opzVPctaeplu-Ed-OpS98Gg,12720
|
|
187
199
|
onnx2tf/ops/TopK.py,sha256=f6OG-DcMWneXwSjIkmY935SPyOMD5tMteHnlQHoJwQo,6348
|
|
@@ -199,7 +211,7 @@ onnx2tf/utils/enums.py,sha256=7c5TqetqB07VjyHoxJHfLgtqBqk9ZRyUF33fPOJR1IM,1649
|
|
|
199
211
|
onnx2tf/utils/iterative_json_optimizer.py,sha256=qqeIxWGxrhcCYk8-ebWnblnOkzDCwi-nseipHzHR_bk,10436
|
|
200
212
|
onnx2tf/utils/json_auto_generator.py,sha256=OC-SfKtUg7zUxaXTAg6kT0ShzIc3ByjDa3FNp173DtA,60302
|
|
201
213
|
onnx2tf/utils/logging.py,sha256=yUCmPuJ_XiUItM3sZMcaMO24JErkQy7zZwVTYWAuiKg,1982
|
|
202
|
-
onnx2tf-1.29.
|
|
203
|
-
onnx2tf-1.29.
|
|
204
|
-
onnx2tf-1.29.
|
|
205
|
-
onnx2tf-1.29.
|
|
214
|
+
onnx2tf-1.29.19.dist-info/WHEEL,sha256=fAguSjoiATBe7TNBkJwOjyL1Tt4wwiaQGtNtjRPNMQA,80
|
|
215
|
+
onnx2tf-1.29.19.dist-info/entry_points.txt,sha256=GuhvLu7ZlYECumbmoiFlKX0mFPtFi_Ti9L-E5yuQqKs,42
|
|
216
|
+
onnx2tf-1.29.19.dist-info/METADATA,sha256=rSyPbOdWaW3QovkZCVvFg5zn_INzTCm8KN_rjZBah0Q,154312
|
|
217
|
+
onnx2tf-1.29.19.dist-info/RECORD,,
|
|
File without changes
|