onnx2tf 1.29.11__tar.gz → 1.29.12__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.
Files changed (204) hide show
  1. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/PKG-INFO +3 -3
  2. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/README.md +2 -2
  3. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/__init__.py +1 -1
  4. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/MatMul.py +55 -6
  5. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/pyproject.toml +1 -1
  6. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/__main__.py +0 -0
  7. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/onnx2tf.py +0 -0
  8. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Abs.py +0 -0
  9. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Acos.py +0 -0
  10. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Acosh.py +0 -0
  11. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Add.py +0 -0
  12. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/AffineGrid.py +0 -0
  13. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/And.py +0 -0
  14. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ArgMax.py +0 -0
  15. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ArgMin.py +0 -0
  16. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Asin.py +0 -0
  17. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Asinh.py +0 -0
  18. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Atan.py +0 -0
  19. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Atanh.py +0 -0
  20. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Attention.py +0 -0
  21. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/AveragePool.py +0 -0
  22. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/BatchNormalization.py +0 -0
  23. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Bernoulli.py +0 -0
  24. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/BitShift.py +0 -0
  25. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/BitwiseAnd.py +0 -0
  26. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/BitwiseNot.py +0 -0
  27. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/BitwiseOr.py +0 -0
  28. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/BitwiseXor.py +0 -0
  29. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/BlackmanWindow.py +0 -0
  30. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Cast.py +0 -0
  31. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Ceil.py +0 -0
  32. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Celu.py +0 -0
  33. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Clip.py +0 -0
  34. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Col2Im.py +0 -0
  35. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Compress.py +0 -0
  36. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Concat.py +0 -0
  37. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ConcatFromSequence.py +0 -0
  38. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Constant.py +0 -0
  39. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ConstantOfShape.py +0 -0
  40. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Conv.py +0 -0
  41. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ConvInteger.py +0 -0
  42. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ConvTranspose.py +0 -0
  43. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Cos.py +0 -0
  44. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Cosh.py +0 -0
  45. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/CumProd.py +0 -0
  46. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/CumSum.py +0 -0
  47. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/DepthToSpace.py +0 -0
  48. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/DequantizeLinear.py +0 -0
  49. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Det.py +0 -0
  50. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Div.py +0 -0
  51. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Dropout.py +0 -0
  52. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/DynamicQuantizeLinear.py +0 -0
  53. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Einsum.py +0 -0
  54. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Elu.py +0 -0
  55. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Equal.py +0 -0
  56. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Erf.py +0 -0
  57. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Exp.py +0 -0
  58. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Expand.py +0 -0
  59. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/EyeLike.py +0 -0
  60. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Flatten.py +0 -0
  61. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Floor.py +0 -0
  62. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/FusedConv.py +0 -0
  63. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/GRU.py +0 -0
  64. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Gather.py +0 -0
  65. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/GatherElements.py +0 -0
  66. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/GatherND.py +0 -0
  67. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Gelu.py +0 -0
  68. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Gemm.py +0 -0
  69. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/GlobalAveragePool.py +0 -0
  70. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/GlobalLpPool.py +0 -0
  71. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/GlobalMaxPool.py +0 -0
  72. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Greater.py +0 -0
  73. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/GreaterOrEqual.py +0 -0
  74. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/GridSample.py +0 -0
  75. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/GroupNorm.py +0 -0
  76. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/HammingWindow.py +0 -0
  77. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/HannWindow.py +0 -0
  78. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/HardSigmoid.py +0 -0
  79. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/HardSwish.py +0 -0
  80. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Hardmax.py +0 -0
  81. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Identity.py +0 -0
  82. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/If.py +0 -0
  83. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Input.py +0 -0
  84. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/InstanceNormalization.py +0 -0
  85. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Inverse.py +0 -0
  86. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/IsInf.py +0 -0
  87. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/IsNaN.py +0 -0
  88. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/LRN.py +0 -0
  89. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/LSTM.py +0 -0
  90. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/LayerNormalization.py +0 -0
  91. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/LeakyRelu.py +0 -0
  92. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Less.py +0 -0
  93. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/LessOrEqual.py +0 -0
  94. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Log.py +0 -0
  95. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/LogSoftmax.py +0 -0
  96. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Loop.py +0 -0
  97. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/LpNormalization.py +0 -0
  98. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/LpPool.py +0 -0
  99. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/MatMulInteger.py +0 -0
  100. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Max.py +0 -0
  101. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/MaxPool.py +0 -0
  102. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/MaxRoiPool.py +0 -0
  103. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/MaxUnpool.py +0 -0
  104. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Mean.py +0 -0
  105. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/MeanVarianceNormalization.py +0 -0
  106. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/MelWeightMatrix.py +0 -0
  107. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Min.py +0 -0
  108. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Mish.py +0 -0
  109. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Mod.py +0 -0
  110. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Mul.py +0 -0
  111. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Multinomial.py +0 -0
  112. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Neg.py +0 -0
  113. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/NonMaxSuppression.py +0 -0
  114. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/NonZero.py +0 -0
  115. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Not.py +0 -0
  116. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/OneHot.py +0 -0
  117. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/OptionalGetElement.py +0 -0
  118. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/OptionalHasElement.py +0 -0
  119. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Or.py +0 -0
  120. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/PRelu.py +0 -0
  121. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Pad.py +0 -0
  122. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Pow.py +0 -0
  123. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/QLinearAdd.py +0 -0
  124. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/QLinearConcat.py +0 -0
  125. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/QLinearConv.py +0 -0
  126. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/QLinearLeakyRelu.py +0 -0
  127. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/QLinearMatMul.py +0 -0
  128. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/QLinearMul.py +0 -0
  129. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/QLinearSigmoid.py +0 -0
  130. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/QLinearSoftmax.py +0 -0
  131. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/QuantizeLinear.py +0 -0
  132. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/RNN.py +0 -0
  133. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/RandomNormal.py +0 -0
  134. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/RandomNormalLike.py +0 -0
  135. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/RandomUniform.py +0 -0
  136. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/RandomUniformLike.py +0 -0
  137. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Range.py +0 -0
  138. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Reciprocal.py +0 -0
  139. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ReduceL1.py +0 -0
  140. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ReduceL2.py +0 -0
  141. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ReduceLogSum.py +0 -0
  142. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ReduceLogSumExp.py +0 -0
  143. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ReduceMax.py +0 -0
  144. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ReduceMean.py +0 -0
  145. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ReduceMin.py +0 -0
  146. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ReduceProd.py +0 -0
  147. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ReduceSum.py +0 -0
  148. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ReduceSumSquare.py +0 -0
  149. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Relu.py +0 -0
  150. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Reshape.py +0 -0
  151. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Resize.py +0 -0
  152. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ReverseSequence.py +0 -0
  153. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/RoiAlign.py +0 -0
  154. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Round.py +0 -0
  155. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/STFT.py +0 -0
  156. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ScaleAndTranslate.py +0 -0
  157. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Scatter.py +0 -0
  158. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ScatterElements.py +0 -0
  159. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ScatterND.py +0 -0
  160. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Selu.py +0 -0
  161. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/SequenceAt.py +0 -0
  162. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/SequenceConstruct.py +0 -0
  163. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/SequenceEmpty.py +0 -0
  164. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/SequenceErase.py +0 -0
  165. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/SequenceInsert.py +0 -0
  166. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/SequenceLength.py +0 -0
  167. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Shape.py +0 -0
  168. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Shrink.py +0 -0
  169. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Sigmoid.py +0 -0
  170. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Sign.py +0 -0
  171. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Sin.py +0 -0
  172. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Sinh.py +0 -0
  173. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Size.py +0 -0
  174. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Slice.py +0 -0
  175. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Softmax.py +0 -0
  176. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Softplus.py +0 -0
  177. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Softsign.py +0 -0
  178. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/SpaceToDepth.py +0 -0
  179. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Split.py +0 -0
  180. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/SplitToSequence.py +0 -0
  181. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Sqrt.py +0 -0
  182. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Squeeze.py +0 -0
  183. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/StringNormalizer.py +0 -0
  184. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Sub.py +0 -0
  185. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Sum.py +0 -0
  186. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Tan.py +0 -0
  187. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Tanh.py +0 -0
  188. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/ThresholdedRelu.py +0 -0
  189. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Tile.py +0 -0
  190. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/TopK.py +0 -0
  191. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Transpose.py +0 -0
  192. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Trilu.py +0 -0
  193. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Unique.py +0 -0
  194. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Unsqueeze.py +0 -0
  195. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Upsample.py +0 -0
  196. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Where.py +0 -0
  197. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/Xor.py +0 -0
  198. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/ops/__init__.py +0 -0
  199. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/utils/__init__.py +0 -0
  200. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/utils/common_functions.py +0 -0
  201. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/utils/enums.py +0 -0
  202. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/utils/iterative_json_optimizer.py +0 -0
  203. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/utils/json_auto_generator.py +0 -0
  204. {onnx2tf-1.29.11 → onnx2tf-1.29.12}/onnx2tf/utils/logging.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: onnx2tf
