onnx2tf 1.29.5__tar.gz → 1.29.6__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 (213) hide show
  1. {onnx2tf-1.29.5/onnx2tf.egg-info → onnx2tf-1.29.6}/PKG-INFO +4 -4
  2. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/README.md +3 -3
  3. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/__init__.py +1 -1
  4. onnx2tf-1.29.6/onnx2tf/ops/AffineGrid.py +187 -0
  5. onnx2tf-1.29.6/onnx2tf/ops/Attention.py +612 -0
  6. onnx2tf-1.29.6/onnx2tf/ops/BlackmanWindow.py +115 -0
  7. {onnx2tf-1.29.5 → onnx2tf-1.29.6/onnx2tf.egg-info}/PKG-INFO +4 -4
  8. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf.egg-info/SOURCES.txt +3 -0
  9. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/pyproject.toml +1 -1
  10. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/LICENSE +0 -0
  11. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/LICENSE_onnx-tensorflow +0 -0
  12. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/__main__.py +0 -0
  13. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/onnx2tf.py +0 -0
  14. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Abs.py +0 -0
  15. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Acos.py +0 -0
  16. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Acosh.py +0 -0
  17. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Add.py +0 -0
  18. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/And.py +0 -0
  19. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ArgMax.py +0 -0
  20. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ArgMin.py +0 -0
  21. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Asin.py +0 -0
  22. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Asinh.py +0 -0
  23. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Atan.py +0 -0
  24. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Atanh.py +0 -0
  25. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/AveragePool.py +0 -0
  26. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/BatchNormalization.py +0 -0
  27. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Bernoulli.py +0 -0
  28. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/BitShift.py +0 -0
  29. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/BitwiseAnd.py +0 -0
  30. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/BitwiseNot.py +0 -0
  31. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/BitwiseOr.py +0 -0
  32. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/BitwiseXor.py +0 -0
  33. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Cast.py +0 -0
  34. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Ceil.py +0 -0
  35. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Celu.py +0 -0
  36. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Clip.py +0 -0
  37. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Col2Im.py +0 -0
  38. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Compress.py +0 -0
  39. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Concat.py +0 -0
  40. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ConcatFromSequence.py +0 -0
  41. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Constant.py +0 -0
  42. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ConstantOfShape.py +0 -0
  43. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Conv.py +0 -0
  44. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ConvInteger.py +0 -0
  45. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ConvTranspose.py +0 -0
  46. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Cos.py +0 -0
  47. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Cosh.py +0 -0
  48. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/CumProd.py +0 -0
  49. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/CumSum.py +0 -0
  50. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/DepthToSpace.py +0 -0
  51. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/DequantizeLinear.py +0 -0
  52. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Det.py +0 -0
  53. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Div.py +0 -0
  54. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Dropout.py +0 -0
  55. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/DynamicQuantizeLinear.py +0 -0
  56. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Einsum.py +0 -0
  57. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Elu.py +0 -0
  58. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Equal.py +0 -0
  59. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Erf.py +0 -0
  60. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Exp.py +0 -0
  61. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Expand.py +0 -0
  62. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/EyeLike.py +0 -0
  63. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Flatten.py +0 -0
  64. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Floor.py +0 -0
  65. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/FusedConv.py +0 -0
  66. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/GRU.py +0 -0
  67. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Gather.py +0 -0
  68. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/GatherElements.py +0 -0
  69. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/GatherND.py +0 -0
  70. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Gelu.py +0 -0
  71. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Gemm.py +0 -0
  72. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/GlobalAveragePool.py +0 -0
  73. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/GlobalLpPool.py +0 -0
  74. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/GlobalMaxPool.py +0 -0
  75. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Greater.py +0 -0
  76. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/GreaterOrEqual.py +0 -0
  77. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/GridSample.py +0 -0
  78. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/GroupNorm.py +0 -0
  79. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/HammingWindow.py +0 -0
  80. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/HannWindow.py +0 -0
  81. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/HardSigmoid.py +0 -0
  82. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/HardSwish.py +0 -0
  83. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Hardmax.py +0 -0
  84. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Identity.py +0 -0
  85. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/If.py +0 -0
  86. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Input.py +0 -0
  87. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/InstanceNormalization.py +0 -0
  88. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Inverse.py +0 -0
  89. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/IsInf.py +0 -0
  90. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/IsNaN.py +0 -0
  91. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/LRN.py +0 -0
  92. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/LSTM.py +0 -0
  93. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/LayerNormalization.py +0 -0
  94. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/LeakyRelu.py +0 -0
  95. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Less.py +0 -0
  96. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/LessOrEqual.py +0 -0
  97. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Log.py +0 -0
  98. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/LogSoftmax.py +0 -0
  99. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/LpNormalization.py +0 -0
  100. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/MatMul.py +0 -0
  101. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/MatMulInteger.py +0 -0
  102. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Max.py +0 -0
  103. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/MaxPool.py +0 -0
  104. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/MaxUnpool.py +0 -0
  105. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Mean.py +0 -0
  106. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/MeanVarianceNormalization.py +0 -0
  107. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/MelWeightMatrix.py +0 -0
  108. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Min.py +0 -0
  109. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Mish.py +0 -0
  110. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Mod.py +0 -0
  111. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Mul.py +0 -0
  112. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Multinomial.py +0 -0
  113. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Neg.py +0 -0
  114. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/NonMaxSuppression.py +0 -0
  115. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/NonZero.py +0 -0
  116. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Not.py +0 -0
  117. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/OneHot.py +0 -0
  118. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/OptionalGetElement.py +0 -0
  119. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/OptionalHasElement.py +0 -0
  120. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Or.py +0 -0
  121. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/PRelu.py +0 -0
  122. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Pad.py +0 -0
  123. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Pow.py +0 -0
  124. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/QLinearAdd.py +0 -0
  125. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/QLinearConcat.py +0 -0
  126. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/QLinearConv.py +0 -0
  127. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/QLinearLeakyRelu.py +0 -0
  128. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/QLinearMatMul.py +0 -0
  129. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/QLinearMul.py +0 -0
  130. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/QLinearSigmoid.py +0 -0
  131. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/QLinearSoftmax.py +0 -0
  132. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/QuantizeLinear.py +0 -0
  133. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/RNN.py +0 -0
  134. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/RandomNormal.py +0 -0
  135. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/RandomNormalLike.py +0 -0
  136. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/RandomUniform.py +0 -0
  137. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/RandomUniformLike.py +0 -0
  138. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Range.py +0 -0
  139. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Reciprocal.py +0 -0
  140. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ReduceL1.py +0 -0
  141. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ReduceL2.py +0 -0
  142. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ReduceLogSum.py +0 -0
  143. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ReduceLogSumExp.py +0 -0
  144. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ReduceMax.py +0 -0
  145. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ReduceMean.py +0 -0
  146. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ReduceMin.py +0 -0
  147. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ReduceProd.py +0 -0
  148. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ReduceSum.py +0 -0
  149. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ReduceSumSquare.py +0 -0
  150. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Relu.py +0 -0
  151. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Reshape.py +0 -0
  152. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Resize.py +0 -0
  153. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ReverseSequence.py +0 -0
  154. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/RoiAlign.py +0 -0
  155. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Round.py +0 -0
  156. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/STFT.py +0 -0
  157. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ScaleAndTranslate.py +0 -0
  158. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Scatter.py +0 -0
  159. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ScatterElements.py +0 -0
  160. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ScatterND.py +0 -0
  161. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Selu.py +0 -0
  162. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/SequenceAt.py +0 -0
  163. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/SequenceConstruct.py +0 -0
  164. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/SequenceEmpty.py +0 -0
  165. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/SequenceErase.py +0 -0
  166. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/SequenceInsert.py +0 -0
  167. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/SequenceLength.py +0 -0
  168. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Shape.py +0 -0
  169. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Shrink.py +0 -0
  170. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Sigmoid.py +0 -0
  171. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Sign.py +0 -0
  172. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Sin.py +0 -0
  173. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Sinh.py +0 -0
  174. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Size.py +0 -0
  175. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Slice.py +0 -0
  176. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Softmax.py +0 -0
  177. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Softplus.py +0 -0
  178. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Softsign.py +0 -0
  179. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/SpaceToDepth.py +0 -0
  180. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Split.py +0 -0
  181. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/SplitToSequence.py +0 -0
  182. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Sqrt.py +0 -0
  183. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Squeeze.py +0 -0
  184. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/StringNormalizer.py +0 -0
  185. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Sub.py +0 -0
  186. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Sum.py +0 -0
  187. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Tan.py +0 -0
  188. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Tanh.py +0 -0
  189. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/ThresholdedRelu.py +0 -0
  190. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Tile.py +0 -0
  191. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/TopK.py +0 -0
  192. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Transpose.py +0 -0
  193. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Trilu.py +0 -0
  194. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Unique.py +0 -0
  195. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Unsqueeze.py +0 -0
  196. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Upsample.py +0 -0
  197. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Where.py +0 -0
  198. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/Xor.py +0 -0
  199. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/_Loop.py +0 -0
  200. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/__Loop.py +0 -0
  201. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/ops/__init__.py +0 -0
  202. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/utils/__init__.py +0 -0
  203. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/utils/common_functions.py +0 -0
  204. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/utils/enums.py +0 -0
  205. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/utils/iterative_json_optimizer.py +0 -0
  206. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/utils/json_auto_generator.py +0 -0
  207. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf/utils/logging.py +0 -0
  208. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf.egg-info/dependency_links.txt +0 -0
  209. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf.egg-info/requires.txt +0 -0
  210. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/onnx2tf.egg-info/top_level.txt +0 -0
  211. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/setup.cfg +0 -0
  212. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/setup.py +0 -0
  213. {onnx2tf-1.29.5 → onnx2tf-1.29.6}/tests/test_model_convert.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: onnx2tf
