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.
@@ -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.17
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|**Help wanted**|
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|**Help wanted**|
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|**Help wanted**|
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|**Help wanted**|
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|**Help wanted**|
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|**Help wanted**|
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|**Help wanted**|
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|**Help wanted**|
286
- |StringNormalizer|:white_check_mark:|
287
- |StringSplit|**Help wanted**|
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|**Help wanted**|
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.17
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.17
376
+ docker.io/pinto0309/onnx2tf:1.29.19
376
377
 
377
378
  or
378
379
 
@@ -1,4 +1,4 @@
1
- onnx2tf/__init__.py,sha256=lBriMyNyUvk8PZzSUDHztzVxIWdVqefvM7BTdwwGAGU,67
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=MDqck00gURrbsroJAgUDkxmdsGyE9v2ez4NKdvdq5IY,7514
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/StringNormalizer.py,sha256=lyjUfhvZiIUZhLptI0rW_xwpFBJ6XuhDCyvCKNh-ogA,5214
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.17.dist-info/WHEEL,sha256=e_m4S054HL0hyR3CpOk-b7Q7fDX6BuFkgL5OjAExXas,80
203
- onnx2tf-1.29.17.dist-info/entry_points.txt,sha256=GuhvLu7ZlYECumbmoiFlKX0mFPtFi_Ti9L-E5yuQqKs,42
204
- onnx2tf-1.29.17.dist-info/METADATA,sha256=1KG30m7PWIXRFCyU9xrvlttJLm4kZmZCj0BOrf-f_gw,154244
205
- onnx2tf-1.29.17.dist-info/RECORD,,
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,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: uv 0.9.27
2
+ Generator: uv 0.9.28
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any