3
- Version: 1.29.11
3
+ Version: 1.29.12
4
4
  Summary: Self-Created Tools to convert ONNX files (NCHW) to TensorFlow/TFLite/Keras format (NHWC). The purpose of this tool is to solve the massive Transpose extrapolation problem in onnx-tensorflow (onnx-tf).
5
5
  Keywords: onnx,tensorflow,tflite,keras,deep-learning,machine-learning
6
6
  Author: Katsuya Hyodo
@@ -363,7 +363,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
363
363
  docker run --rm -it \
364
364
  -v `pwd`:/workdir \
365
365
  -w /workdir \
366
- ghcr.io/pinto0309/onnx2tf:1.29.11
366
+ ghcr.io/pinto0309/onnx2tf:1.29.12
367
367
 
368
368
  or
369
369
 
@@ -371,7 +371,7 @@ Video speed is adjusted approximately 50 times slower than actual speed.
371
371
  docker run --rm -it \
372
372
  -v `pwd`:/workdir \
373
373
  -w /workdir \
374
- docker.io/pinto0309/onnx2tf:1.29.11
374
+ docker.io/pinto0309/onnx2tf:1.29.12
375
375
 
376
376
  or
377
377
 
@@ -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.11
325
+ ghcr.io/pinto0309/onnx2tf:1.29.12
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.11
333
+ docker.io/pinto0309/onnx2tf:1.29.12
334
334
 