3
- Version: 1.29.5
3
+ Version: 1.29.6
4
4
  Summary: Self-Created Tools to convert ONNX files (NCHW) to TensorFlow/TFLite/Keras format (NHWC).
5
5
  Home-page: https://github.com/PINTO0309/onnx2tf
6
6
  Author: Katsuya Hyodo
@@ -95,7 +95,7 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
95
95
  |Acosh|:heavy_check_mark:|
96
96
  |Acos|:heavy_check_mark:|
97
97
  |Add|:heavy_check_mark:|
98
- |AffineGrid|**Help wanted**|
98
+ |AffineGrid|:heavy_check_mark:|
99
99
  |And|:heavy_check_mark:|
100
100
  |ArgMax|:heavy_check_mark:|
101
101
  |ArgMin|:heavy_check_mark:|
@@ -103,7 +103,7 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
103
103
  |Asin|:heavy_check_mark:|
104
104
  |Atanh|:heavy_check_mark:|
105
105
  |Atan|:heavy_check_mark:|
106
- |Attention|**Help wanted**|
106
+ |Attention|:heavy_check_mark:|
107
107
  |AveragePool|:heavy_check_mark:|
108
108
  |BatchNormalization|:heavy_check_mark:|
109
109
  |Bernoulli|:heavy_check_mark:|
