onnx2tf 1.29.9__tar.gz → 1.29.11__tar.gz
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-1.29.9/onnx2tf.egg-info → onnx2tf-1.29.11}/PKG-INFO +26 -22
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/README.md +5 -5
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/__init__.py +1 -1
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/onnx2tf.py +83 -73
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/If.py +4 -2
- onnx2tf-1.29.11/onnx2tf/ops/Loop.py +392 -0
- onnx2tf-1.29.11/onnx2tf/ops/LpPool.py +296 -0
- onnx2tf-1.29.11/onnx2tf/ops/MaxRoiPool.py +236 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/utils/common_functions.py +3 -0
- onnx2tf-1.29.11/pyproject.toml +63 -0
- onnx2tf-1.29.9/LICENSE +0 -21
- onnx2tf-1.29.9/LICENSE_onnx-tensorflow +0 -213
- onnx2tf-1.29.9/PKG-INFO +0 -3021
- onnx2tf-1.29.9/onnx2tf/ops/_Loop.py +0 -306
- onnx2tf-1.29.9/onnx2tf/ops/__Loop.py +0 -509
- onnx2tf-1.29.9/onnx2tf.egg-info/SOURCES.txt +0 -211
- onnx2tf-1.29.9/onnx2tf.egg-info/dependency_links.txt +0 -1
- onnx2tf-1.29.9/onnx2tf.egg-info/requires.txt +0 -17
- onnx2tf-1.29.9/onnx2tf.egg-info/top_level.txt +0 -1
- onnx2tf-1.29.9/pyproject.toml +0 -30
- onnx2tf-1.29.9/setup.cfg +0 -4
- onnx2tf-1.29.9/setup.py +0 -36
- onnx2tf-1.29.9/tests/test_model_convert.py +0 -327
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/__main__.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Abs.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Acos.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Acosh.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Add.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/AffineGrid.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/And.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ArgMax.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ArgMin.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Asin.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Asinh.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Atan.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Atanh.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Attention.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/AveragePool.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/BatchNormalization.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Bernoulli.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/BitShift.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/BitwiseAnd.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/BitwiseNot.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/BitwiseOr.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/BitwiseXor.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/BlackmanWindow.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Cast.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Ceil.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Celu.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Clip.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Col2Im.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Compress.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Concat.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ConcatFromSequence.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Constant.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ConstantOfShape.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Conv.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ConvInteger.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ConvTranspose.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Cos.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Cosh.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/CumProd.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/CumSum.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/DepthToSpace.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/DequantizeLinear.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Det.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Div.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Dropout.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/DynamicQuantizeLinear.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Einsum.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Elu.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Equal.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Erf.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Exp.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Expand.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/EyeLike.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Flatten.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Floor.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/FusedConv.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/GRU.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Gather.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/GatherElements.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/GatherND.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Gelu.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Gemm.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/GlobalAveragePool.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/GlobalLpPool.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/GlobalMaxPool.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Greater.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/GreaterOrEqual.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/GridSample.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/GroupNorm.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/HammingWindow.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/HannWindow.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/HardSigmoid.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/HardSwish.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Hardmax.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Identity.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Input.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/InstanceNormalization.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Inverse.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/IsInf.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/IsNaN.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/LRN.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/LSTM.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/LayerNormalization.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/LeakyRelu.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Less.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/LessOrEqual.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Log.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/LogSoftmax.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/LpNormalization.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/MatMul.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/MatMulInteger.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Max.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/MaxPool.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/MaxUnpool.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Mean.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/MeanVarianceNormalization.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/MelWeightMatrix.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Min.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Mish.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Mod.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Mul.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Multinomial.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Neg.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/NonMaxSuppression.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/NonZero.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Not.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/OneHot.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/OptionalGetElement.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/OptionalHasElement.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Or.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/PRelu.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Pad.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Pow.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/QLinearAdd.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/QLinearConcat.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/QLinearConv.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/QLinearLeakyRelu.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/QLinearMatMul.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/QLinearMul.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/QLinearSigmoid.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/QLinearSoftmax.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/QuantizeLinear.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/RNN.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/RandomNormal.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/RandomNormalLike.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/RandomUniform.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/RandomUniformLike.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Range.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Reciprocal.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ReduceL1.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ReduceL2.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ReduceLogSum.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ReduceLogSumExp.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ReduceMax.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ReduceMean.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ReduceMin.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ReduceProd.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ReduceSum.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ReduceSumSquare.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Relu.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Reshape.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Resize.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ReverseSequence.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/RoiAlign.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Round.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/STFT.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ScaleAndTranslate.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Scatter.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ScatterElements.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ScatterND.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Selu.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/SequenceAt.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/SequenceConstruct.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/SequenceEmpty.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/SequenceErase.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/SequenceInsert.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/SequenceLength.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Shape.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Shrink.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Sigmoid.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Sign.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Sin.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Sinh.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Size.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Slice.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Softmax.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Softplus.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Softsign.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/SpaceToDepth.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Split.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/SplitToSequence.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Sqrt.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Squeeze.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/StringNormalizer.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Sub.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Sum.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Tan.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Tanh.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/ThresholdedRelu.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Tile.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/TopK.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Transpose.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Trilu.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Unique.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Unsqueeze.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Upsample.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Where.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/Xor.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/ops/__init__.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/utils/__init__.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/utils/enums.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/utils/iterative_json_optimizer.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/utils/json_auto_generator.py +0 -0
- {onnx2tf-1.29.9 → onnx2tf-1.29.11}/onnx2tf/utils/logging.py +0 -0
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: onnx2tf
|
|
3
|
-
Version: 1.29.
|
|
4
|
-
Summary: Self-Created Tools to convert ONNX files (NCHW) to TensorFlow/TFLite/Keras format (NHWC).
|
|
5
|
-
|
|
3
|
+
Version: 1.29.11
|
|
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
|
+
Keywords: onnx,tensorflow,tflite,keras,deep-learning,machine-learning
|
|
6
6
|
Author: Katsuya Hyodo
|
|
7
|
-
Author-email: rmsdh122@yahoo.co.jp
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
Author-email: Katsuya Hyodo <rmsdh122@yahoo.co.jp>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Intended Audience :: Science/Research
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
14
|
+
Classifier: Operating System :: Unix
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
14
18
|
Requires-Dist: requests==2.32.5
|
|
15
19
|
Requires-Dist: numpy==1.26.4
|
|
16
20
|
Requires-Dist: onnx==1.19.0
|
|
@@ -26,14 +30,14 @@ Requires-Dist: simple-onnx-processing-tools==1.1.32
|
|
|
26
30
|
Requires-Dist: psutil==5.9.5
|
|
27
31
|
Requires-Dist: protobuf==4.25.5
|
|
28
32
|
Requires-Dist: h5py==3.11.0
|
|
29
|
-
Requires-Dist:
|
|
33
|
+
Requires-Dist: ml-dtypes==0.5.1
|
|
30
34
|
Requires-Dist: flatbuffers==25.12.19
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
Requires-Python: >=3.10.12
|
|
36
|
+
Project-URL: Homepage, https://github.com/PINTO0309/onnx2tf
|
|
37
|
+
Project-URL: Repository, https://github.com/PINTO0309/onnx2tf
|
|
38
|
+
Project-URL: Documentation, https://github.com/PINTO0309/onnx2tf#readme
|
|
39
|
+
Project-URL: Issues, https://github.com/PINTO0309/onnx2tf/issues
|
|
40
|
+
Description-Content-Type: text/markdown
|
|
37
41
|
|
|
38
42
|
# onnx2tf
|
|
39
43
|
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](https://github.com/onnx/onnx-tensorflow) ([onnx-tf](https://pypi.org/project/onnx-tf/)). I don't need a Star, but give me a pull request. Since I am adding challenging model optimizations and fixing bugs almost daily, I frequently embed potential bugs that would otherwise break through CI's regression testing. Therefore, if you encounter new problems, I recommend that you try a package that is a few versions older, or try the latest package that will be released in a few days.
|
|
@@ -182,16 +186,16 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
|
|
|
182
186
|
|Less|:heavy_check_mark:|
|
|
183
187
|
|Log|:heavy_check_mark:|
|
|
184
188
|
|LogSoftmax|:heavy_check_mark:|
|
|
185
|
-
|Loop
|
|
189
|
+
|Loop|:heavy_check_mark:|
|
|
186
190
|
|LpNormalization|:heavy_check_mark:|
|
|
187
|
-
|LpPool
|
|
191
|
+
|LpPool|:heavy_check_mark:|
|
|
188
192
|
|LRN|:heavy_check_mark:|
|
|
189
193
|
|LSTM|:heavy_check_mark:|
|
|
190
194
|
|MatMul|:heavy_check_mark:|
|
|
191
195
|
|MatMulInteger|:heavy_check_mark:|
|
|
192
196
|
|MaxPool|:heavy_check_mark:|
|
|
193
197
|
|Max|:heavy_check_mark:|
|
|
194
|
-
|MaxRoiPool
|
|
198
|
+
|MaxRoiPool|:heavy_check_mark:|
|
|
195
199
|
|MaxUnpool|:heavy_check_mark:|
|
|
196
200
|
|Mean|:heavy_check_mark:|
|
|
197
201
|
|MeanVarianceNormalization|:heavy_check_mark:|
|
|
@@ -359,7 +363,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
|
|
|
359
363
|
docker run --rm -it \
|
|
360
364
|
-v `pwd`:/workdir \
|
|
361
365
|
-w /workdir \
|
|
362
|
-
ghcr.io/pinto0309/onnx2tf:1.29.
|
|
366
|
+
ghcr.io/pinto0309/onnx2tf:1.29.11
|
|
363
367
|
|
|
364
368
|
or
|
|
365
369
|
|
|
@@ -367,7 +371,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
|
|
|
367
371
|
docker run --rm -it \
|
|
368
372
|
-v `pwd`:/workdir \
|
|
369
373
|
-w /workdir \
|
|
370
|
-
docker.io/pinto0309/onnx2tf:1.29.
|
|
374
|
+
docker.io/pinto0309/onnx2tf:1.29.11
|
|
371
375
|
|
|
372
376
|
or
|
|
373
377
|
|
|
@@ -145,16 +145,16 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
|
|
|
145
145
|
|Less|:heavy_check_mark:|
|
|
146
146
|
|Log|:heavy_check_mark:|
|
|
147
147
|
|LogSoftmax|:heavy_check_mark:|
|
|
148
|
-
|Loop
|
|
148
|
+
|Loop|:heavy_check_mark:|
|
|
149
149
|
|LpNormalization|:heavy_check_mark:|
|
|
150
|
-
|LpPool
|
|
150
|
+
|LpPool|:heavy_check_mark:|
|
|
151
151
|
|LRN|:heavy_check_mark:|
|
|
152
152
|
|LSTM|:heavy_check_mark:|
|
|
153
153
|
|MatMul|:heavy_check_mark:|
|
|
154
154
|
|MatMulInteger|:heavy_check_mark:|
|
|
155
155
|
|MaxPool|:heavy_check_mark:|
|
|
156
156
|
|Max|:heavy_check_mark:|
|
|
157
|
-
|MaxRoiPool
|
|
157
|
+
|MaxRoiPool|:heavy_check_mark:|
|
|
158
158
|
|MaxUnpool|:heavy_check_mark:|
|
|
159
159
|
|Mean|:heavy_check_mark:|
|
|
160
160
|
|MeanVarianceNormalization|:heavy_check_mark:|
|
|
@@ -322,7 +322,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
|
|
|
322
322
|
docker run --rm -it \
|
|
323
323
|
-v `pwd`:/workdir \
|
|
324
324
|
-w /workdir \
|
|
325
|
-
ghcr.io/pinto0309/onnx2tf:1.29.
|
|
325
|
+
ghcr.io/pinto0309/onnx2tf:1.29.11
|
|
326
326
|
|
|
327
327
|
or
|
|
328
328
|
|
|
@@ -330,7 +330,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
|
|
|
330
330
|
docker run --rm -it \
|
|
331
331
|
-v `pwd`:/workdir \
|
|
332
332
|
-w /workdir \
|
|
333
|
-
docker.io/pinto0309/onnx2tf:1.29.
|
|
333
|
+
docker.io/pinto0309/onnx2tf:1.29.11
|
|
334
334
|
|
|
335
335
|
or
|
|
336
336
|
|
|
@@ -1467,82 +1467,89 @@ def convert(
|
|
|
1467
1467
|
SIGNATURE_KEY = 'serving_default'
|
|
1468
1468
|
|
|
1469
1469
|
# saved_model
|
|
1470
|
+
saved_model_log_level = get_log_level()
|
|
1470
1471
|
try:
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
export_archive = tf_keras.export.ExportArchive()
|
|
1495
|
-
export_archive.add_endpoint(
|
|
1496
|
-
name=SIGNATURE_KEY,
|
|
1497
|
-
fn=lambda *inputs : model(inputs),
|
|
1498
|
-
input_signature=[tf.TensorSpec(tensor.shape, tensor.dtype, tensor.name) for tensor in model.inputs],
|
|
1499
|
-
)
|
|
1500
|
-
export_archive.write_out(output_folder_path)
|
|
1501
|
-
break
|
|
1502
|
-
except ValueError as e:
|
|
1503
|
-
msg_list = [s for s in e.args if isinstance(s, str)]
|
|
1504
|
-
if len(msg_list) > 0:
|
|
1472
|
+
if saved_model_log_level <= LOG_LEVELS['debug']:
|
|
1473
|
+
set_log_level('info')
|
|
1474
|
+
try:
|
|
1475
|
+
# concrete_func
|
|
1476
|
+
info(Color.REVERSE(f'saved_model output started'), '=' * 58)
|
|
1477
|
+
if not output_signaturedefs and not output_integer_quantized_tflite:
|
|
1478
|
+
tf.saved_model.save(model, output_folder_path)
|
|
1479
|
+
else:
|
|
1480
|
+
export_archive = tf_keras.export.ExportArchive()
|
|
1481
|
+
export_archive.add_endpoint(
|
|
1482
|
+
name=SIGNATURE_KEY,
|
|
1483
|
+
fn=lambda *inputs : model(inputs),
|
|
1484
|
+
input_signature=[tf.TensorSpec(tensor.shape, tensor.dtype, tensor.name) for tensor in model.inputs],
|
|
1485
|
+
)
|
|
1486
|
+
export_archive.write_out(output_folder_path)
|
|
1487
|
+
info(Color.GREEN(f'saved_model output complete!'))
|
|
1488
|
+
except TypeError as e:
|
|
1489
|
+
# Switch to .pb
|
|
1490
|
+
info(Color.GREEN(f'Switch to the output of an optimized protocol buffer file (.pb).'))
|
|
1491
|
+
except (KeyError, AssertionError) as e:
|
|
1492
|
+
msg_list = [s for s in e.args if isinstance(s, str)]
|
|
1493
|
+
if len(msg_list) > 0:
|
|
1494
|
+
try:
|
|
1505
1495
|
for s in msg_list:
|
|
1506
|
-
if '
|
|
1507
|
-
|
|
1508
|
-
|
|
1496
|
+
if 'Failed to add concrete function' in s \
|
|
1497
|
+
or "Tried to export a function which references an 'untracked' resource" in s:
|
|
1498
|
+
export_archive = tf_keras.export.ExportArchive()
|
|
1499
|
+
export_archive.add_endpoint(
|
|
1500
|
+
name=SIGNATURE_KEY,
|
|
1501
|
+
fn=lambda *inputs : model(inputs),
|
|
1502
|
+
input_signature=[tf.TensorSpec(tensor.shape, tensor.dtype, tensor.name) for tensor in model.inputs],
|
|
1509
1503
|
)
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1504
|
+
export_archive.write_out(output_folder_path)
|
|
1505
|
+
break
|
|
1506
|
+
except ValueError as e:
|
|
1507
|
+
msg_list = [s for s in e.args if isinstance(s, str)]
|
|
1508
|
+
if len(msg_list) > 0:
|
|
1509
|
+
for s in msg_list:
|
|
1510
|
+
if 'A root scope name has to match the following pattern' in s:
|
|
1511
|
+
error(
|
|
1512
|
+
f'Generation of saved_model failed because the OP name does not match the following pattern. ^[A-Za-z0-9.][A-Za-z0-9_.\\\\/>-]*$'
|
|
1513
|
+
)
|
|
1514
|
+
matches = re.findall(r"'([^']*)'", s)
|
|
1515
|
+
error(f'{matches[0]}')
|
|
1516
|
+
error(
|
|
1517
|
+
f'Please convert again with the `-osd` or `--output_signaturedefs` option.'
|
|
1518
|
+
)
|
|
1519
|
+
sys.exit(1)
|
|
1520
|
+
else:
|
|
1521
|
+
error(e)
|
|
1522
|
+
import traceback
|
|
1523
|
+
error(traceback.format_exc(), prefix=False)
|
|
1524
|
+
else:
|
|
1525
|
+
error(e)
|
|
1526
|
+
import traceback
|
|
1527
|
+
error(traceback.format_exc(), prefix=False)
|
|
1528
|
+
except ValueError as e:
|
|
1529
|
+
msg_list = [s for s in e.args if isinstance(s, str)]
|
|
1530
|
+
if len(msg_list) > 0:
|
|
1531
|
+
for s in msg_list:
|
|
1532
|
+
if 'A root scope name has to match the following pattern' in s:
|
|
1533
|
+
error(
|
|
1534
|
+
f'Generation of saved_model failed because the OP name does not match the following pattern. ^[A-Za-z0-9.][A-Za-z0-9_.\\\\/>-]*$'
|
|
1535
|
+
)
|
|
1536
|
+
matches = re.findall(r"'([^']*)'", s)
|
|
1537
|
+
error(f'{matches[0]}')
|
|
1538
|
+
error(
|
|
1539
|
+
f'Please convert again with the `-osd` or `--output_signaturedefs` option.'
|
|
1540
|
+
)
|
|
1541
|
+
sys.exit(1)
|
|
1542
|
+
else:
|
|
1543
|
+
error(e)
|
|
1544
|
+
import traceback
|
|
1545
|
+
error(traceback.format_exc(), prefix=False)
|
|
1546
|
+
except Exception as e:
|
|
1539
1547
|
error(e)
|
|
1540
1548
|
import traceback
|
|
1541
1549
|
error(traceback.format_exc(), prefix=False)
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
error(traceback.format_exc(), prefix=False)
|
|
1550
|
+
finally:
|
|
1551
|
+
if get_log_level() != saved_model_log_level:
|
|
1552
|
+
set_log_level(saved_model_log_level)
|
|
1546
1553
|
|
|
1547
1554
|
# TFv1 .pb
|
|
1548
1555
|
if output_tfv1_pb:
|
|
@@ -1581,9 +1588,12 @@ def convert(
|
|
|
1581
1588
|
Name: flatbuffers
|
|
1582
1589
|
Version: 22.10.26
|
|
1583
1590
|
"""
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1591
|
+
try:
|
|
1592
|
+
converter = tf.lite.TFLiteConverter.from_keras_model(model)
|
|
1593
|
+
except Exception as e:
|
|
1594
|
+
converter = tf.lite.TFLiteConverter.from_concrete_functions(
|
|
1595
|
+
[concrete_func]
|
|
1596
|
+
)
|
|
1587
1597
|
converter.target_spec.supported_ops = [
|
|
1588
1598
|
tf.lite.OpsSet.TFLITE_BUILTINS,
|
|
1589
1599
|
tf.lite.OpsSet.SELECT_TF_OPS,
|
|
@@ -54,6 +54,8 @@ def make_node(
|
|
|
54
54
|
graph_node_outputs = [] + graph_node.outputs
|
|
55
55
|
|
|
56
56
|
# Then branch
|
|
57
|
+
subgraph_kwargs = dict(kwargs)
|
|
58
|
+
subgraph_kwargs['suppress_log'] = True
|
|
57
59
|
then_branch_graph: gs.Graph = graph_node.attrs['then_branch']
|
|
58
60
|
then_branch_graph_outputs = then_branch_graph.outputs
|
|
59
61
|
for then_branch_graph_node in then_branch_graph.nodes:
|
|
@@ -73,7 +75,7 @@ def make_node(
|
|
|
73
75
|
op.make_node(
|
|
74
76
|
graph_node=then_branch_graph_node,
|
|
75
77
|
tf_layers_dict=tf_layers_dict,
|
|
76
|
-
**
|
|
78
|
+
**subgraph_kwargs,
|
|
77
79
|
)
|
|
78
80
|
# Then branch - Resister constant
|
|
79
81
|
for output in then_branch_graph_outputs:
|
|
@@ -115,7 +117,7 @@ def make_node(
|
|
|
115
117
|
op.make_node(
|
|
116
118
|
graph_node=else_branch_graph_node,
|
|
117
119
|
tf_layers_dict=tf_layers_dict,
|
|
118
|
-
**
|
|
120
|
+
**subgraph_kwargs,
|
|
119
121
|
)
|
|
120
122
|
# Else branch - Resister constant
|
|
121
123
|
for output in else_branch_graph_outputs:
|