335
335
  or
336
336
 
@@ -1,3 +1,3 @@
1
1
  from onnx2tf.onnx2tf import convert, main
2
2
 
3
- __version__ = '1.29.11'
3
+ __version__ = '1.29.12'
@@ -444,19 +444,68 @@ def make_node(
444
444
  onnx_output_shape = [
445
445
  dim if not isinstance(dim, str) else None for dim in onnx_output_shape
446
446
  ]
447
+
448
+ def _shape_match(a_shape, b_shape):
449
+ if len(a_shape) != len(b_shape):
450
+ return False
451
+ for a_dim, b_dim in zip(a_shape, b_shape):
452
+ if a_dim is None or b_dim is None:
453
+ continue
454
+ if a_dim != b_dim:
455
+ return False
456
+ return True
457
+
458
+ # Squeeze unit dims if ONNX output rank is smaller.
459
+ if len(post_matmul_shape) > len(onnx_output_shape):
460
+ squeeze_axes = []
461
+ tmp_shape = list(post_matmul_shape)
462
+ while len(tmp_shape) > len(onnx_output_shape) and tmp_shape[-1] == 1:
463
+ squeeze_axes.append(len(tmp_shape) - 1)
464
+ tmp_shape.pop()
465
+ if squeeze_axes and len(tmp_shape) == len(onnx_output_shape) \
466
+ and _shape_match(tmp_shape, onnx_output_shape):
467
+ tf_layers_dict[graph_node_output.name]['tf_node'] = \
468
+ tf.squeeze(
469
+ input=tf_layers_dict[graph_node_output.name]['tf_node'],
470
+ axis=squeeze_axes,
471
+ )
472
+ post_matmul_shape = list(tf_layers_dict[graph_node_output.name]['tf_node'].shape)
473
+ post_matmul_shape_none_count = sum(
474
+ [1 if dim is None else 0 for dim in post_matmul_shape]
475
+ )
476
+ else:
477
+ leading_ones = 0
478
+ tmp_shape = list(post_matmul_shape)
479
+ while len(tmp_shape) > len(onnx_output_shape) and tmp_shape and tmp_shape[0] == 1:
480
+ leading_ones += 1
481
+ tmp_shape.pop(0)
482
+ if leading_ones and len(tmp_shape) == len(onnx_output_shape) \
483
+ and _shape_match(tmp_shape, onnx_output_shape):
484
+ tf_layers_dict[graph_node_output.name]['tf_node'] = \
485
+ tf.squeeze(
486
+ input=tf_layers_dict[graph_node_output.name]['tf_node'],
487
+ axis=list(range(leading_ones)),
488
+ )
489
+ post_matmul_shape = list(tf_layers_dict[graph_node_output.name]['tf_node'].shape)
490
+ post_matmul_shape_none_count = sum(
491
+ [1 if dim is None else 0 for dim in post_matmul_shape]
492
+ )
493
+
447
494
  onnx_output_shape_none_count = sum([1 if dim is None else 0 for dim in onnx_output_shape])
448
- if post_matmul_shape_none_count == onnx_output_shape_none_count:
495
+ if post_matmul_shape_none_count == onnx_output_shape_none_count \
496
+ and post_matmul_shape != list(onnx_output_shape):
449
497
  post_transpose_perm = []
450
498
  for dim in onnx_output_shape:
451
499
  idx = post_matmul_shape.index(dim)
452
500
  post_transpose_perm.append(idx)
453
501
  post_matmul_shape[idx] = -999
454
502
 
455
- tf_layers_dict[graph_node_output.name]['tf_node'] = \
456
- tf.transpose(
457
- a=tf_layers_dict[graph_node_output.name]['tf_node'],
458
- perm=post_transpose_perm,
459
- )
503
+ if len(post_transpose_perm) == len(post_matmul_shape):
504
+ tf_layers_dict[graph_node_output.name]['tf_node'] = \
505
+ tf.transpose(
506
+ a=tf_layers_dict[graph_node_output.name]['tf_node'],
507
+ perm=post_transpose_perm,
508
+ )
460
509
 
461
510
  # Post-process transpose
462
511
  tf_layers_dict[graph_node_output.name]['tf_node'] = post_process_transpose(
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "onnx2tf"
7
- version = "1.29.11"
7
+ version = "1.29.12"
8
8
  description = "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)."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10.12"
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