@@ -112,7 +112,7 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
112
112
  |BitwiseNot|:heavy_check_mark:|
113
113
  |BitwiseOr|:heavy_check_mark:|
114
114
  |BitwiseXor|:heavy_check_mark:|
115
- |BlackmanWindow|**Help wanted**|
115
+ |BlackmanWindow|:heavy_check_mark:|
116
116
  |Cast|:heavy_check_mark:|
117
117
  |Ceil|:heavy_check_mark:|
118
118
  |Celu|:heavy_check_mark:|
@@ -59,7 +59,7 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
59
59
  |Acosh|:heavy_check_mark:|
60
60
  |Acos|:heavy_check_mark:|
61
61
  |Add|:heavy_check_mark:|
62
- |AffineGrid|**Help wanted**|
62
+ |AffineGrid|:heavy_check_mark:|
63
63
  |And|:heavy_check_mark:|
64
64
  |ArgMax|:heavy_check_mark:|
65
65
  |ArgMin|:heavy_check_mark:|
@@ -67,7 +67,7 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
67
67
  |Asin|:heavy_check_mark:|
68
68
  |Atanh|:heavy_check_mark:|
69
69
  |Atan|:heavy_check_mark:|
70
- |Attention|**Help wanted**|
70
+ |Attention|:heavy_check_mark:|
71
71
  |AveragePool|:heavy_check_mark:|
72
72
  |BatchNormalization|:heavy_check_mark:|
73
73
  |Bernoulli|:heavy_check_mark:|
@@ -76,7 +76,7 @@ https://github.com/PINTO0309/onnx2tf/wiki/model_status
76
76
  |BitwiseNot|:heavy_check_mark:|
77
77
  |BitwiseOr|:heavy_check_mark:|
78
78
  |BitwiseXor|:heavy_check_mark:|
79
- |BlackmanWindow|**Help wanted**|
79
+ |BlackmanWindow|:heavy_check_mark:|
80
80
  |Cast|:heavy_check_mark:|
