onnx2tf 1.27.8__py3-none-any.whl → 1.27.10__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/onnx2tf.py +48 -6
- onnx2tf/utils/common_functions.py +115 -37
- {onnx2tf-1.27.8.dist-info → onnx2tf-1.27.10.dist-info}/METADATA +34 -3
- {onnx2tf-1.27.8.dist-info → onnx2tf-1.27.10.dist-info}/RECORD +10 -10
- {onnx2tf-1.27.8.dist-info → onnx2tf-1.27.10.dist-info}/WHEEL +1 -1
- {onnx2tf-1.27.8.dist-info → onnx2tf-1.27.10.dist-info}/entry_points.txt +0 -0
- {onnx2tf-1.27.8.dist-info → onnx2tf-1.27.10.dist-info}/licenses/LICENSE +0 -0
- {onnx2tf-1.27.8.dist-info → onnx2tf-1.27.10.dist-info}/licenses/LICENSE_onnx-tensorflow +0 -0
- {onnx2tf-1.27.8.dist-info → onnx2tf-1.27.10.dist-info}/top_level.txt +0 -0
onnx2tf/__init__.py
CHANGED
onnx2tf/onnx2tf.py
CHANGED
|
@@ -78,6 +78,7 @@ def convert(
|
|
|
78
78
|
not_use_opname_auto_generate: Optional[bool] = False,
|
|
79
79
|
batch_size: Optional[int] = None,
|
|
80
80
|
overwrite_input_shape: Optional[List[str]] = None,
|
|
81
|
+
shape_hints: Optional[List[str]] = None,
|
|
81
82
|
no_large_tensor: Optional[bool] = False,
|
|
82
83
|
output_nms_with_dynamic_tensor: Optional[bool] = False,
|
|
83
84
|
switch_nms_version: Optional[str] = 'v4',
|
|
@@ -255,6 +256,20 @@ def convert(
|
|
|
255
256
|
Numerical values other than dynamic dimensions are ignored.\n
|
|
256
257
|
Ignores batch_size if specified at the same time as batch_size.
|
|
257
258
|
|
|
259
|
+
shape_hints: Optional[List[str]]
|
|
260
|
+
Shape hints for input tensors containing dynamic dimensions.\n
|
|
261
|
+
Specify input shapes for test inference with -cotof or -coto.\n
|
|
262
|
+
Unlike `--overwrite_input_shape`, this operation does not overwrite\n
|
|
263
|
+
the ONNX input shape with a static shape.\n
|
|
264
|
+
The format is\n
|
|
265
|
+
["input_name_1:dim0,...,dimN","input_name_2:dim0,...,dimN","input_name_3:dim0,...,dimN"].\n
|
|
266
|
+
When there is only one input, for example,\n
|
|
267
|
+
['data:1,3,224,224']\n
|
|
268
|
+
When there are multiple inputs, for example,\n
|
|
269
|
+
['data1:1,3,224,224','data2:1,3,112,112','data3:5']\n
|
|
270
|
+
A value of 1 or more must be specified.\n
|
|
271
|
+
Numerical values other than dynamic dimensions are ignored.
|
|
272
|
+
|
|
258
273
|
no_large_tensor: Optional[bool]
|
|
259
274
|
Suppresses constant bloat caused by Tile OP when optimizing models in onnxsim.\n
|
|
260
275
|
See: https://github.com/daquexian/onnx-simplifier/issues/178
|
|
@@ -1055,6 +1070,7 @@ def convert(
|
|
|
1055
1070
|
tf_layers_dict=tf_layers_dict,
|
|
1056
1071
|
use_cuda=use_cuda,
|
|
1057
1072
|
disable_strict_mode=disable_strict_mode,
|
|
1073
|
+
shape_hints=shape_hints if (check_onnx_tf_outputs_elementwise_close or check_onnx_tf_outputs_elementwise_close_full) else None,
|
|
1058
1074
|
)
|
|
1059
1075
|
"""
|
|
1060
1076
|
onnx_tensor_infos_for_validation:
|
|
@@ -1889,6 +1905,7 @@ def convert(
|
|
|
1889
1905
|
custom_input_op_name_np_data_path=custom_input_op_name_np_data_path,
|
|
1890
1906
|
tf_layers_dict=tf_layers_dict,
|
|
1891
1907
|
use_cuda=use_cuda,
|
|
1908
|
+
shape_hints=shape_hints,
|
|
1892
1909
|
)
|
|
1893
1910
|
except Exception as ex:
|
|
1894
1911
|
warn(
|
|
@@ -1898,12 +1915,17 @@ def convert(
|
|
|
1898
1915
|
warn(f'{ex}')
|
|
1899
1916
|
else:
|
|
1900
1917
|
# TF dummy inference
|
|
1901
|
-
tf_tensor_infos: Dict[Any] =
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1918
|
+
tf_tensor_infos: Dict[Any] = \
|
|
1919
|
+
dummy_tf_inference(
|
|
1920
|
+
model=model,
|
|
1921
|
+
inputs=inputs,
|
|
1922
|
+
test_data_nhwc=test_data_nhwc,
|
|
1923
|
+
custom_input_op_name_np_data_path=custom_input_op_name_np_data_path,
|
|
1924
|
+
shape_hints=shape_hints,
|
|
1925
|
+
keep_shape_absolutely_input_names=keep_shape_absolutely_input_names,
|
|
1926
|
+
keep_ncw_or_nchw_or_ncdhw_input_names=keep_ncw_or_nchw_or_ncdhw_input_names,
|
|
1927
|
+
keep_nwc_or_nhwc_or_ndhwc_input_names=keep_nwc_or_nhwc_or_ndhwc_input_names,
|
|
1928
|
+
)
|
|
1907
1929
|
# Validation
|
|
1908
1930
|
onnx_tensor_infos = {
|
|
1909
1931
|
output_name: dummy_onnx_output \
|
|
@@ -2207,6 +2229,25 @@ def main():
|
|
|
2207
2229
|
'Numerical values other than dynamic dimensions are ignored. \n' +
|
|
2208
2230
|
'Ignores --batch_size if specified at the same time as --batch_size.'
|
|
2209
2231
|
)
|
|
2232
|
+
parser.add_argument(
|
|
2233
|
+
'-sh',
|
|
2234
|
+
'--shape_hints',
|
|
2235
|
+
type=str,
|
|
2236
|
+
nargs='+',
|
|
2237
|
+
help=\
|
|
2238
|
+
'Shape hints for input tensors containing dynamic dimensions. \n' +
|
|
2239
|
+
'Specify input shapes for test inference with -cotof or -coto. \n' +
|
|
2240
|
+
'Unlike `--overwrite_input_shape`, this operation does not overwrite \n' +
|
|
2241
|
+
'the ONNX input shape with a static shape.\n' +
|
|
2242
|
+
'The format is\n' +
|
|
2243
|
+
'"input_name_1:dim0,...,dimN" "input_name_2:dim0,...,dimN" "input_name_3:dim0,...,dimN". \n' +
|
|
2244
|
+
'When there is only one input, for example, \n' +
|
|
2245
|
+
'"data:1,3,224,224" \n' +
|
|
2246
|
+
'When there are multiple inputs, for example, \n' +
|
|
2247
|
+
'"data1:1,3,224,224" "data2:1,3,112,112" "data3:5" \n' +
|
|
2248
|
+
'Only applied to dynamic dimensions in inputs. \n' +
|
|
2249
|
+
'Only used when -cotof or -coto are specified.'
|
|
2250
|
+
)
|
|
2210
2251
|
parser.add_argument(
|
|
2211
2252
|
'-nlt',
|
|
2212
2253
|
'--no_large_tensor',
|
|
@@ -2631,6 +2672,7 @@ def main():
|
|
|
2631
2672
|
not_use_opname_auto_generate=args.not_use_opname_auto_generate,
|
|
2632
2673
|
batch_size=args.batch_size,
|
|
2633
2674
|
overwrite_input_shape=args.overwrite_input_shape,
|
|
2675
|
+
shape_hints=args.shape_hints,
|
|
2634
2676
|
no_large_tensor=args.no_large_tensor,
|
|
2635
2677
|
output_nms_with_dynamic_tensor=args.output_nms_with_dynamic_tensor,
|
|
2636
2678
|
switch_nms_version=args.switch_nms_version,
|
|
@@ -3633,6 +3633,7 @@ def dummy_onnx_inference(
|
|
|
3633
3633
|
tf_layers_dict: Optional[Dict] = None,
|
|
3634
3634
|
use_cuda: bool = False,
|
|
3635
3635
|
disable_strict_mode: bool = False,
|
|
3636
|
+
shape_hints: Optional[List[str]] = None,
|
|
3636
3637
|
) -> List[np.ndarray]:
|
|
3637
3638
|
"""Perform inference on ONNX subgraphs with an all-1 dummy tensor.
|
|
3638
3639
|
|
|
@@ -3775,24 +3776,46 @@ def dummy_onnx_inference(
|
|
|
3775
3776
|
onnx_inputs = gs_graph.inputs
|
|
3776
3777
|
input_names: List[str] = [inp.name for inp in onnx_inputs]
|
|
3777
3778
|
input_sizes: List[int] = [inp.shape for inp in onnx_inputs]
|
|
3778
|
-
|
|
3779
|
-
|
|
3780
|
-
|
|
3781
|
-
for
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
and
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
|
|
3779
|
+
|
|
3780
|
+
if shape_hints is None:
|
|
3781
|
+
new_input_sizes = []
|
|
3782
|
+
for input_size in input_sizes:
|
|
3783
|
+
new_input_size = []
|
|
3784
|
+
for idx, dim in enumerate(input_size):
|
|
3785
|
+
if idx == 0 and input_sizes[0][0] is not None \
|
|
3786
|
+
and not isinstance(input_sizes[0][0], str) \
|
|
3787
|
+
and len(input_sizes[0]) == len(input_size) \
|
|
3788
|
+
and (dim is None or isinstance(dim, str)):
|
|
3789
|
+
# Batch size assignment for input OPs
|
|
3790
|
+
new_input_size.append(input_sizes[0][0])
|
|
3791
|
+
elif dim is None or isinstance(dim, str):
|
|
3792
|
+
# Fixed and assigned 1
|
|
3793
|
+
new_input_size.append(1)
|
|
3794
|
+
else:
|
|
3795
|
+
# Assign input shape as is
|
|
3796
|
+
new_input_size.append(dim)
|
|
3797
|
+
new_input_sizes.append(new_input_size)
|
|
3798
|
+
input_sizes = new_input_sizes
|
|
3799
|
+
|
|
3800
|
+
else:
|
|
3801
|
+
shape_hints_dict = {}
|
|
3802
|
+
for hint in shape_hints:
|
|
3803
|
+
parts = hint.split(':')
|
|
3804
|
+
if len(parts) == 2:
|
|
3805
|
+
input_name = parts[0]
|
|
3806
|
+
shape_values = [int(val) for val in parts[1].split(',')]
|
|
3807
|
+
shape_hints_dict[input_name] = shape_values
|
|
3808
|
+
|
|
3809
|
+
for i, (input_name, original_shape) in enumerate(zip(input_names, input_sizes)):
|
|
3810
|
+
if input_name in shape_hints_dict:
|
|
3811
|
+
updated_shape = shape_hints_dict[input_name]
|
|
3812
|
+
for j, (orig_dim, hint_dim) in enumerate(zip(original_shape, updated_shape)):
|
|
3813
|
+
if orig_dim is not None and not isinstance(orig_dim, str):
|
|
3814
|
+
updated_shape[j] = orig_dim
|
|
3815
|
+
else:
|
|
3816
|
+
updated_shape[j] = hint_dim
|
|
3817
|
+
input_sizes[i] = updated_shape
|
|
3818
|
+
|
|
3796
3819
|
input_dtypes: List[Any] = [inp.dtype for inp in onnx_inputs]
|
|
3797
3820
|
input_datas = {}
|
|
3798
3821
|
|
|
@@ -3886,6 +3909,10 @@ def dummy_tf_inference(
|
|
|
3886
3909
|
test_data_nhwc: Optional[np.ndarray] = None,
|
|
3887
3910
|
verification_datas: Optional[List[np.ndarray]] = None,
|
|
3888
3911
|
custom_input_op_name_np_data_path: Optional[str] = None,
|
|
3912
|
+
shape_hints: Optional[List[str]] = None,
|
|
3913
|
+
keep_shape_absolutely_input_names: Optional[List[str]] = None,
|
|
3914
|
+
keep_ncw_or_nchw_or_ncdhw_input_names: Optional[List[str]] = None,
|
|
3915
|
+
keep_nwc_or_nhwc_or_ndhwc_input_names: Optional[List[str]] = None,
|
|
3889
3916
|
) -> Any:
|
|
3890
3917
|
"""Perform inference on TF subgraphs with an all-1 dummy tensor.
|
|
3891
3918
|
|
|
@@ -3914,23 +3941,74 @@ def dummy_tf_inference(
|
|
|
3914
3941
|
"""
|
|
3915
3942
|
input_names: List[str] = [inp.name for inp in inputs]
|
|
3916
3943
|
input_sizes: List[int] = [inp.shape for inp in inputs]
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
for
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
and
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
3944
|
+
|
|
3945
|
+
if shape_hints is None:
|
|
3946
|
+
new_input_sizes = []
|
|
3947
|
+
for input_size in input_sizes:
|
|
3948
|
+
new_input_size = []
|
|
3949
|
+
for idx, dim in enumerate(input_size):
|
|
3950
|
+
if idx == 0 and input_sizes[0][0] is not None \
|
|
3951
|
+
and len(input_sizes[0]) == len(input_size) \
|
|
3952
|
+
and dim is None:
|
|
3953
|
+
# Batch size assignment for input OPs
|
|
3954
|
+
new_input_size.append(input_sizes[0][0])
|
|
3955
|
+
elif dim is None:
|
|
3956
|
+
# Fixed and assigned 1
|
|
3957
|
+
new_input_size.append(1)
|
|
3958
|
+
else:
|
|
3959
|
+
# Assign input shape as is
|
|
3960
|
+
new_input_size.append(dim)
|
|
3961
|
+
new_input_sizes.append(new_input_size)
|
|
3962
|
+
input_sizes = new_input_sizes
|
|
3963
|
+
|
|
3964
|
+
else:
|
|
3965
|
+
shape_hints_dict = {}
|
|
3966
|
+
for hint in shape_hints:
|
|
3967
|
+
parts = hint.split(':')
|
|
3968
|
+
if len(parts) == 2:
|
|
3969
|
+
input_name = parts[0]
|
|
3970
|
+
shape_values = [int(val) for val in parts[1].split(',')]
|
|
3971
|
+
shape_hints_dict[input_name] = shape_values
|
|
3972
|
+
|
|
3973
|
+
for i, (input_name, original_shape) in enumerate(zip(input_names, input_sizes)):
|
|
3974
|
+
if input_name in shape_hints_dict:
|
|
3975
|
+
hint_shape = shape_hints_dict[input_name]
|
|
3976
|
+
updated_shape = []
|
|
3977
|
+
|
|
3978
|
+
# Check if we need to keep the original shape
|
|
3979
|
+
keep_absolutely = (
|
|
3980
|
+
keep_shape_absolutely_input_names is not None and
|
|
3981
|
+
input_name in keep_shape_absolutely_input_names
|
|
3982
|
+
)
|
|
3983
|
+
keep_nchw = (
|
|
3984
|
+
keep_ncw_or_nchw_or_ncdhw_input_names is not None and
|
|
3985
|
+
input_name in keep_ncw_or_nchw_or_ncdhw_input_names
|
|
3986
|
+
)
|
|
3987
|
+
keep_nhwc = (
|
|
3988
|
+
keep_nwc_or_nhwc_or_ndhwc_input_names is not None and
|
|
3989
|
+
input_name in keep_nwc_or_nhwc_or_ndhwc_input_names
|
|
3990
|
+
)
|
|
3991
|
+
|
|
3992
|
+
if keep_absolutely or keep_nchw:
|
|
3993
|
+
updated_shape = hint_shape
|
|
3994
|
+
# Otherwise, convert from NCHW to NHWC based on dimensionality
|
|
3995
|
+
elif len(hint_shape) == 3: # NCW -> NWC [0,2,1]
|
|
3996
|
+
updated_shape = [hint_shape[0], hint_shape[2], hint_shape[1]]
|
|
3997
|
+
elif len(hint_shape) == 4: # NCHW -> NHWC [0,3,1,2]
|
|
3998
|
+
updated_shape = [hint_shape[0], hint_shape[2], hint_shape[3], hint_shape[1]]
|
|
3999
|
+
elif len(hint_shape) == 5: # NCDHW -> NDHWC [0,4,1,2,3]
|
|
4000
|
+
updated_shape = [hint_shape[0], hint_shape[2], hint_shape[3], hint_shape[4], hint_shape[1]]
|
|
4001
|
+
else:
|
|
4002
|
+
updated_shape = hint_shape
|
|
4003
|
+
|
|
4004
|
+
for j, (orig_dim, hint_dim) in enumerate(zip(original_shape, updated_shape)):
|
|
4005
|
+
if orig_dim is not None and not isinstance(orig_dim, str):
|
|
4006
|
+
updated_shape[j] = orig_dim
|
|
4007
|
+
else:
|
|
4008
|
+
updated_shape[j] = hint_dim
|
|
4009
|
+
|
|
4010
|
+
input_sizes[i] = updated_shape
|
|
4011
|
+
|
|
3934
4012
|
input_dtypes: List[Any] = [inp.dtype for inp in inputs]
|
|
3935
4013
|
input_datas = {}
|
|
3936
4014
|
|
|
@@ -4228,10 +4306,10 @@ def broadcast_for_gpu_delegate(
|
|
|
4228
4306
|
if not optimization_for_gpu_delegate:
|
|
4229
4307
|
return input_tensor_1, input_tensor_2
|
|
4230
4308
|
xshapes = input_tensor_1.shape
|
|
4231
|
-
xshape_list = [int(dim) for dim in input_tensor_1.shape]
|
|
4309
|
+
xshape_list = [int(dim) if dim is not None else -1 for dim in input_tensor_1.shape]
|
|
4232
4310
|
xshapes_rank = len(xshapes)
|
|
4233
4311
|
yshapes = input_tensor_2.shape
|
|
4234
|
-
yshape_list = [int(dim) for dim in input_tensor_2.shape]
|
|
4312
|
+
yshape_list = [int(dim) if dim is not None else -1 for dim in input_tensor_2.shape]
|
|
4235
4313
|
yshapes_rank = len(yshape_list)
|
|
4236
4314
|
|
|
4237
4315
|
try:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: onnx2tf
|
|
3
|
-
Version: 1.27.
|
|
3
|
+
Version: 1.27.10
|
|
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
|
Home-page: https://github.com/PINTO0309/onnx2tf
|
|
6
6
|
Author: Katsuya Hyodo
|
|
@@ -334,7 +334,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
|
|
|
334
334
|
docker run --rm -it \
|
|
335
335
|
-v `pwd`:/workdir \
|
|
336
336
|
-w /workdir \
|
|
337
|
-
ghcr.io/pinto0309/onnx2tf:1.27.
|
|
337
|
+
ghcr.io/pinto0309/onnx2tf:1.27.10
|
|
338
338
|
|
|
339
339
|
or
|
|
340
340
|
|
|
@@ -342,7 +342,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
|
|
|
342
342
|
docker run --rm -it \
|
|
343
343
|
-v `pwd`:/workdir \
|
|
344
344
|
-w /workdir \
|
|
345
|
-
docker.io/pinto0309/onnx2tf:1.27.
|
|
345
|
+
docker.io/pinto0309/onnx2tf:1.27.10
|
|
346
346
|
|
|
347
347
|
or
|
|
348
348
|
|
|
@@ -1561,6 +1561,7 @@ usage: onnx2tf
|
|
|
1561
1561
|
[-nuonag]
|
|
1562
1562
|
[-b BATCH_SIZE]
|
|
1563
1563
|
[-ois OVERWRITE_INPUT_SHAPE [OVERWRITE_INPUT_SHAPE ...]]
|
|
1564
|
+
[-sh SHAPE_HINTS [SHAPE_HINTS ...]]
|
|
1564
1565
|
[-nlt]
|
|
1565
1566
|
[-onwdt]
|
|
1566
1567
|
[-snms {v4,v5}]
|
|
@@ -1747,6 +1748,21 @@ optional arguments:
|
|
|
1747
1748
|
Numerical values other than dynamic dimensions are ignored.
|
|
1748
1749
|
Ignores --batch_size if specified at the same time as --batch_size.
|
|
1749
1750
|
|
|
1751
|
+
-sh SHAPE_HINTS [SHAPE_HINTS ...], \
|
|
1752
|
+
--shape_hints SHAPE_HINTS [SHAPE_HINTS ...]
|
|
1753
|
+
Shape hints for input tensors containing dynamic dimensions.
|
|
1754
|
+
Specify input shapes for test inference with -cotof or -coto.
|
|
1755
|
+
Unlike `--overwrite_input_shape`, this operation does not overwrite
|
|
1756
|
+
the ONNX input shape with a static shape.
|
|
1757
|
+
The format is
|
|
1758
|
+
"i1:dim0,...,dimN" "i2:dim0,...,dimN" "i3:dim0,...,dimN"
|
|
1759
|
+
When there is only one input, for example,
|
|
1760
|
+
"data:1,3,224,224"
|
|
1761
|
+
When there are multiple inputs, for example,
|
|
1762
|
+
"data1:1,3,224,224" "data2:1,3,112" "data3:5"
|
|
1763
|
+
A value of 1 or more must be specified.
|
|
1764
|
+
Numerical values other than dynamic dimensions are ignored.
|
|
1765
|
+
|
|
1750
1766
|
-nlt, --no_large_tensor
|
|
1751
1767
|
Suppresses constant bloat caused by Tile OP when optimizing models in onnxsim.
|
|
1752
1768
|
See: https://github.com/daquexian/onnx-simplifier/issues/178
|
|
@@ -2052,6 +2068,7 @@ convert(
|
|
|
2052
2068
|
not_use_opname_auto_generate: Optional[bool] = False,
|
|
2053
2069
|
batch_size: Union[int, NoneType] = None,
|
|
2054
2070
|
overwrite_input_shape: Union[List[str], NoneType] = None,
|
|
2071
|
+
shape_hints: Union[List[str], NoneType] = None,
|
|
2055
2072
|
no_large_tensor: Optional[bool] = False,
|
|
2056
2073
|
output_nms_with_dynamic_tensor: Optional[bool] = False,
|
|
2057
2074
|
switch_nms_version: Optional[str] = 'v4',
|
|
@@ -2244,6 +2261,20 @@ convert(
|
|
|
2244
2261
|
Numerical values other than dynamic dimensions are ignored.
|
|
2245
2262
|
Ignores batch_size if specified at the same time as batch_size.
|
|
2246
2263
|
|
|
2264
|
+
shape_hints: Optional[List[str]]
|
|
2265
|
+
Shape hints for input tensors containing dynamic dimensions.
|
|
2266
|
+
Specify input shapes for test inference with -cotof or -coto.
|
|
2267
|
+
Unlike `--overwrite_input_shape`, this operation does not overwrite
|
|
2268
|
+
the ONNX input shape with a static shape.
|
|
2269
|
+
The format is
|
|
2270
|
+
['i1:dim0,...,dimN', 'i2:dim0,...,dimN', 'i3:dim0,...,dimN']
|
|
2271
|
+
When there is only one input, for example,
|
|
2272
|
+
['data:1,3,224,224']
|
|
2273
|
+
When there are multiple inputs, for example,
|
|
2274
|
+
['data1:1,3,224,224', 'data2:1,3,112', 'data3:5']
|
|
2275
|
+
A value of 1 or more must be specified.
|
|
2276
|
+
Numerical values other than dynamic dimensions are ignored.
|
|
2277
|
+
|
|
2247
2278
|
no_large_tensor: Optional[bool]
|
|
2248
2279
|
Suppresses constant bloat caused by Tile OP when optimizing models in onnxsim.
|
|
2249
2280
|
See: https://github.com/daquexian/onnx-simplifier/issues/178
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
onnx2tf/__init__.py,sha256=
|
|
1
|
+
onnx2tf/__init__.py,sha256=XUWhuuMFDDXP_g52JLtZhc-ADNltAchMMkJMSLVGSTk,67
|
|
2
2
|
onnx2tf/__main__.py,sha256=2RSCQ7d4lc6CwD-rlGn9UicPFg-P5du7ZD_yh-kuBEU,57
|
|
3
|
-
onnx2tf/onnx2tf.py,sha256=
|
|
3
|
+
onnx2tf/onnx2tf.py,sha256=_PB395J0GPgruBNqFzf_45-LR5boe3avZzoQIdnoSOY,126240
|
|
4
4
|
onnx2tf/ops/Abs.py,sha256=V7btmCG_ZvK_qJovUsguq0ZMJ349mhNQ4FHSgzP_Yuo,4029
|
|
5
5
|
onnx2tf/ops/Acos.py,sha256=Fo8YkFKuWq8Fi2xUrBdKcAH1yJ8r5pjSD0wgLttTNdk,4003
|
|
6
6
|
onnx2tf/ops/Acosh.py,sha256=ATQj2cT5JS_mTfXi0kXqJ1yzSZu5J0zHA5VjV3j7uKY,3588
|
|
@@ -185,13 +185,13 @@ onnx2tf/ops/_Loop.py,sha256=eo5sNfrfOnKV6_I737AWsM5LJTY9DVOxQEvhanxtP4g,11322
|
|
|
185
185
|
onnx2tf/ops/__Loop.py,sha256=ClwMcbNS4hqUtW_pzwjMa9Cqg7ONvz9aplke55A0uJ0,19704
|
|
186
186
|
onnx2tf/ops/__init__.py,sha256=jnmUWWa-3dHzBZV9bmPzXu6eoz2dumJTzO7i8JdcgSM,25
|
|
187
187
|
onnx2tf/utils/__init__.py,sha256=E9FM9He68VIASDnYp-OrxvHFVn55GzWqw2OEkCqn1zg,27
|
|
188
|
-
onnx2tf/utils/common_functions.py,sha256=
|
|
188
|
+
onnx2tf/utils/common_functions.py,sha256=cvczLScMTAuyhLi1ljUeI2SRhACT0-OGBQLibg4yYdE,245521
|
|
189
189
|
onnx2tf/utils/enums.py,sha256=7c5TqetqB07VjyHoxJHfLgtqBqk9ZRyUF33fPOJR1IM,1649
|
|
190
190
|
onnx2tf/utils/logging.py,sha256=yUCmPuJ_XiUItM3sZMcaMO24JErkQy7zZwVTYWAuiKg,1982
|
|
191
|
-
onnx2tf-1.27.
|
|
192
|
-
onnx2tf-1.27.
|
|
193
|
-
onnx2tf-1.27.
|
|
194
|
-
onnx2tf-1.27.
|
|
195
|
-
onnx2tf-1.27.
|
|
196
|
-
onnx2tf-1.27.
|
|
197
|
-
onnx2tf-1.27.
|
|
191
|
+
onnx2tf-1.27.10.dist-info/licenses/LICENSE,sha256=5v_Kxihy8i6mzHVl349ikSREaIdsl9YeUnX1KBDLD2w,1070
|
|
192
|
+
onnx2tf-1.27.10.dist-info/licenses/LICENSE_onnx-tensorflow,sha256=gK4GtS9S5YcyINu6uuNNWdo-kBClyEM4MFLFGiNTeRM,11231
|
|
193
|
+
onnx2tf-1.27.10.dist-info/METADATA,sha256=D-vbk2OeCeu06NZYvAQNJaoFexmJDBnEAwrg8D52WLY,149173
|
|
194
|
+
onnx2tf-1.27.10.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
|
|
195
|
+
onnx2tf-1.27.10.dist-info/entry_points.txt,sha256=gDPK8ToCFPKMvm8jr9xrGOkXtORJJVh4736fBEKO5k0,41
|
|
196
|
+
onnx2tf-1.27.10.dist-info/top_level.txt,sha256=WgfPiEy3f6vZ_FOpAIEA2CF3TCx1eYrhGw93Ih6b9Fw,8
|
|
197
|
+
onnx2tf-1.27.10.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|