onnx2tf 1.26.0__tar.gz → 1.26.2__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.26.0/onnx2tf.egg-info → onnx2tf-1.26.2}/PKG-INFO +12 -12
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/README.md +11 -11
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/__init__.py +1 -1
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/onnx2tf.py +22 -10
- {onnx2tf-1.26.0 → onnx2tf-1.26.2/onnx2tf.egg-info}/PKG-INFO +12 -12
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/LICENSE +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/LICENSE_onnx-tensorflow +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/__main__.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Abs.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Acos.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Acosh.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Add.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/And.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ArgMax.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ArgMin.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Asin.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Asinh.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Atan.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Atanh.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/AveragePool.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/BatchNormalization.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Bernoulli.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/BitShift.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Cast.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Ceil.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Celu.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Clip.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Col2Im.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Compress.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Concat.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ConcatFromSequence.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Constant.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ConstantOfShape.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Conv.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ConvInteger.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ConvTranspose.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Cos.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Cosh.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/CumSum.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/DepthToSpace.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/DequantizeLinear.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Det.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Div.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Dropout.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/DynamicQuantizeLinear.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Einsum.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Elu.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Equal.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Erf.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Exp.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Expand.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/EyeLike.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Flatten.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Floor.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/FusedConv.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/GRU.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Gather.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/GatherElements.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/GatherND.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Gelu.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Gemm.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/GlobalAveragePool.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/GlobalLpPool.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/GlobalMaxPool.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Greater.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/GreaterOrEqual.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/GridSample.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/GroupNorm.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/HammingWindow.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/HannWindow.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/HardSigmoid.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/HardSwish.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Hardmax.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Identity.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/If.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Input.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/InstanceNormalization.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Inverse.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/IsInf.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/IsNaN.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/LRN.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/LSTM.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/LayerNormalization.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/LeakyRelu.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Less.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/LessOrEqual.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Log.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/LogSoftmax.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/LpNormalization.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/MatMul.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/MatMulInteger.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Max.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/MaxPool.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/MaxUnpool.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Mean.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/MeanVarianceNormalization.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/MelWeightMatrix.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Min.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Mish.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Mod.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Mul.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Multinomial.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Neg.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/NonMaxSuppression.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/NonZero.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Not.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/OneHot.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/OptionalGetElement.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/OptionalHasElement.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Or.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/PRelu.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Pad.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Pow.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/QLinearAdd.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/QLinearConcat.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/QLinearConv.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/QLinearLeakyRelu.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/QLinearMatMul.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/QLinearMul.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/QLinearSigmoid.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/QLinearSoftmax.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/QuantizeLinear.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/RNN.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/RandomNormal.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/RandomNormalLike.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/RandomUniform.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/RandomUniformLike.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Range.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Reciprocal.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ReduceL1.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ReduceL2.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ReduceLogSum.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ReduceLogSumExp.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ReduceMax.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ReduceMean.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ReduceMin.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ReduceProd.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ReduceSum.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ReduceSumSquare.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Relu.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Reshape.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Resize.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ReverseSequence.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/RoiAlign.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Round.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/STFT.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ScaleAndTranslate.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Scatter.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ScatterElements.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ScatterND.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Selu.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/SequenceAt.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/SequenceConstruct.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/SequenceEmpty.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/SequenceErase.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/SequenceInsert.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/SequenceLength.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Shape.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Shrink.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Sigmoid.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Sign.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Sin.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Sinh.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Size.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Slice.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Softmax.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Softplus.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Softsign.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/SpaceToDepth.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Split.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/SplitToSequence.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Sqrt.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Squeeze.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/StringNormalizer.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Sub.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Sum.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Tan.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Tanh.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/ThresholdedRelu.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Tile.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/TopK.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Transpose.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Trilu.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Unique.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Unsqueeze.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Upsample.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Where.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/Xor.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/_Loop.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/__Loop.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/ops/__init__.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/utils/__init__.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/utils/common_functions.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/utils/enums.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf/utils/logging.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf.egg-info/SOURCES.txt +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf.egg-info/dependency_links.txt +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf.egg-info/entry_points.txt +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/onnx2tf.egg-info/top_level.txt +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/setup.cfg +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/setup.py +0 -0
- {onnx2tf-1.26.0 → onnx2tf-1.26.2}/tests/test_model_convert.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: onnx2tf
|
|
3
|
-
Version: 1.26.
|
|
3
|
+
Version: 1.26.2
|
|
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
|
|
@@ -314,7 +314,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
|
|
|
314
314
|
docker run --rm -it \
|
|
315
315
|
-v `pwd`:/workdir \
|
|
316
316
|
-w /workdir \
|
|
317
|
-
ghcr.io/pinto0309/onnx2tf:1.26.
|
|
317
|
+
ghcr.io/pinto0309/onnx2tf:1.26.2
|
|
318
318
|
|
|
319
319
|
or
|
|
320
320
|
|
|
@@ -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
|
-
docker.io/pinto0309/onnx2tf:1.26.
|
|
325
|
+
docker.io/pinto0309/onnx2tf:1.26.2
|
|
326
326
|
|
|
327
327
|
or
|
|
328
328
|
|
|
@@ -1529,8 +1529,8 @@ usage: onnx2tf
|
|
|
1529
1529
|
[-oiqt]
|
|
1530
1530
|
[-qt {per-channel,per-tensor}]
|
|
1531
1531
|
[-cind INPUT_NAME NUMPY_FILE_PATH MEAN STD]
|
|
1532
|
-
[-iqd {int8,uint8}]
|
|
1533
|
-
[-oqd {int8,uint8}]
|
|
1532
|
+
[-iqd {int8,uint8,float32}]
|
|
1533
|
+
[-oqd {int8,uint8,float32}]
|
|
1534
1534
|
[-nuo]
|
|
1535
1535
|
[-nuonag]
|
|
1536
1536
|
[-b BATCH_SIZE]
|
|
@@ -1687,13 +1687,13 @@ optional arguments:
|
|
|
1687
1687
|
and {input_op_name}, {numpy_file_path}, {mean}, and {std} must all be entered.
|
|
1688
1688
|
Otherwise, an error will occur during the -oiqt stage.
|
|
1689
1689
|
|
|
1690
|
-
-iqd {int8,uint8}, --input_quant_dtype {int8,uint8}
|
|
1690
|
+
-iqd {int8,uint8,float32}, --input_quant_dtype {int8,uint8,float32}
|
|
1691
1691
|
Input dtypes when doing Full INT8 Quantization.
|
|
1692
|
-
"int8"(default) or "uint8"
|
|
1692
|
+
"int8"(default) or "uint8" or "float32"
|
|
1693
1693
|
|
|
1694
|
-
-oqd {int8,uint8}, --output_quant_dtype {int8,uint8}
|
|
1694
|
+
-oqd {int8,uint8,float32}, --output_quant_dtype {int8,uint8,float32}
|
|
1695
1695
|
Output dtypes when doing Full INT8 Quantization.
|
|
1696
|
-
"int8"(default) or "uint8"
|
|
1696
|
+
"int8"(default) or "uint8" or "float32"
|
|
1697
1697
|
|
|
1698
1698
|
-nuo, --not_use_onnxsim
|
|
1699
1699
|
No optimization by onnx-simplifier is performed.
|
|
@@ -2180,11 +2180,11 @@ convert(
|
|
|
2180
2180
|
|
|
2181
2181
|
input_quant_dtype: Optional[str]
|
|
2182
2182
|
Input dtypes when doing Full INT8 Quantization.
|
|
2183
|
-
"int8"(default) or "uint8"
|
|
2183
|
+
"int8"(default) or "uint8" or "float32"
|
|
2184
2184
|
|
|
2185
2185
|
output_quant_dtype: Optional[str]
|
|
2186
2186
|
Output dtypes when doing Full INT8 Quantization.
|
|
2187
|
-
"int8"(default) or "uint8"
|
|
2187
|
+
"int8"(default) or "uint8" or "float32"
|
|
2188
2188
|
|
|
2189
2189
|
not_use_onnxsim: Optional[bool]
|
|
2190
2190
|
No optimization by onnx-simplifier is performed.
|
|
@@ -2610,7 +2610,7 @@ Do not submit an issue that only contains an amount of information that cannot b
|
|
|
2610
2610
|
|14|Unsqueeze|1. "param_target": "inputs"<br>`pre_process_transpose_perm`: Transpose is applied to the tensor before the Unsqueeze operation with the perm specified as pre-processing.<br>2. "param_target": "outputs"<br>`post_process_transpose_perm`: Transpose is applied to the tensor after the Unsqueeze operation with the perm specified as post-processing.<br>3. "param_target": "op"<br>`new_shape`: Specifies directly the shape after Unsqueeze processing.<br>{<br> "op_name": "/backbone/backbone.1/Unsqueeze_1",<br> "param_target": "op",<br> "new_shape": [1,15,15,1]<br>}|
|
|
2611
2611
|
|15|Reshape|1. "param_target": "inputs"<br>`values`: Value of `shape`<br>`pre_process_transpose_perm`: Transpose is applied to the tensor before the Reshape operation with the perm specified as pre-processing.<br>2. "param_target": "outputs"<br>`post_process_transpose_perm`: Transpose is applied to the tensor after the Reshape operation with the perm specified as post-processing.|
|
|
2612
2612
|
|16|Resize|1. "param_target": "attributes"<br>`coordinate_transformation_mode`: Value of `coordinate_transformation_mode`<br>`extrapolation_value`: Value of `extrapolation_value`<br>`mode`: Value of `mode`<br>2. "param_target": "inputs"<br>`values`: Value of `roi` or `scales` or `sizes`. `scales`=`[scale_h,scale_w]`,`sizes`=`[h,w]`<br>`pre_process_transpose_perm`: Transpose is applied to the tensor before the Resize operation with the perm specified as pre-processing.<br>3. "param_target": "outputs"<br>`post_process_transpose_perm`: Transpose is applied to the tensor after the Resize operation with the perm specified as post-processing.|
|
|
2613
|
-
|17|Slice|`Slice` implements special replacements separately ignore all automatic conversions and generate `tf.strided_slice` directly by specifying all parameters of `tf.strided_slice` directly.<br>https://www.tensorflow.org/api_docs/python/tf/strided_slice<br>See [replace_slice.json](https://github.com/PINTO0309/onnx2tf/blob/main/replace_slice.json) for a sample description.<br><br>1. "param_target": "op"<br>`begin`: Value of `begin`<br>`end`: Value of `end`<br>`strides`: Value of `strides`<br>`begin_mask`: Value of `begin_mask`<br>`end_mask`: Value of `end_mask`<br>`ellipsis_mask`: Value of `ellipsis_mask`<br>`new_axis_mask`: Value of `new_axis_mask`<br>`shrink_axis_mask`: Value of `shrink_axis_mask`<br>{<br> "op_name": "/Slice",<br> "param_target": "op",<br> "begin": [0,0,1,0],<br> "end": [0,0,0,0],<br> "end_mask": 15<br>}|
|
|
2613
|
+
|17|Slice|`Slice` implements special replacements separately ignore all automatic conversions and generate `tf.strided_slice` directly by specifying all parameters of `tf.strided_slice` directly.<br>https://www.tensorflow.org/api_docs/python/tf/strided_slice<br>See [json_samples/replace_slice.json](https://github.com/PINTO0309/onnx2tf/blob/main/json_samples/replace_slice.json) for a sample description.<br><br>1. "param_target": "op"<br>`begin`: Value of `begin`<br>`end`: Value of `end`<br>`strides`: Value of `strides`<br>`begin_mask`: Value of `begin_mask`<br>`end_mask`: Value of `end_mask`<br>`ellipsis_mask`: Value of `ellipsis_mask`<br>`new_axis_mask`: Value of `new_axis_mask`<br>`shrink_axis_mask`: Value of `shrink_axis_mask`<br>{<br> "op_name": "/Slice",<br> "param_target": "op",<br> "begin": [0,0,1,0],<br> "end": [0,0,0,0],<br> "end_mask": 15<br>}|
|
|
2614
2614
|
|18|Softmax|1. "param_target": "attributes"<br>`axis`: Value of `axis`. The transpositions corresponding to the specified axis are extrapolated before and after `Softmax`.<br>2. "param_target": "inputs"<br>`values`: Value of `tensor`|
|
|
2615
2615
|
|19|Split|1. "param_target": "inputs"<br>`values`: Value of `split`<br>2. "param_target": "attributes"<br>`axis`: Value of `axis`.<br>`num_outputs`: Value of `num_outputs`.|
|
|
2616
2616
|
|20|Sub|1. "param_target": "inputs"<br>`values`: Value of `input`<br>`pre_process_transpose_perm`: Transpose is applied to the tensor before the Sub operation with the perm specified as pre-processing.<br>2. "param_target": "outputs"<br>`post_process_transpose_perm`: Transpose is applied to the tensor after the Sub operation with the perm specified as post-processing.|
|
|
@@ -299,7 +299,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
|
|
|
299
299
|
docker run --rm -it \
|
|
300
300
|
-v `pwd`:/workdir \
|
|
301
301
|
-w /workdir \
|
|
302
|
-
ghcr.io/pinto0309/onnx2tf:1.26.
|
|
302
|
+
ghcr.io/pinto0309/onnx2tf:1.26.2
|
|
303
303
|
|
|
304
304
|
or
|
|
305
305
|
|
|
@@ -307,7 +307,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
|
|
|
307
307
|
docker run --rm -it \
|
|
308
308
|
-v `pwd`:/workdir \
|
|
309
309
|
-w /workdir \
|
|
310
|
-
docker.io/pinto0309/onnx2tf:1.26.
|
|
310
|
+
docker.io/pinto0309/onnx2tf:1.26.2
|
|
311
311
|
|
|
312
312
|
or
|
|
313
313
|
|
|
@@ -1514,8 +1514,8 @@ usage: onnx2tf
|
|
|
1514
1514
|
[-oiqt]
|
|
1515
1515
|
[-qt {per-channel,per-tensor}]
|
|
1516
1516
|
[-cind INPUT_NAME NUMPY_FILE_PATH MEAN STD]
|
|
1517
|
-
[-iqd {int8,uint8}]
|
|
1518
|
-
[-oqd {int8,uint8}]
|
|
1517
|
+
[-iqd {int8,uint8,float32}]
|
|
1518
|
+
[-oqd {int8,uint8,float32}]
|
|
1519
1519
|
[-nuo]
|
|
1520
1520
|
[-nuonag]
|
|
1521
1521
|
[-b BATCH_SIZE]
|
|
@@ -1672,13 +1672,13 @@ optional arguments:
|
|
|
1672
1672
|
and {input_op_name}, {numpy_file_path}, {mean}, and {std} must all be entered.
|
|
1673
1673
|
Otherwise, an error will occur during the -oiqt stage.
|
|
1674
1674
|
|
|
1675
|
-
-iqd {int8,uint8}, --input_quant_dtype {int8,uint8}
|
|
1675
|
+
-iqd {int8,uint8,float32}, --input_quant_dtype {int8,uint8,float32}
|
|
1676
1676
|
Input dtypes when doing Full INT8 Quantization.
|
|
1677
|
-
"int8"(default) or "uint8"
|
|
1677
|
+
"int8"(default) or "uint8" or "float32"
|
|
1678
1678
|
|
|
1679
|
-
-oqd {int8,uint8}, --output_quant_dtype {int8,uint8}
|
|
1679
|
+
-oqd {int8,uint8,float32}, --output_quant_dtype {int8,uint8,float32}
|
|
1680
1680
|
Output dtypes when doing Full INT8 Quantization.
|
|
1681
|
-
"int8"(default) or "uint8"
|
|
1681
|
+
"int8"(default) or "uint8" or "float32"
|
|
1682
1682
|
|
|
1683
1683
|
-nuo, --not_use_onnxsim
|
|
1684
1684
|
No optimization by onnx-simplifier is performed.
|
|
@@ -2165,11 +2165,11 @@ convert(
|
|
|
2165
2165
|
|
|
2166
2166
|
input_quant_dtype: Optional[str]
|
|
2167
2167
|
Input dtypes when doing Full INT8 Quantization.
|
|
2168
|
-
"int8"(default) or "uint8"
|
|
2168
|
+
"int8"(default) or "uint8" or "float32"
|
|
2169
2169
|
|
|
2170
2170
|
output_quant_dtype: Optional[str]
|
|
2171
2171
|
Output dtypes when doing Full INT8 Quantization.
|
|
2172
|
-
"int8"(default) or "uint8"
|
|
2172
|
+
"int8"(default) or "uint8" or "float32"
|
|
2173
2173
|
|
|
2174
2174
|
not_use_onnxsim: Optional[bool]
|
|
2175
2175
|
No optimization by onnx-simplifier is performed.
|
|
@@ -2595,7 +2595,7 @@ Do not submit an issue that only contains an amount of information that cannot b
|
|
|
2595
2595
|
|14|Unsqueeze|1. "param_target": "inputs"<br>`pre_process_transpose_perm`: Transpose is applied to the tensor before the Unsqueeze operation with the perm specified as pre-processing.<br>2. "param_target": "outputs"<br>`post_process_transpose_perm`: Transpose is applied to the tensor after the Unsqueeze operation with the perm specified as post-processing.<br>3. "param_target": "op"<br>`new_shape`: Specifies directly the shape after Unsqueeze processing.<br>{<br> "op_name": "/backbone/backbone.1/Unsqueeze_1",<br> "param_target": "op",<br> "new_shape": [1,15,15,1]<br>}|
|
|
2596
2596
|
|15|Reshape|1. "param_target": "inputs"<br>`values`: Value of `shape`<br>`pre_process_transpose_perm`: Transpose is applied to the tensor before the Reshape operation with the perm specified as pre-processing.<br>2. "param_target": "outputs"<br>`post_process_transpose_perm`: Transpose is applied to the tensor after the Reshape operation with the perm specified as post-processing.|
|
|
2597
2597
|
|16|Resize|1. "param_target": "attributes"<br>`coordinate_transformation_mode`: Value of `coordinate_transformation_mode`<br>`extrapolation_value`: Value of `extrapolation_value`<br>`mode`: Value of `mode`<br>2. "param_target": "inputs"<br>`values`: Value of `roi` or `scales` or `sizes`. `scales`=`[scale_h,scale_w]`,`sizes`=`[h,w]`<br>`pre_process_transpose_perm`: Transpose is applied to the tensor before the Resize operation with the perm specified as pre-processing.<br>3. "param_target": "outputs"<br>`post_process_transpose_perm`: Transpose is applied to the tensor after the Resize operation with the perm specified as post-processing.|
|
|
2598
|
-
|17|Slice|`Slice` implements special replacements separately ignore all automatic conversions and generate `tf.strided_slice` directly by specifying all parameters of `tf.strided_slice` directly.<br>https://www.tensorflow.org/api_docs/python/tf/strided_slice<br>See [replace_slice.json](https://github.com/PINTO0309/onnx2tf/blob/main/replace_slice.json) for a sample description.<br><br>1. "param_target": "op"<br>`begin`: Value of `begin`<br>`end`: Value of `end`<br>`strides`: Value of `strides`<br>`begin_mask`: Value of `begin_mask`<br>`end_mask`: Value of `end_mask`<br>`ellipsis_mask`: Value of `ellipsis_mask`<br>`new_axis_mask`: Value of `new_axis_mask`<br>`shrink_axis_mask`: Value of `shrink_axis_mask`<br>{<br> "op_name": "/Slice",<br> "param_target": "op",<br> "begin": [0,0,1,0],<br> "end": [0,0,0,0],<br> "end_mask": 15<br>}|
|
|
2598
|
+
|17|Slice|`Slice` implements special replacements separately ignore all automatic conversions and generate `tf.strided_slice` directly by specifying all parameters of `tf.strided_slice` directly.<br>https://www.tensorflow.org/api_docs/python/tf/strided_slice<br>See [json_samples/replace_slice.json](https://github.com/PINTO0309/onnx2tf/blob/main/json_samples/replace_slice.json) for a sample description.<br><br>1. "param_target": "op"<br>`begin`: Value of `begin`<br>`end`: Value of `end`<br>`strides`: Value of `strides`<br>`begin_mask`: Value of `begin_mask`<br>`end_mask`: Value of `end_mask`<br>`ellipsis_mask`: Value of `ellipsis_mask`<br>`new_axis_mask`: Value of `new_axis_mask`<br>`shrink_axis_mask`: Value of `shrink_axis_mask`<br>{<br> "op_name": "/Slice",<br> "param_target": "op",<br> "begin": [0,0,1,0],<br> "end": [0,0,0,0],<br> "end_mask": 15<br>}|
|
|
2599
2599
|
|18|Softmax|1. "param_target": "attributes"<br>`axis`: Value of `axis`. The transpositions corresponding to the specified axis are extrapolated before and after `Softmax`.<br>2. "param_target": "inputs"<br>`values`: Value of `tensor`|
|
|
2600
2600
|
|19|Split|1. "param_target": "inputs"<br>`values`: Value of `split`<br>2. "param_target": "attributes"<br>`axis`: Value of `axis`.<br>`num_outputs`: Value of `num_outputs`.|
|
|
2601
2601
|
|20|Sub|1. "param_target": "inputs"<br>`values`: Value of `input`<br>`pre_process_transpose_perm`: Transpose is applied to the tensor before the Sub operation with the perm specified as pre-processing.<br>2. "param_target": "outputs"<br>`post_process_transpose_perm`: Transpose is applied to the tensor after the Sub operation with the perm specified as post-processing.|
|
|
@@ -222,9 +222,13 @@ def convert(
|
|
|
222
222
|
["input2","input2.npy",[0.3],[0.07]],\n
|
|
223
223
|
]
|
|
224
224
|
|
|
225
|
-
|
|
226
|
-
Input
|
|
227
|
-
"int8"(default) or "uint8"
|
|
225
|
+
input_quant_dtype: Optional[str]
|
|
226
|
+
Input dtypes when doing Full INT8 Quantization.\n
|
|
227
|
+
"int8"(default) or "uint8" or "float32"
|
|
228
|
+
|
|
229
|
+
output_quant_dtype: Optional[str]
|
|
230
|
+
Output dtypes when doing Full INT8 Quantization.\n
|
|
231
|
+
"int8"(default) or "uint8" or "float32"
|
|
228
232
|
|
|
229
233
|
not_use_onnxsim: Optional[bool]
|
|
230
234
|
No optimization by onnx-simplifier is performed.\n
|
|
@@ -1622,6 +1626,7 @@ def convert(
|
|
|
1622
1626
|
mean,
|
|
1623
1627
|
std,
|
|
1624
1628
|
]
|
|
1629
|
+
|
|
1625
1630
|
elif custom_input_op_name_np_data_path is not None:
|
|
1626
1631
|
for param in custom_input_op_name_np_data_path:
|
|
1627
1632
|
if len(param) != 4:
|
|
@@ -1648,11 +1653,14 @@ def convert(
|
|
|
1648
1653
|
|
|
1649
1654
|
# representative_dataset_gen
|
|
1650
1655
|
def representative_dataset_gen():
|
|
1651
|
-
|
|
1656
|
+
batch_size = model.inputs[0].shape[0]
|
|
1657
|
+
if not isinstance(batch_size, int):
|
|
1658
|
+
batch_size = 1
|
|
1659
|
+
for idx in range(0, data_count, batch_size):
|
|
1652
1660
|
yield_data_dict = {}
|
|
1653
1661
|
for model_input_name in model_input_name_list:
|
|
1654
1662
|
calib_data, mean, std = calib_data_dict[model_input_name]
|
|
1655
|
-
normalized_calib_data: np.ndarray = (calib_data[idx] - mean) / std
|
|
1663
|
+
normalized_calib_data: np.ndarray = (calib_data[idx:idx+batch_size] - mean) / std
|
|
1656
1664
|
yield_data_dict[model_input_name] = tf.cast(tf.convert_to_tensor(normalized_calib_data), tf.float32)
|
|
1657
1665
|
yield yield_data_dict
|
|
1658
1666
|
|
|
@@ -1700,13 +1708,17 @@ def convert(
|
|
|
1700
1708
|
inf_type_input = tf.int8
|
|
1701
1709
|
elif input_quant_dtype == 'uint8':
|
|
1702
1710
|
inf_type_input = tf.uint8
|
|
1711
|
+
elif input_quant_dtype == 'float32':
|
|
1712
|
+
inf_type_input = tf.float32
|
|
1703
1713
|
else:
|
|
1704
1714
|
inf_type_input = tf.int8
|
|
1705
|
-
|
|
1715
|
+
|
|
1706
1716
|
if output_quant_dtype == 'int8':
|
|
1707
1717
|
inf_type_output = tf.int8
|
|
1708
1718
|
elif output_quant_dtype == 'uint8':
|
|
1709
1719
|
inf_type_output = tf.uint8
|
|
1720
|
+
elif output_quant_dtype == 'float32':
|
|
1721
|
+
inf_type_output = tf.float32
|
|
1710
1722
|
else:
|
|
1711
1723
|
inf_type_output = tf.int8
|
|
1712
1724
|
converter.inference_input_type = inf_type_input
|
|
@@ -2140,21 +2152,21 @@ def main():
|
|
|
2140
2152
|
'-iqd',
|
|
2141
2153
|
'--input_quant_dtype',
|
|
2142
2154
|
type=str,
|
|
2143
|
-
choices=['int8', 'uint8'],
|
|
2155
|
+
choices=['int8', 'uint8', 'float32'],
|
|
2144
2156
|
default='int8',
|
|
2145
2157
|
help=\
|
|
2146
2158
|
'Input dtypes when doing Full INT8 Quantization. \n' +
|
|
2147
|
-
'"int8"(default) or "uint8"'
|
|
2159
|
+
'"int8"(default) or "uint8" or "float32"'
|
|
2148
2160
|
)
|
|
2149
2161
|
parser.add_argument(
|
|
2150
2162
|
'-oqd',
|
|
2151
2163
|
'--output_quant_dtype',
|
|
2152
2164
|
type=str,
|
|
2153
|
-
choices=['int8', 'uint8'],
|
|
2165
|
+
choices=['int8', 'uint8', 'float32'],
|
|
2154
2166
|
default='int8',
|
|
2155
2167
|
help=\
|
|
2156
2168
|
'Output dtypes when doing Full INT8 Quantization. \n' +
|
|
2157
|
-
'"int8"(default) or "uint8"'
|
|
2169
|
+
'"int8"(default) or "uint8" or "float32"'
|
|
2158
2170
|
)
|
|
2159
2171
|
parser.add_argument(
|
|
2160
2172
|
'-nuo',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: onnx2tf
|
|
3
|
-
Version: 1.26.
|
|
3
|
+
Version: 1.26.2
|
|
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
|
|
@@ -314,7 +314,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
|
|
|
314
314
|
docker run --rm -it \
|
|
315
315
|
-v `pwd`:/workdir \
|
|
316
316
|
-w /workdir \
|
|
317
|
-
ghcr.io/pinto0309/onnx2tf:1.26.
|
|
317
|
+
ghcr.io/pinto0309/onnx2tf:1.26.2
|
|
318
318
|
|
|
319
319
|
or
|
|
320
320
|
|
|
@@ -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
|
-
docker.io/pinto0309/onnx2tf:1.26.
|
|
325
|
+
docker.io/pinto0309/onnx2tf:1.26.2
|
|
326
326
|
|
|
327
327
|
or
|
|
328
328
|
|
|
@@ -1529,8 +1529,8 @@ usage: onnx2tf
|
|
|
1529
1529
|
[-oiqt]
|
|
1530
1530
|
[-qt {per-channel,per-tensor}]
|
|
1531
1531
|
[-cind INPUT_NAME NUMPY_FILE_PATH MEAN STD]
|
|
1532
|
-
[-iqd {int8,uint8}]
|
|
1533
|
-
[-oqd {int8,uint8}]
|
|
1532
|
+
[-iqd {int8,uint8,float32}]
|
|
1533
|
+
[-oqd {int8,uint8,float32}]
|
|
1534
1534
|
[-nuo]
|
|
1535
1535
|
[-nuonag]
|
|
1536
1536
|
[-b BATCH_SIZE]
|
|
@@ -1687,13 +1687,13 @@ optional arguments:
|
|
|
1687
1687
|
and {input_op_name}, {numpy_file_path}, {mean}, and {std} must all be entered.
|
|
1688
1688
|
Otherwise, an error will occur during the -oiqt stage.
|
|
1689
1689
|
|
|
1690
|
-
-iqd {int8,uint8}, --input_quant_dtype {int8,uint8}
|
|
1690
|
+
-iqd {int8,uint8,float32}, --input_quant_dtype {int8,uint8,float32}
|
|
1691
1691
|
Input dtypes when doing Full INT8 Quantization.
|
|
1692
|
-
"int8"(default) or "uint8"
|
|
1692
|
+
"int8"(default) or "uint8" or "float32"
|
|
1693
1693
|
|
|
1694
|
-
-oqd {int8,uint8}, --output_quant_dtype {int8,uint8}
|
|
1694
|
+
-oqd {int8,uint8,float32}, --output_quant_dtype {int8,uint8,float32}
|
|
1695
1695
|
Output dtypes when doing Full INT8 Quantization.
|
|
1696
|
-
"int8"(default) or "uint8"
|
|
1696
|
+
"int8"(default) or "uint8" or "float32"
|
|
1697
1697
|
|
|
1698
1698
|
-nuo, --not_use_onnxsim
|
|
1699
1699
|
No optimization by onnx-simplifier is performed.
|
|
@@ -2180,11 +2180,11 @@ convert(
|
|
|
2180
2180
|
|
|
2181
2181
|
input_quant_dtype: Optional[str]
|
|
2182
2182
|
Input dtypes when doing Full INT8 Quantization.
|
|
2183
|
-
"int8"(default) or "uint8"
|
|
2183
|
+
"int8"(default) or "uint8" or "float32"
|
|
2184
2184
|
|
|
2185
2185
|
output_quant_dtype: Optional[str]
|
|
2186
2186
|
Output dtypes when doing Full INT8 Quantization.
|
|
2187
|
-
"int8"(default) or "uint8"
|
|
2187
|
+
"int8"(default) or "uint8" or "float32"
|
|
2188
2188
|
|
|
2189
2189
|
not_use_onnxsim: Optional[bool]
|
|
2190
2190
|
No optimization by onnx-simplifier is performed.
|
|
@@ -2610,7 +2610,7 @@ Do not submit an issue that only contains an amount of information that cannot b
|
|
|
2610
2610
|
|14|Unsqueeze|1. "param_target": "inputs"<br>`pre_process_transpose_perm`: Transpose is applied to the tensor before the Unsqueeze operation with the perm specified as pre-processing.<br>2. "param_target": "outputs"<br>`post_process_transpose_perm`: Transpose is applied to the tensor after the Unsqueeze operation with the perm specified as post-processing.<br>3. "param_target": "op"<br>`new_shape`: Specifies directly the shape after Unsqueeze processing.<br>{<br> "op_name": "/backbone/backbone.1/Unsqueeze_1",<br> "param_target": "op",<br> "new_shape": [1,15,15,1]<br>}|
|
|
2611
2611
|
|15|Reshape|1. "param_target": "inputs"<br>`values`: Value of `shape`<br>`pre_process_transpose_perm`: Transpose is applied to the tensor before the Reshape operation with the perm specified as pre-processing.<br>2. "param_target": "outputs"<br>`post_process_transpose_perm`: Transpose is applied to the tensor after the Reshape operation with the perm specified as post-processing.|
|
|
2612
2612
|
|16|Resize|1. "param_target": "attributes"<br>`coordinate_transformation_mode`: Value of `coordinate_transformation_mode`<br>`extrapolation_value`: Value of `extrapolation_value`<br>`mode`: Value of `mode`<br>2. "param_target": "inputs"<br>`values`: Value of `roi` or `scales` or `sizes`. `scales`=`[scale_h,scale_w]`,`sizes`=`[h,w]`<br>`pre_process_transpose_perm`: Transpose is applied to the tensor before the Resize operation with the perm specified as pre-processing.<br>3. "param_target": "outputs"<br>`post_process_transpose_perm`: Transpose is applied to the tensor after the Resize operation with the perm specified as post-processing.|
|
|
2613
|
-
|17|Slice|`Slice` implements special replacements separately ignore all automatic conversions and generate `tf.strided_slice` directly by specifying all parameters of `tf.strided_slice` directly.<br>https://www.tensorflow.org/api_docs/python/tf/strided_slice<br>See [replace_slice.json](https://github.com/PINTO0309/onnx2tf/blob/main/replace_slice.json) for a sample description.<br><br>1. "param_target": "op"<br>`begin`: Value of `begin`<br>`end`: Value of `end`<br>`strides`: Value of `strides`<br>`begin_mask`: Value of `begin_mask`<br>`end_mask`: Value of `end_mask`<br>`ellipsis_mask`: Value of `ellipsis_mask`<br>`new_axis_mask`: Value of `new_axis_mask`<br>`shrink_axis_mask`: Value of `shrink_axis_mask`<br>{<br> "op_name": "/Slice",<br> "param_target": "op",<br> "begin": [0,0,1,0],<br> "end": [0,0,0,0],<br> "end_mask": 15<br>}|
|
|
2613
|
+
|17|Slice|`Slice` implements special replacements separately ignore all automatic conversions and generate `tf.strided_slice` directly by specifying all parameters of `tf.strided_slice` directly.<br>https://www.tensorflow.org/api_docs/python/tf/strided_slice<br>See [json_samples/replace_slice.json](https://github.com/PINTO0309/onnx2tf/blob/main/json_samples/replace_slice.json) for a sample description.<br><br>1. "param_target": "op"<br>`begin`: Value of `begin`<br>`end`: Value of `end`<br>`strides`: Value of `strides`<br>`begin_mask`: Value of `begin_mask`<br>`end_mask`: Value of `end_mask`<br>`ellipsis_mask`: Value of `ellipsis_mask`<br>`new_axis_mask`: Value of `new_axis_mask`<br>`shrink_axis_mask`: Value of `shrink_axis_mask`<br>{<br> "op_name": "/Slice",<br> "param_target": "op",<br> "begin": [0,0,1,0],<br> "end": [0,0,0,0],<br> "end_mask": 15<br>}|
|
|
2614
2614
|
|18|Softmax|1. "param_target": "attributes"<br>`axis`: Value of `axis`. The transpositions corresponding to the specified axis are extrapolated before and after `Softmax`.<br>2. "param_target": "inputs"<br>`values`: Value of `tensor`|
|
|
2615
2615
|
|19|Split|1. "param_target": "inputs"<br>`values`: Value of `split`<br>2. "param_target": "attributes"<br>`axis`: Value of `axis`.<br>`num_outputs`: Value of `num_outputs`.|
|
|
2616
2616
|
|20|Sub|1. "param_target": "inputs"<br>`values`: Value of `input`<br>`pre_process_transpose_perm`: Transpose is applied to the tensor before the Sub operation with the perm specified as pre-processing.<br>2. "param_target": "outputs"<br>`post_process_transpose_perm`: Transpose is applied to the tensor after the Sub operation with the perm specified as post-processing.|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|