81
81
  |Ceil|:heavy_check_mark:|
82
82
  |Celu|:heavy_check_mark:|
@@ -1,3 +1,3 @@
1
1
  from onnx2tf.onnx2tf import convert, main
2
2
 
3
- __version__ = '1.29.5'
3
+ __version__ = '1.29.6'
@@ -0,0 +1,187 @@
1
+ import random
2
+ random.seed(0)
3
+ import numpy as np
4
+ np.random.seed(0)
5
+ import tensorflow as tf
6
+ import onnx_graphsurgeon as gs
7
+ from onnx2tf.utils.common_functions import (
8
+ replace_parameter,
9
+ get_constant_or_variable,
10
+ print_node_info,
11
+ inverted_operation_enable_disable,
12
+ make_tf_node_info,
13
+ get_replacement_parameter,
14
+ pre_process_transpose,
15
+ post_process_transpose,
16
+ )
17
+ from typing import Any
18
+
19
+
20
+ def _make_coords(
21
+ size_dim: Any,
22
+ align_corners: bool,
23
+ dtype: Any,
24
+ ) -> Any:
25
+ size_dim = tf.cast(size_dim, tf.int32)
26
+ size_f = tf.cast(size_dim, dtype)
27
+
28
+ if align_corners:
29
+ denom = size_f - tf.constant(1.0, dtype=dtype)
30
+ step = tf.where(
31
+ condition=size_dim > 1,
32
+ x=tf.constant(2.0, dtype=dtype) / denom,
33
+ y=tf.constant(0.0, dtype=dtype),
34
+ )
35
+ start = tf.constant(-1.0, dtype=dtype)
36
+ else:
37
+ step = tf.constant(2.0, dtype=dtype) / size_f
38
+ start = tf.constant(-1.0, dtype=dtype) + step / tf.constant(2.0, dtype=dtype)
39
+
40
+ return start + tf.range(size_dim, dtype=dtype) * step
41
+
42
+
43
+ @print_node_info
44
+ @inverted_operation_enable_disable
45
+ @get_replacement_parameter
46
+ def make_node(
47
+ *,
48
+ graph_node: gs.Node,
49
+ tf_layers_dict: dict,
50
+ **kwargs: dict,
51
+ ):
52
+ """AffineGrid
53
+
54
+ Parameters
55
+ ----------
56
+ graph_node: gs.Node
57
+ graph_surgeon Node
58
+
59
+ tf_layers_dict: dict
60
+ optype, shape, dtype, tensorflow graph
61
+ """
62
+ before_op_output_shape_trans_1 = \
63
+ tf_layers_dict.get(graph_node.inputs[0].name, {}).get('before_op_output_shape_trans', True)
64
+ before_op_output_shape_trans_2 = \
65
+ tf_layers_dict.get(graph_node.inputs[1].name, {}).get('before_op_output_shape_trans', True)
66
+ before_op_output_shape_trans = \
67
+ before_op_output_shape_trans_1 \
68
+ and before_op_output_shape_trans_2
69
+
70
+ graph_node_input_theta = get_constant_or_variable(
71
+ graph_node.inputs[0],
72
+ before_op_output_shape_trans,
73
+ )
74
+ graph_node_input_size = get_constant_or_variable(
75
+ graph_node.inputs[1],
76
+ False \
77
+ if hasattr(graph_node.inputs[1], 'values') \
78
+ and isinstance(graph_node.inputs[1].values, np.ndarray) \
79
+ else before_op_output_shape_trans,
80
+ )
81
+
82
+ graph_node_output: gs.Variable = graph_node.outputs[0]
83
+ shape = graph_node_output.shape
84
+ dtype = graph_node_output.dtype
85
+
86
+ # Preserving Graph Structure (Dict)
87
+ tf_layers_dict[graph_node_output.name] = {
88
+ 'optype': graph_node.op,
89
+ 'shape': shape,
90
+ 'dtype': dtype,
91
+ 'nhwc': True,
92
+ }
93
+
94
+ theta = tf_layers_dict[graph_node_input_theta.name]['tf_node'] \
95
+ if isinstance(graph_node_input_theta, gs.Variable) else graph_node_input_theta
96
+ size = tf_layers_dict[graph_node_input_size.name]['tf_node'] \
97
+ if isinstance(graph_node_input_size, gs.Variable) else graph_node_input_size
98
+
99
+ # Pre-process transpose
100
+ theta = pre_process_transpose(
101
+ value_before_transpose=theta,
102
+ param_target='inputs',
103
+ param_name=graph_node.inputs[0].name,
104
+ **kwargs,
105
+ )
106
+
107
+ align_corners = bool(graph_node.attrs.get('align_corners', 0))
108
+ align_corners = replace_parameter(
109
+ value_before_replacement=align_corners,
110
+ param_target='attributes',
111
+ param_name='align_corners',
112
+ **kwargs,
113
+ )
114
+
115
+ theta_dtype = theta.dtype
116
+ size_tensor = tf.cast(size, tf.int32)
117
+
118
+ size_rank = size_tensor.shape[0] if size_tensor.shape.rank == 1 else None
119
+
120
+ def _build_grid_2d(size_vec):
121
+ N, _, H, W = tf.unstack(size_vec)
122
+ h_coords = _make_coords(H, align_corners, theta_dtype)
123
+ w_coords = _make_coords(W, align_corners, theta_dtype)
124
+ grid_h, grid_w = tf.meshgrid(h_coords, w_coords, indexing='ij')
125
+ ones = tf.ones_like(grid_w, dtype=theta_dtype)
126
+ grid = tf.stack([grid_w, grid_h, ones], axis=-1)
127
+ grid_flat = tf.reshape(grid, shape=[-1, 3])
128
+ grid_flat_t = tf.transpose(grid_flat)
129
+ grid_flat_t = tf.cast(grid_flat_t, theta_dtype)
130
+ out = tf.matmul(theta, grid_flat_t)
131
+ out = tf.transpose(out, perm=[0, 2, 1])
132
+ out = tf.reshape(out, shape=tf.stack([N, H, W, 2]))
133
+ return out
134
+
135
+ def _build_grid_3d(size_vec):
136
+ N, _, D, H, W = tf.unstack(size_vec)
137
+ d_coords = _make_coords(D, align_corners, theta_dtype)
138
+ h_coords = _make_coords(H, align_corners, theta_dtype)
139
+ w_coords = _make_coords(W, align_corners, theta_dtype)
140
+ grid_d, grid_h, grid_w = tf.meshgrid(d_coords, h_coords, w_coords, indexing='ij')
141
+ ones = tf.ones_like(grid_w, dtype=theta_dtype)
142
+ grid = tf.stack([grid_w, grid_h, grid_d, ones], axis=-1)
143
+ grid_flat = tf.reshape(grid, shape=[-1, 4])
144
+ grid_flat_t = tf.transpose(grid_flat)
145
+ grid_flat_t = tf.cast(grid_flat_t, theta_dtype)
146
+ out = tf.matmul(theta, grid_flat_t)
147
+ out = tf.transpose(out, perm=[0, 2, 1])
148
+ out = tf.reshape(out, shape=tf.stack([N, D, H, W, 3]))
149
+ return out
150
+
151
+ if size_rank == 4:
152
+ grid = _build_grid_2d(size_tensor)
153
+ elif size_rank == 5:
154
+ grid = _build_grid_3d(size_tensor)
155
+ else:
156
+ size_dim = tf.shape(size_tensor)[0]
157
+ grid = tf.cond(
158
+ pred=tf.equal(size_dim, 4),
159
+ true_fn=lambda: _build_grid_2d(size_tensor),
160
+ false_fn=lambda: _build_grid_3d(size_tensor),
161
+ )
162
+
163
+ tf_layers_dict[graph_node_output.name]['tf_node'] = grid
164
+
165
+ # Post-process transpose
166
+ tf_layers_dict[graph_node_output.name]['tf_node'] = post_process_transpose(
167
+ value_before_transpose=tf_layers_dict[graph_node_output.name]['tf_node'],
168
+ param_target='outputs',
169
+ param_name=graph_node.outputs[0].name,
170
+ **kwargs,
171
+ )
172
+
173
+ # Generation of Debug Info
174
+ tf_layers_dict[graph_node_output.name]['tf_node_info'] = \
175
+ make_tf_node_info(
176
+ node_info={
177
+ 'tf_op_type': 'AffineGrid',
178
+ 'tf_inputs': {
179
+ 'theta': theta,
180
+ 'size': size,
181
+ 'align_corners': align_corners,
182
+ },
183
+ 'tf_outputs': {
184
+ 'output': tf_layers_dict[graph_node_output.name]['tf_node'],
185
+ },
186
+ }
187
+ )