onnx2tf 1.29.17__py3-none-any.whl → 1.29.18__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/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.18.dist-info}/METADATA +13 -12
- {onnx2tf-1.29.17.dist-info → onnx2tf-1.29.18.dist-info}/RECORD +16 -6
- {onnx2tf-1.29.17.dist-info → onnx2tf-1.29.18.dist-info}/WHEEL +1 -1
- {onnx2tf-1.29.17.dist-info → onnx2tf-1.29.18.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.18
|
|
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
|
|
@@ -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.18
|
|
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.18
|
|
376
377
|
|
|
377
378
|
or
|
|
378
379
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
onnx2tf/__init__.py,sha256=
|
|
1
|
+
onnx2tf/__init__.py,sha256=GJI-T9Q6ftbR-PwGyLk5t5_Iv3hvUC3prwy56yvn7vA,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
|
|
@@ -76,6 +76,7 @@ onnx2tf/ops/HardSwish.py,sha256=nEng3LCDQYMZ4XhFZ7pXKGyRsM2_waowi8PlZt_f6Ck,3994
|
|
|
76
76
|
onnx2tf/ops/Hardmax.py,sha256=tiMch3Tuc8Rvy52hgGSfqfOVyXaEsnxYplRMy7vtpyA,4398
|
|
77
77
|
onnx2tf/ops/Identity.py,sha256=egudADqdhe4BiunYHUTh-AlDAkPpRESRT2eG0Q4rBts,2425
|
|
78
78
|
onnx2tf/ops/If.py,sha256=Z3VEMm1mOKomYl1Mw58shc83kNPZsYs-wvhse7PlfTY,7062
|
|
79
|
+
onnx2tf/ops/ImageDecoder.py,sha256=HlIvsYOnSuxmreFSS6nlIXsMlDMsTGkag260d1lSiLc,4635
|
|
79
80
|
onnx2tf/ops/Input.py,sha256=aRZQ4uLWmMS3q317wZO68qqks8p3QDOINhTEObAhvvY,16225
|
|
80
81
|
onnx2tf/ops/InstanceNormalization.py,sha256=gUixsJ1105tt8UGwoLLdZ4V95GiZwzHm_jJMugqQ1yQ,11997
|
|
81
82
|
onnx2tf/ops/Inverse.py,sha256=YsRs0mpZg6dXWXnM1-UU5PcaUvrUqLmDDCNFpirXqp4,4595
|
|
@@ -107,6 +108,7 @@ onnx2tf/ops/Mod.py,sha256=Y7kqCEOLqof4zVszJslQayt6COyU-MS5qKLHAYOyxmc,10023
|
|
|
107
108
|
onnx2tf/ops/Mul.py,sha256=0hOf2O8ktRpIi4eOMfLGdwKl-yACFyGO3nU_s_XXUIE,15986
|
|
108
109
|
onnx2tf/ops/Multinomial.py,sha256=0HQC76IA3AvRsUx9RS0S__nIfEmPuvIaDfSt8bns4FU,3158
|
|
109
110
|
onnx2tf/ops/Neg.py,sha256=vu2ExVXyGpggAM_DNPeZj9QFeUyqhn5XmJnDlPJFsQU,4219
|
|
111
|
+
onnx2tf/ops/NegativeLogLikelihoodLoss.py,sha256=WMhNzV60PFmtY19KrYHw9MP7BA1DzjrAGGVyXLSW_7Q,7967
|
|
110
112
|
onnx2tf/ops/NonMaxSuppression.py,sha256=nHeiX5eMGQAq_51KoljNZGlZddJ89Oe7Yfe33xLhl6M,15763
|
|
111
113
|
onnx2tf/ops/NonZero.py,sha256=2EYZFMNIejeqR2azHw0CT2mthiKuRPQepUafzeVE8Nk,2788
|
|
112
114
|
onnx2tf/ops/Not.py,sha256=wn3nThGf4gtpQdHjP7OX2xlhyaNQGeHifjZ18O5shhg,3599
|
|
@@ -126,6 +128,7 @@ onnx2tf/ops/QLinearMul.py,sha256=QUqevMwVcDlSqAWlQ9ZTpNcvRlDXO1j3wWzEQZGEdq8,505
|
|
|
126
128
|
onnx2tf/ops/QLinearSigmoid.py,sha256=pV18RrqC64ADQQMaxJIO1iwrjbf2hpUVcvBQfntiBJ0,3931
|
|
127
129
|
onnx2tf/ops/QLinearSoftmax.py,sha256=GtfT2gVH-V2j4NRqBbDFFfZWygp7TIjP662vo8k6dbU,4256
|
|
128
130
|
onnx2tf/ops/QuantizeLinear.py,sha256=g_kZy7Ei4Ey_rGQWiSKDPaY9TOONegLxV1Jyt_gTP0k,7255
|
|
131
|
+
onnx2tf/ops/RMSNormalization.py,sha256=MJkJ_nWmybwOGPTqymPtZawPq4cY28HKm_PNartBeNk,5719
|
|
129
132
|
onnx2tf/ops/RNN.py,sha256=55G5muM0BmJU9xIUU7hWsxhz5npisTfLJipR1w83ZDk,28143
|
|
130
133
|
onnx2tf/ops/RandomNormal.py,sha256=g1HvpScrHBOffqPT6yhSV1y2fNx7klruD6Vkolfl0to,2013
|
|
131
134
|
onnx2tf/ops/RandomNormalLike.py,sha256=BKguRxj48JhJ68Hce6xO8eE0OE-mTwnpymxBlV81ofw,2772
|
|
@@ -143,14 +146,17 @@ onnx2tf/ops/ReduceMin.py,sha256=uVhoE6gz2_6vrirqYvikMGx4k7DTsyGk6mkBn-dMX-A,1243
|
|
|
143
146
|
onnx2tf/ops/ReduceProd.py,sha256=I4qqmdfr4t8i1sinuDqZrvndpw6KrpN1B7sFcjRUI9g,12438
|
|
144
147
|
onnx2tf/ops/ReduceSum.py,sha256=8vdqR5Qv8ui783ywa0xVuiMm3MNwRzGOD_GYFpsgPmc,12393
|
|
145
148
|
onnx2tf/ops/ReduceSumSquare.py,sha256=X8OFxb5YRl6VU12i35f7Gwzegvf4mXO56dp69n2TZPs,12336
|
|
149
|
+
onnx2tf/ops/RegexFullMatch.py,sha256=wbevjWnmJXPbLpOG2a2eBcxHF72lrV7PSW24o82MxAw,3084
|
|
146
150
|
onnx2tf/ops/Relu.py,sha256=FoCRlHmG-xI3YCPbR_7UlRDbk0Juw6N722iULONkwW0,5627
|
|
147
151
|
onnx2tf/ops/Reshape.py,sha256=_oPKYi1uSwt_aVsuAt9v127lt0aR5jnhHTzxKNEKdx0,25626
|
|
148
152
|
onnx2tf/ops/Resize.py,sha256=nvcp8X7daMapWgmpCsjg4ajt8EdTQCzB6xbHCqmEQ9M,20053
|
|
149
153
|
onnx2tf/ops/ReverseSequence.py,sha256=W2w_fBCiUXsD28grIz4AHNIoMjYXx6b6HkgwJTVRxf8,3308
|
|
150
154
|
onnx2tf/ops/RoiAlign.py,sha256=XgLdaJgsI6KX0u8tnQlVsvbpZECZp_TSnEuGR7LTaeM,8360
|
|
155
|
+
onnx2tf/ops/RotaryEmbedding.py,sha256=6V6FmPbNCX_M5KEs2wg-sKrzdOMvXNuuJOulBAdAGhI,9517
|
|
151
156
|
onnx2tf/ops/Round.py,sha256=OHdh1G2qgZe5OWlRc-OEOM4eYaA63LAoQ6hPmmUmR6o,3588
|
|
152
157
|
onnx2tf/ops/STFT.py,sha256=LDKN309_dBu4v9AYpz70uMJbNjRFiOte9O3wUL4bIJw,4463
|
|
153
158
|
onnx2tf/ops/ScaleAndTranslate.py,sha256=VQDDhSs9TyMLQy0mF7n8pZ2TuvoKY-Lhlzd7Inf4UdI,11989
|
|
159
|
+
onnx2tf/ops/Scan.py,sha256=hfN-DX6Gp-dG5158WMoHRrDWZAra3VSbsjsiphNqRIQ,16293
|
|
154
160
|
onnx2tf/ops/Scatter.py,sha256=5_rTM60FPCq8unyNPDO-BZXcuz6w9Uyl2Xqx-zJTpgg,746
|
|
155
161
|
onnx2tf/ops/ScatterElements.py,sha256=7u9-_pjS_x3JQsBCVnQyu6sPfuGx2o9qAW_RSZszOTs,7585
|
|
156
162
|
onnx2tf/ops/ScatterND.py,sha256=Y949fYKSAvkPW1s-58P7suafnna9hDLoTg0UA8cs2Ag,9087
|
|
@@ -170,6 +176,7 @@ onnx2tf/ops/Sinh.py,sha256=9zXIQWcZiZmu3RnQuQpW-PEgBLOKY51SY0OBu1B5eh8,3706
|
|
|
170
176
|
onnx2tf/ops/Size.py,sha256=vFD5eae9Jko3tHbBtydj2d3T3tbb4r0xua7OIH40p9M,2665
|
|
171
177
|
onnx2tf/ops/Slice.py,sha256=ChqpC_l-c32aZzI7o2GP7SyRz142Gwo0ctc75nkXFvE,26788
|
|
172
178
|
onnx2tf/ops/Softmax.py,sha256=CEnHcSm25v1QC4QVDg4fz1NooYY1v-Uq4GORd8dnnr8,14773
|
|
179
|
+
onnx2tf/ops/SoftmaxCrossEntropyLoss.py,sha256=F7EKMOyYRoz1gGPvmOB9B8u4WZbguKCjdlf3Y54BEg0,10364
|
|
173
180
|
onnx2tf/ops/Softplus.py,sha256=R44YMo8G2Ig15jBO6T2VOI6RhpUmjD70qvSCXFylU-Q,3605
|
|
174
181
|
onnx2tf/ops/Softsign.py,sha256=2ZdKH3KVHZXDzyO7S8f-O_aqRugurbRxd1i2g_fwCos,3600
|
|
175
182
|
onnx2tf/ops/SpaceToDepth.py,sha256=rWtPQNm2rErYs20gQyz-tFYsImAIUBGtdvfMVkJg5bo,2809
|
|
@@ -177,11 +184,14 @@ onnx2tf/ops/Split.py,sha256=Z2UwbEBnG8nY3fED__ijgD9KikTuqPBv5ZjHEeoNURU,12103
|
|
|
177
184
|
onnx2tf/ops/SplitToSequence.py,sha256=BS_JEd7DC7vuPfs5oRRW774mtlK--kqf9DJUalv-Agk,5062
|
|
178
185
|
onnx2tf/ops/Sqrt.py,sha256=-xE8Tk_6unSR56k9g3R46lML4Nht5kQwqJT0JYkn5ko,3585
|
|
179
186
|
onnx2tf/ops/Squeeze.py,sha256=FLIt2qjWh1IJyti1c4YHuepH2Fkxt40rnEKszzmwsnE,7980
|
|
180
|
-
onnx2tf/ops/
|
|
187
|
+
onnx2tf/ops/StringConcat.py,sha256=J0tlZ8f-DZEXsgLC8LrScSt2r5ibaVmg9jSpR4cEGUE,4006
|
|
188
|
+
onnx2tf/ops/StringNormalizer.py,sha256=N_E6lCwlDgIZNNKqK6Z8cOJ3DBI-jEyMBjxsZPPyASo,5914
|
|
189
|
+
onnx2tf/ops/StringSplit.py,sha256=YSATXLQtjQVzAY0Qp6GAFzkfgWNA7ywn13VdWu9a_zg,4866
|
|
181
190
|
onnx2tf/ops/Sub.py,sha256=JCUWNmRLrwJEB8_0MPRTzmZ4KAV_HLXNivUd_jNqPQI,11012
|
|
182
191
|
onnx2tf/ops/Sum.py,sha256=wtI0SbGuNFxkLskBk68ZhOAg3XyrIx-9xGYy1GZCVSo,3073
|
|
183
192
|
onnx2tf/ops/Tan.py,sha256=Ncig8clGvY7GWshqxRDRdcxjcbf_HTKGdpDw5ValrKI,3582
|
|
184
193
|
onnx2tf/ops/Tanh.py,sha256=PIQUvxS_AIDufblC2vc573nse2UCRA9z5yWd7kB-51s,3585
|
|
194
|
+
onnx2tf/ops/TensorScatter.py,sha256=xOB1HVeHXFUUTmKJfZuUBEyPSLpJYjzUf0cAMqblsnc,7413
|
|
185
195
|
onnx2tf/ops/ThresholdedRelu.py,sha256=ArF3uRH7jN8kdYYDNcivJgv9UTFl5aqqSH2Qu79j4sY,3769
|
|
186
196
|
onnx2tf/ops/Tile.py,sha256=xkprg6yTaykivcHFJ644opzVPctaeplu-Ed-OpS98Gg,12720
|
|
187
197
|
onnx2tf/ops/TopK.py,sha256=f6OG-DcMWneXwSjIkmY935SPyOMD5tMteHnlQHoJwQo,6348
|
|
@@ -199,7 +209,7 @@ onnx2tf/utils/enums.py,sha256=7c5TqetqB07VjyHoxJHfLgtqBqk9ZRyUF33fPOJR1IM,1649
|
|
|
199
209
|
onnx2tf/utils/iterative_json_optimizer.py,sha256=qqeIxWGxrhcCYk8-ebWnblnOkzDCwi-nseipHzHR_bk,10436
|
|
200
210
|
onnx2tf/utils/json_auto_generator.py,sha256=OC-SfKtUg7zUxaXTAg6kT0ShzIc3ByjDa3FNp173DtA,60302
|
|
201
211
|
onnx2tf/utils/logging.py,sha256=yUCmPuJ_XiUItM3sZMcaMO24JErkQy7zZwVTYWAuiKg,1982
|
|
202
|
-
onnx2tf-1.29.
|
|
203
|
-
onnx2tf-1.29.
|
|
204
|
-
onnx2tf-1.29.
|
|
205
|
-
onnx2tf-1.29.
|
|
212
|
+
onnx2tf-1.29.18.dist-info/WHEEL,sha256=fAguSjoiATBe7TNBkJwOjyL1Tt4wwiaQGtNtjRPNMQA,80
|
|
213
|
+
onnx2tf-1.29.18.dist-info/entry_points.txt,sha256=GuhvLu7ZlYECumbmoiFlKX0mFPtFi_Ti9L-E5yuQqKs,42
|
|
214
|
+
onnx2tf-1.29.18.dist-info/METADATA,sha256=9JTkd8SawqhrnG2GYMLaI8rvpkmiUJMRUdGvEhbGSBE,154306
|
|
215
|
+
onnx2tf-1.29.18.dist-info/RECORD,,
|
|
File without changes
|