onnx 1.13.0__cp311-cp311-macosx_10_12_universal2.whl → 1.14.0__cp311-cp311-macosx_10_12_universal2.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of onnx might be problematic. Click here for more details.

Files changed (1057) hide show
  1. onnx/__init__.py +116 -70
  2. onnx/backend/__init__.py +2 -0
  3. onnx/backend/base.py +3 -0
  4. onnx/backend/sample/__init__.py +2 -0
  5. onnx/backend/sample/ops/__init__.py +8 -6
  6. onnx/backend/sample/ops/abs.py +1 -1
  7. onnx/backend/test/__init__.py +4 -1
  8. onnx/backend/test/case/__init__.py +4 -2
  9. onnx/backend/test/case/base.py +2 -0
  10. onnx/backend/test/case/model/__init__.py +8 -9
  11. onnx/backend/test/case/model/expand.py +4 -3
  12. onnx/backend/test/case/model/gradient.py +4 -3
  13. onnx/backend/test/case/model/sequence.py +4 -3
  14. onnx/backend/test/case/model/shrink.py +4 -4
  15. onnx/backend/test/case/model/sign.py +4 -3
  16. onnx/backend/test/case/model/single-relu.py +4 -4
  17. onnx/backend/test/case/model/stringnormalizer.py +4 -3
  18. onnx/backend/test/case/node/__init__.py +18 -12
  19. onnx/backend/test/case/node/abs.py +4 -3
  20. onnx/backend/test/case/node/acos.py +4 -3
  21. onnx/backend/test/case/node/acosh.py +4 -3
  22. onnx/backend/test/case/node/adagrad.py +4 -3
  23. onnx/backend/test/case/node/adam.py +4 -3
  24. onnx/backend/test/case/node/add.py +4 -3
  25. onnx/backend/test/case/node/ai_onnx_ml/__init__.py +0 -0
  26. onnx/backend/test/case/node/ai_onnx_ml/array_feature_extractor.py +30 -0
  27. onnx/backend/test/case/node/ai_onnx_ml/binarizer.py +27 -0
  28. onnx/backend/test/case/node/and.py +4 -3
  29. onnx/backend/test/case/node/argmax.py +6 -7
  30. onnx/backend/test/case/node/argmin.py +6 -7
  31. onnx/backend/test/case/node/asin.py +4 -3
  32. onnx/backend/test/case/node/asinh.py +4 -3
  33. onnx/backend/test/case/node/atan.py +4 -3
  34. onnx/backend/test/case/node/atanh.py +4 -3
  35. onnx/backend/test/case/node/averagepool.py +43 -4
  36. onnx/backend/test/case/node/batchnorm.py +4 -3
  37. onnx/backend/test/case/node/bernoulli.py +8 -7
  38. onnx/backend/test/case/node/bitshift.py +4 -3
  39. onnx/backend/test/case/node/bitwiseand.py +13 -11
  40. onnx/backend/test/case/node/bitwisenot.py +8 -6
  41. onnx/backend/test/case/node/bitwiseor.py +13 -11
  42. onnx/backend/test/case/node/bitwisexor.py +13 -11
  43. onnx/backend/test/case/node/blackmanwindow.py +4 -4
  44. onnx/backend/test/case/node/cast.py +218 -8
  45. onnx/backend/test/case/node/castlike.py +106 -12
  46. onnx/backend/test/case/node/ceil.py +4 -3
  47. onnx/backend/test/case/node/celu.py +4 -3
  48. onnx/backend/test/case/node/center_crop_pad.py +26 -3
  49. onnx/backend/test/case/node/clip.py +4 -3
  50. onnx/backend/test/case/node/col2im.py +5 -4
  51. onnx/backend/test/case/node/compress.py +4 -3
  52. onnx/backend/test/case/node/concat.py +4 -3
  53. onnx/backend/test/case/node/constant.py +4 -3
  54. onnx/backend/test/case/node/constantofshape.py +4 -3
  55. onnx/backend/test/case/node/conv.py +4 -6
  56. onnx/backend/test/case/node/convinteger.py +4 -5
  57. onnx/backend/test/case/node/convtranspose.py +4 -3
  58. onnx/backend/test/case/node/cos.py +4 -3
  59. onnx/backend/test/case/node/cosh.py +4 -3
  60. onnx/backend/test/case/node/cumsum.py +4 -3
  61. onnx/backend/test/case/node/deformconv.py +170 -0
  62. onnx/backend/test/case/node/depthtospace.py +4 -3
  63. onnx/backend/test/case/node/dequantizelinear.py +46 -3
  64. onnx/backend/test/case/node/det.py +4 -3
  65. onnx/backend/test/case/node/dft.py +4 -4
  66. onnx/backend/test/case/node/div.py +4 -3
  67. onnx/backend/test/case/node/dropout.py +4 -4
  68. onnx/backend/test/case/node/dynamicquantizelinear.py +4 -3
  69. onnx/backend/test/case/node/einsum.py +4 -4
  70. onnx/backend/test/case/node/elu.py +4 -3
  71. onnx/backend/test/case/node/equal.py +28 -3
  72. onnx/backend/test/case/node/erf.py +4 -3
  73. onnx/backend/test/case/node/exp.py +4 -3
  74. onnx/backend/test/case/node/expand.py +4 -3
  75. onnx/backend/test/case/node/eyelike.py +4 -3
  76. onnx/backend/test/case/node/flatten.py +4 -3
  77. onnx/backend/test/case/node/floor.py +4 -3
  78. onnx/backend/test/case/node/gather.py +4 -3
  79. onnx/backend/test/case/node/gatherelements.py +4 -3
  80. onnx/backend/test/case/node/gathernd.py +5 -4
  81. onnx/backend/test/case/node/gemm.py +4 -3
  82. onnx/backend/test/case/node/globalaveragepool.py +4 -4
  83. onnx/backend/test/case/node/globalmaxpool.py +4 -5
  84. onnx/backend/test/case/node/greater.py +4 -3
  85. onnx/backend/test/case/node/greater_equal.py +4 -3
  86. onnx/backend/test/case/node/gridsample.py +4 -3
  87. onnx/backend/test/case/node/groupnormalization.py +5 -4
  88. onnx/backend/test/case/node/gru.py +10 -9
  89. onnx/backend/test/case/node/hammingwindow.py +4 -4
  90. onnx/backend/test/case/node/hannwindow.py +4 -4
  91. onnx/backend/test/case/node/hardmax.py +4 -3
  92. onnx/backend/test/case/node/hardsigmoid.py +4 -3
  93. onnx/backend/test/case/node/hardswish.py +4 -3
  94. onnx/backend/test/case/node/identity.py +4 -3
  95. onnx/backend/test/case/node/if.py +4 -3
  96. onnx/backend/test/case/node/instancenorm.py +4 -3
  97. onnx/backend/test/case/node/isinf.py +4 -3
  98. onnx/backend/test/case/node/isnan.py +4 -3
  99. onnx/backend/test/case/node/layernormalization.py +4 -3
  100. onnx/backend/test/case/node/leakyrelu.py +4 -3
  101. onnx/backend/test/case/node/less.py +4 -3
  102. onnx/backend/test/case/node/less_equal.py +4 -3
  103. onnx/backend/test/case/node/log.py +4 -3
  104. onnx/backend/test/case/node/logsoftmax.py +4 -3
  105. onnx/backend/test/case/node/loop.py +4 -3
  106. onnx/backend/test/case/node/lppool.py +279 -0
  107. onnx/backend/test/case/node/lrn.py +4 -3
  108. onnx/backend/test/case/node/lstm.py +10 -9
  109. onnx/backend/test/case/node/matmul.py +4 -3
  110. onnx/backend/test/case/node/matmulinteger.py +4 -3
  111. onnx/backend/test/case/node/max.py +5 -4
  112. onnx/backend/test/case/node/maxpool.py +9 -4
  113. onnx/backend/test/case/node/maxunpool.py +4 -3
  114. onnx/backend/test/case/node/mean.py +4 -3
  115. onnx/backend/test/case/node/meanvariancenormalization.py +4 -3
  116. onnx/backend/test/case/node/melweightmatrix.py +4 -4
  117. onnx/backend/test/case/node/min.py +5 -4
  118. onnx/backend/test/case/node/mish.py +4 -3
  119. onnx/backend/test/case/node/mod.py +4 -3
  120. onnx/backend/test/case/node/momentum.py +4 -3
  121. onnx/backend/test/case/node/mul.py +4 -3
  122. onnx/backend/test/case/node/neg.py +4 -3
  123. onnx/backend/test/case/node/negativeloglikelihoodloss.py +4 -3
  124. onnx/backend/test/case/node/nonmaxsuppression.py +4 -3
  125. onnx/backend/test/case/node/nonzero.py +4 -3
  126. onnx/backend/test/case/node/not.py +4 -3
  127. onnx/backend/test/case/node/onehot.py +5 -4
  128. onnx/backend/test/case/node/optionalgetelement.py +4 -3
  129. onnx/backend/test/case/node/optionalhaselement.py +4 -3
  130. onnx/backend/test/case/node/or.py +4 -3
  131. onnx/backend/test/case/node/pad.py +36 -5
  132. onnx/backend/test/case/node/pool_op_common.py +20 -2
  133. onnx/backend/test/case/node/pow.py +4 -3
  134. onnx/backend/test/case/node/prelu.py +4 -3
  135. onnx/backend/test/case/node/qlinearconv.py +4 -3
  136. onnx/backend/test/case/node/qlinearmatmul.py +4 -3
  137. onnx/backend/test/case/node/quantizelinear.py +50 -3
  138. onnx/backend/test/case/node/rangeop.py +4 -3
  139. onnx/backend/test/case/node/reciprocal.py +4 -3
  140. onnx/backend/test/case/node/reduce_log_sum.py +4 -3
  141. onnx/backend/test/case/node/reduce_log_sum_exp.py +4 -3
  142. onnx/backend/test/case/node/reducel1.py +4 -3
  143. onnx/backend/test/case/node/reducel2.py +4 -3
  144. onnx/backend/test/case/node/reducemax.py +4 -3
  145. onnx/backend/test/case/node/reducemean.py +4 -3
  146. onnx/backend/test/case/node/reducemin.py +4 -3
  147. onnx/backend/test/case/node/reduceprod.py +4 -3
  148. onnx/backend/test/case/node/reducesum.py +4 -3
  149. onnx/backend/test/case/node/reducesumsquare.py +4 -3
  150. onnx/backend/test/case/node/relu.py +4 -3
  151. onnx/backend/test/case/node/reshape.py +4 -3
  152. onnx/backend/test/case/node/resize.py +73 -321
  153. onnx/backend/test/case/node/reversesequence.py +4 -3
  154. onnx/backend/test/case/node/rnn.py +10 -9
  155. onnx/backend/test/case/node/roialign.py +193 -3
  156. onnx/backend/test/case/node/round.py +4 -3
  157. onnx/backend/test/case/node/scan.py +4 -3
  158. onnx/backend/test/case/node/scatter.py +4 -3
  159. onnx/backend/test/case/node/scatterelements.py +4 -3
  160. onnx/backend/test/case/node/scatternd.py +4 -4
  161. onnx/backend/test/case/node/selu.py +4 -3
  162. onnx/backend/test/case/node/sequence_map.py +4 -4
  163. onnx/backend/test/case/node/sequenceinsert.py +4 -3
  164. onnx/backend/test/case/node/shape.py +4 -3
  165. onnx/backend/test/case/node/shrink.py +4 -3
  166. onnx/backend/test/case/node/sigmoid.py +4 -3
  167. onnx/backend/test/case/node/sign.py +4 -3
  168. onnx/backend/test/case/node/sin.py +4 -3
  169. onnx/backend/test/case/node/sinh.py +4 -3
  170. onnx/backend/test/case/node/size.py +4 -3
  171. onnx/backend/test/case/node/slice.py +4 -3
  172. onnx/backend/test/case/node/softmax.py +4 -3
  173. onnx/backend/test/case/node/softmaxcrossentropy.py +4 -3
  174. onnx/backend/test/case/node/softplus.py +4 -3
  175. onnx/backend/test/case/node/softsign.py +4 -3
  176. onnx/backend/test/case/node/spacetodepth.py +6 -3
  177. onnx/backend/test/case/node/split.py +4 -3
  178. onnx/backend/test/case/node/splittosequence.py +79 -0
  179. onnx/backend/test/case/node/sqrt.py +4 -3
  180. onnx/backend/test/case/node/squeeze.py +2 -0
  181. onnx/backend/test/case/node/stft.py +4 -4
  182. onnx/backend/test/case/node/stringnormalizer.py +4 -4
  183. onnx/backend/test/case/node/sub.py +4 -3
  184. onnx/backend/test/case/node/sum.py +4 -3
  185. onnx/backend/test/case/node/tan.py +4 -3
  186. onnx/backend/test/case/node/tanh.py +4 -3
  187. onnx/backend/test/case/node/tfidfvectorizer.py +4 -3
  188. onnx/backend/test/case/node/thresholdedrelu.py +4 -3
  189. onnx/backend/test/case/node/tile.py +4 -3
  190. onnx/backend/test/case/node/topk.py +4 -3
  191. onnx/backend/test/case/node/transpose.py +8 -7
  192. onnx/backend/test/case/node/trilu.py +4 -3
  193. onnx/backend/test/case/node/unique.py +4 -3
  194. onnx/backend/test/case/node/unsqueeze.py +4 -3
  195. onnx/backend/test/case/node/upsample.py +4 -3
  196. onnx/backend/test/case/node/where.py +4 -3
  197. onnx/backend/test/case/node/xor.py +4 -3
  198. onnx/backend/test/case/test_case.py +2 -0
  199. onnx/backend/test/case/utils.py +10 -1
  200. onnx/backend/test/cmd_tools.py +22 -13
  201. onnx/backend/test/data/light/README.md +16 -0
  202. onnx/backend/test/data/light/light_bvlc_alexnet.onnx +0 -0
  203. onnx/backend/test/data/light/light_bvlc_alexnet_output_0.pb +1 -0
  204. onnx/backend/test/data/light/light_densenet121.onnx +0 -0
  205. onnx/backend/test/data/light/light_densenet121_output_0.pb +1 -0
  206. onnx/backend/test/data/light/light_inception_v1.onnx +0 -0
  207. onnx/backend/test/data/light/light_inception_v1_output_0.pb +1 -0
  208. onnx/backend/test/data/light/light_inception_v2.onnx +0 -0
  209. onnx/backend/test/data/light/light_inception_v2_output_0.pb +1 -0
  210. onnx/backend/test/data/light/light_resnet50.onnx +0 -0
  211. onnx/backend/test/data/light/light_resnet50_output_0.pb +1 -0
  212. onnx/backend/test/data/light/light_shufflenet.onnx +0 -0
  213. onnx/backend/test/data/light/light_shufflenet_output_0.pb +1 -0
  214. onnx/backend/test/data/light/light_squeezenet.onnx +0 -0
  215. onnx/backend/test/data/light/light_squeezenet_output_0.pb +1 -0
  216. onnx/backend/test/data/light/light_vgg19.onnx +0 -0
  217. onnx/backend/test/data/light/light_vgg19_output_0.pb +1 -0
  218. onnx/backend/test/data/light/light_zfnet512.onnx +0 -0
  219. onnx/backend/test/data/light/light_zfnet512_output_0.pb +1 -0
  220. onnx/backend/test/data/node/test_acos/test_data_set_0/output_0.pb +0 -0
  221. onnx/backend/test/data/node/test_acosh/test_data_set_0/output_0.pb +1 -1
  222. onnx/backend/test/data/node/test_ai_onnx_ml_array_feature_extractor/model.onnx +19 -0
  223. onnx/backend/test/data/node/test_ai_onnx_ml_array_feature_extractor/test_data_set_0/input_0.pb +0 -0
  224. onnx/backend/test/data/node/test_ai_onnx_ml_array_feature_extractor/test_data_set_0/input_1.pb +0 -0
  225. onnx/backend/test/data/node/test_ai_onnx_ml_array_feature_extractor/test_data_set_0/output_0.pb +0 -0
  226. onnx/backend/test/data/node/test_ai_onnx_ml_binarizer/model.onnx +0 -0
  227. onnx/backend/test/data/node/test_ai_onnx_ml_binarizer/test_data_set_0/input_0.pb +1 -0
  228. onnx/backend/test/data/node/test_ai_onnx_ml_binarizer/test_data_set_0/output_0.pb +0 -0
  229. onnx/backend/test/data/node/test_asin/test_data_set_0/output_0.pb +1 -1
  230. onnx/backend/test/data/node/test_asinh/test_data_set_0/output_0.pb +1 -1
  231. onnx/backend/test/data/node/test_atan/test_data_set_0/output_0.pb +1 -1
  232. onnx/backend/test/data/node/test_atanh/test_data_set_0/output_0.pb +2 -2
  233. onnx/backend/test/data/node/test_averagepool_1d_default/model.onnx +0 -0
  234. onnx/backend/test/data/node/test_averagepool_2d_ceil/model.onnx +0 -0
  235. onnx/backend/test/data/node/test_averagepool_2d_default/model.onnx +0 -0
  236. onnx/backend/test/data/node/test_averagepool_2d_dilations/model.onnx +0 -0
  237. onnx/backend/test/data/node/test_averagepool_2d_dilations/test_data_set_0/input_0.pb +0 -0
  238. onnx/backend/test/data/node/test_averagepool_2d_dilations/test_data_set_0/output_0.pb +0 -0
  239. onnx/backend/test/data/node/test_averagepool_2d_pads/model.onnx +0 -0
  240. onnx/backend/test/data/node/test_averagepool_2d_pads_count_include_pad/model.onnx +0 -0
  241. onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads/model.onnx +0 -0
  242. onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/model.onnx +0 -0
  243. onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/model.onnx +0 -0
  244. onnx/backend/test/data/node/test_averagepool_2d_precomputed_strides/model.onnx +0 -0
  245. onnx/backend/test/data/node/test_averagepool_2d_same_lower/model.onnx +0 -0
  246. onnx/backend/test/data/node/test_averagepool_2d_same_upper/model.onnx +0 -0
  247. onnx/backend/test/data/node/test_averagepool_2d_strides/model.onnx +0 -0
  248. onnx/backend/test/data/node/test_averagepool_3d_default/model.onnx +0 -0
  249. onnx/backend/test/data/node/test_basic_deform_conv_with_padding/model.onnx +0 -0
  250. onnx/backend/test/data/node/test_basic_deform_conv_with_padding/test_data_set_0/input_0.pb +0 -0
  251. onnx/backend/test/data/node/test_basic_deform_conv_with_padding/test_data_set_0/input_1.pb +0 -0
  252. onnx/backend/test/data/node/test_basic_deform_conv_with_padding/test_data_set_0/input_2.pb +0 -0
  253. onnx/backend/test/data/node/test_basic_deform_conv_with_padding/test_data_set_0/output_0.pb +0 -0
  254. onnx/backend/test/data/node/test_basic_deform_conv_without_padding/model.onnx +0 -0
  255. onnx/backend/test/data/node/test_basic_deform_conv_without_padding/test_data_set_0/input_0.pb +0 -0
  256. onnx/backend/test/data/node/test_basic_deform_conv_without_padding/test_data_set_0/input_1.pb +0 -0
  257. onnx/backend/test/data/node/test_basic_deform_conv_without_padding/test_data_set_0/input_2.pb +0 -0
  258. onnx/backend/test/data/node/test_basic_deform_conv_without_padding/test_data_set_0/output_0.pb +0 -0
  259. onnx/backend/test/data/node/test_bitwise_and_i16_3d/test_data_set_0/input_0.pb +0 -0
  260. onnx/backend/test/data/node/test_bitwise_and_i16_3d/test_data_set_0/input_1.pb +0 -0
  261. onnx/backend/test/data/node/test_bitwise_and_i16_3d/test_data_set_0/output_0.pb +0 -0
  262. onnx/backend/test/data/node/test_bitwise_and_i32_2d/test_data_set_0/input_0.pb +0 -0
  263. onnx/backend/test/data/node/test_bitwise_and_i32_2d/test_data_set_0/input_1.pb +0 -0
  264. onnx/backend/test/data/node/test_bitwise_and_i32_2d/test_data_set_0/output_0.pb +0 -0
  265. onnx/backend/test/data/node/test_bitwise_and_ui64_bcast_3v1d/test_data_set_0/input_0.pb +0 -0
  266. onnx/backend/test/data/node/test_bitwise_and_ui64_bcast_3v1d/test_data_set_0/input_1.pb +0 -0
  267. onnx/backend/test/data/node/test_bitwise_and_ui64_bcast_3v1d/test_data_set_0/output_0.pb +0 -0
  268. onnx/backend/test/data/node/test_bitwise_and_ui8_bcast_4v3d/test_data_set_0/input_0.pb +0 -0
  269. onnx/backend/test/data/node/test_bitwise_and_ui8_bcast_4v3d/test_data_set_0/input_1.pb +0 -0
  270. onnx/backend/test/data/node/test_bitwise_and_ui8_bcast_4v3d/test_data_set_0/output_0.pb +0 -0
  271. onnx/backend/test/data/node/test_bitwise_not_2d/test_data_set_0/input_0.pb +0 -0
  272. onnx/backend/test/data/node/test_bitwise_not_2d/test_data_set_0/output_0.pb +0 -0
  273. onnx/backend/test/data/node/test_bitwise_not_3d/test_data_set_0/input_0.pb +0 -0
  274. onnx/backend/test/data/node/test_bitwise_not_3d/test_data_set_0/output_0.pb +0 -0
  275. onnx/backend/test/data/node/test_bitwise_not_4d/test_data_set_0/input_0.pb +0 -0
  276. onnx/backend/test/data/node/test_bitwise_not_4d/test_data_set_0/output_0.pb +0 -0
  277. onnx/backend/test/data/node/test_bitwise_or_i16_4d/test_data_set_0/input_0.pb +0 -0
  278. onnx/backend/test/data/node/test_bitwise_or_i16_4d/test_data_set_0/input_1.pb +0 -0
  279. onnx/backend/test/data/node/test_bitwise_or_i16_4d/test_data_set_0/output_0.pb +0 -0
  280. onnx/backend/test/data/node/test_bitwise_or_i32_2d/test_data_set_0/input_0.pb +0 -0
  281. onnx/backend/test/data/node/test_bitwise_or_i32_2d/test_data_set_0/input_1.pb +0 -0
  282. onnx/backend/test/data/node/test_bitwise_or_i32_2d/test_data_set_0/output_0.pb +0 -0
  283. onnx/backend/test/data/node/test_bitwise_or_ui64_bcast_3v1d/test_data_set_0/input_0.pb +0 -0
  284. onnx/backend/test/data/node/test_bitwise_or_ui64_bcast_3v1d/test_data_set_0/input_1.pb +0 -0
  285. onnx/backend/test/data/node/test_bitwise_or_ui64_bcast_3v1d/test_data_set_0/output_0.pb +0 -0
  286. onnx/backend/test/data/node/test_bitwise_or_ui8_bcast_4v3d/test_data_set_0/input_0.pb +0 -0
  287. onnx/backend/test/data/node/test_bitwise_or_ui8_bcast_4v3d/test_data_set_0/input_1.pb +0 -0
  288. onnx/backend/test/data/node/test_bitwise_or_ui8_bcast_4v3d/test_data_set_0/output_0.pb +0 -0
  289. onnx/backend/test/data/node/test_bitwise_xor_i16_3d/test_data_set_0/input_0.pb +0 -0
  290. onnx/backend/test/data/node/test_bitwise_xor_i16_3d/test_data_set_0/input_1.pb +0 -0
  291. onnx/backend/test/data/node/test_bitwise_xor_i16_3d/test_data_set_0/output_0.pb +0 -0
  292. onnx/backend/test/data/node/test_bitwise_xor_i32_2d/test_data_set_0/input_0.pb +0 -0
  293. onnx/backend/test/data/node/test_bitwise_xor_i32_2d/test_data_set_0/input_1.pb +0 -0
  294. onnx/backend/test/data/node/test_bitwise_xor_i32_2d/test_data_set_0/output_0.pb +0 -0
  295. onnx/backend/test/data/node/test_bitwise_xor_ui64_bcast_3v1d/test_data_set_0/input_0.pb +0 -0
  296. onnx/backend/test/data/node/test_bitwise_xor_ui64_bcast_3v1d/test_data_set_0/input_1.pb +0 -0
  297. onnx/backend/test/data/node/test_bitwise_xor_ui64_bcast_3v1d/test_data_set_0/output_0.pb +0 -0
  298. onnx/backend/test/data/node/test_bitwise_xor_ui8_bcast_4v3d/test_data_set_0/input_0.pb +0 -0
  299. onnx/backend/test/data/node/test_bitwise_xor_ui8_bcast_4v3d/test_data_set_0/input_1.pb +0 -0
  300. onnx/backend/test/data/node/test_bitwise_xor_ui8_bcast_4v3d/test_data_set_0/output_0.pb +0 -0
  301. onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/model.onnx +0 -0
  302. onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/model.onnx +0 -0
  303. onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/model.onnx +0 -0
  304. onnx/backend/test/data/node/test_cast_FLOAT16_to_DOUBLE/model.onnx +0 -0
  305. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT/model.onnx +0 -0
  306. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FN/model.onnx +0 -0
  307. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FN/test_data_set_0/input_0.pb +2 -0
  308. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FN/test_data_set_0/output_0.pb +0 -0
  309. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  310. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FNUZ/test_data_set_0/input_0.pb +2 -0
  311. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FNUZ/test_data_set_0/output_0.pb +0 -0
  312. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2/model.onnx +0 -0
  313. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2/test_data_set_0/input_0.pb +2 -0
  314. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2/test_data_set_0/output_0.pb +0 -0
  315. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  316. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2FNUZ/test_data_set_0/input_0.pb +2 -0
  317. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2FNUZ/test_data_set_0/output_0.pb +0 -0
  318. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT/model.onnx +0 -0
  319. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT/test_data_set_0/input_0.pb +0 -0
  320. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT/test_data_set_0/output_0.pb +0 -0
  321. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT16/model.onnx +0 -0
  322. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT16/test_data_set_0/input_0.pb +0 -0
  323. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
  324. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT/model.onnx +0 -0
  325. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT/test_data_set_0/input_0.pb +0 -0
  326. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT/test_data_set_0/output_0.pb +0 -0
  327. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT16/model.onnx +0 -0
  328. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT16/test_data_set_0/input_0.pb +0 -0
  329. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
  330. onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT/model.onnx +0 -0
  331. onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT/test_data_set_0/input_0.pb +0 -0
  332. onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT/test_data_set_0/output_0.pb +0 -0
  333. onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT16/model.onnx +0 -0
  334. onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT16/test_data_set_0/input_0.pb +0 -0
  335. onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
  336. onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT/model.onnx +0 -0
  337. onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT/test_data_set_0/input_0.pb +0 -0
  338. onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT/test_data_set_0/output_0.pb +0 -0
  339. onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT16/model.onnx +0 -0
  340. onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT16/test_data_set_0/input_0.pb +0 -0
  341. onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
  342. onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/model.onnx +0 -0
  343. onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/model.onnx +0 -0
  344. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/model.onnx +0 -0
  345. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
  346. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/input_0.pb +0 -0
  347. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/output_0.pb +0 -0
  348. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  349. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/input_0.pb +0 -0
  350. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/output_0.pb +0 -0
  351. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
  352. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2/test_data_set_0/input_0.pb +0 -0
  353. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2/test_data_set_0/output_0.pb +0 -0
  354. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  355. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/input_0.pb +0 -0
  356. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/output_0.pb +0 -0
  357. onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/model.onnx +0 -0
  358. onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/model.onnx +0 -0
  359. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FN/model.onnx +0 -0
  360. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FN/test_data_set_0/input_0.pb +2 -0
  361. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FN/test_data_set_0/output_0.pb +0 -0
  362. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  363. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FNUZ/test_data_set_0/input_0.pb +2 -0
  364. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FNUZ/test_data_set_0/output_0.pb +0 -0
  365. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2/model.onnx +0 -0
  366. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2/test_data_set_0/input_0.pb +2 -0
  367. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2/test_data_set_0/output_0.pb +0 -0
  368. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  369. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2FNUZ/test_data_set_0/input_0.pb +2 -0
  370. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2FNUZ/test_data_set_0/output_0.pb +0 -0
  371. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
  372. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/input_0.pb +0 -0
  373. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/output_0.pb +0 -0
  374. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  375. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/input_0.pb +0 -0
  376. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/output_0.pb +0 -0
  377. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
  378. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2/test_data_set_0/input_0.pb +0 -0
  379. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2/test_data_set_0/output_0.pb +0 -0
  380. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  381. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/input_0.pb +0 -0
  382. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/output_0.pb +0 -0
  383. onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/model.onnx +0 -0
  384. onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/model.onnx +0 -0
  385. onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/model.onnx +0 -0
  386. onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/model.onnx +0 -0
  387. onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16_expanded/model.onnx +0 -0
  388. onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/model.onnx +0 -0
  389. onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/model.onnx +0 -0
  390. onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/model.onnx +0 -0
  391. onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT/model.onnx +0 -0
  392. onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT_expanded/model.onnx +0 -0
  393. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT/model.onnx +0 -0
  394. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT/test_data_set_0/input_0.pb +1 -0
  395. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT/test_data_set_0/input_1.pb +0 -0
  396. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT/test_data_set_0/output_0.pb +0 -0
  397. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_expanded/model.onnx +0 -0
  398. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_expanded/test_data_set_0/input_0.pb +1 -0
  399. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_expanded/test_data_set_0/input_1.pb +0 -0
  400. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_expanded/test_data_set_0/output_0.pb +0 -0
  401. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT/model.onnx +0 -0
  402. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT/test_data_set_0/input_0.pb +1 -0
  403. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT/test_data_set_0/input_1.pb +0 -0
  404. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT/test_data_set_0/output_0.pb +0 -0
  405. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT_expanded/model.onnx +0 -0
  406. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT_expanded/test_data_set_0/input_0.pb +1 -0
  407. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT_expanded/test_data_set_0/input_1.pb +0 -0
  408. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT_expanded/test_data_set_0/output_0.pb +0 -0
  409. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT/model.onnx +0 -0
  410. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT/test_data_set_0/input_0.pb +1 -0
  411. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT/test_data_set_0/input_1.pb +0 -0
  412. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT/test_data_set_0/output_0.pb +0 -0
  413. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_expanded/model.onnx +0 -0
  414. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_expanded/test_data_set_0/input_0.pb +1 -0
  415. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_expanded/test_data_set_0/input_1.pb +0 -0
  416. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_expanded/test_data_set_0/output_0.pb +0 -0
  417. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT/model.onnx +0 -0
  418. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT/test_data_set_0/input_0.pb +1 -0
  419. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT/test_data_set_0/input_1.pb +0 -0
  420. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT/test_data_set_0/output_0.pb +0 -0
  421. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT_expanded/model.onnx +0 -0
  422. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT_expanded/test_data_set_0/input_0.pb +1 -0
  423. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT_expanded/test_data_set_0/input_1.pb +0 -0
  424. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT_expanded/test_data_set_0/output_0.pb +0 -0
  425. onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/model.onnx +0 -0
  426. onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/model.onnx +0 -0
  427. onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/model.onnx +0 -0
  428. onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/model.onnx +0 -0
  429. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/model.onnx +0 -0
  430. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/model.onnx +0 -0
  431. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
  432. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/input_0.pb +0 -0
  433. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/input_1.pb +1 -0
  434. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN/test_data_set_0/output_0.pb +1 -0
  435. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  436. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/input_0.pb +0 -0
  437. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/input_1.pb +1 -0
  438. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ/test_data_set_0/output_0.pb +1 -0
  439. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_expanded/model.onnx +0 -0
  440. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_expanded/test_data_set_0/input_0.pb +0 -0
  441. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_expanded/test_data_set_0/input_1.pb +1 -0
  442. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_expanded/test_data_set_0/output_0.pb +1 -0
  443. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN_expanded/model.onnx +0 -0
  444. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN_expanded/test_data_set_0/input_0.pb +0 -0
  445. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN_expanded/test_data_set_0/input_1.pb +1 -0
  446. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN_expanded/test_data_set_0/output_0.pb +1 -0
  447. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
  448. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2/test_data_set_0/input_0.pb +0 -0
  449. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2/test_data_set_0/input_1.pb +1 -0
  450. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2/test_data_set_0/output_0.pb +1 -0
  451. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  452. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/input_0.pb +0 -0
  453. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/input_1.pb +1 -0
  454. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ/test_data_set_0/output_0.pb +1 -0
  455. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_expanded/model.onnx +0 -0
  456. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_expanded/test_data_set_0/input_0.pb +0 -0
  457. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_expanded/test_data_set_0/input_1.pb +1 -0
  458. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_expanded/test_data_set_0/output_0.pb +1 -0
  459. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2_expanded/model.onnx +0 -0
  460. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2_expanded/test_data_set_0/input_0.pb +0 -0
  461. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2_expanded/test_data_set_0/input_1.pb +1 -0
  462. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2_expanded/test_data_set_0/output_0.pb +1 -0
  463. onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/model.onnx +0 -0
  464. onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/model.onnx +0 -0
  465. onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/model.onnx +0 -0
  466. onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/model.onnx +0 -0
  467. onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc/model.onnx +0 -0
  468. onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc/test_data_set_0/input_0.pb +0 -0
  469. onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc/test_data_set_0/input_1.pb +0 -0
  470. onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc/test_data_set_0/output_0.pb +0 -0
  471. onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc_expanded/model.onnx +0 -0
  472. onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc_expanded/test_data_set_0/input_0.pb +0 -0
  473. onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc_expanded/test_data_set_0/input_1.pb +0 -0
  474. onnx/backend/test/data/node/test_center_crop_pad_crop_negative_axes_hwc_expanded/test_data_set_0/output_0.pb +0 -0
  475. onnx/backend/test/data/node/test_col2im_pads/test_data_set_0/output_0.pb +0 -0
  476. onnx/backend/test/data/node/test_constant/model.onnx +0 -0
  477. onnx/backend/test/data/node/test_constant_pad/model.onnx +0 -0
  478. onnx/backend/test/data/node/test_constant_pad_axes/model.onnx +0 -0
  479. onnx/backend/test/data/node/test_constant_pad_negative_axes/model.onnx +0 -0
  480. onnx/backend/test/data/node/test_constant_pad_negative_axes/test_data_set_0/input_0.pb +1 -0
  481. onnx/backend/test/data/node/test_constant_pad_negative_axes/test_data_set_0/input_1.pb +0 -0
  482. onnx/backend/test/data/node/test_constant_pad_negative_axes/test_data_set_0/input_2.pb +1 -0
  483. onnx/backend/test/data/node/test_constant_pad_negative_axes/test_data_set_0/input_3.pb +1 -0
  484. onnx/backend/test/data/node/test_constant_pad_negative_axes/test_data_set_0/output_0.pb +1 -0
  485. onnx/backend/test/data/node/test_cosh/test_data_set_0/output_0.pb +1 -1
  486. onnx/backend/test/data/node/test_cosh_example/test_data_set_0/output_0.pb +0 -0
  487. onnx/backend/test/data/node/test_deform_conv_with_mask_bias/model.onnx +0 -0
  488. onnx/backend/test/data/node/test_deform_conv_with_mask_bias/test_data_set_0/input_0.pb +0 -0
  489. onnx/backend/test/data/node/test_deform_conv_with_mask_bias/test_data_set_0/input_1.pb +0 -0
  490. onnx/backend/test/data/node/test_deform_conv_with_mask_bias/test_data_set_0/input_2.pb +0 -0
  491. onnx/backend/test/data/node/test_deform_conv_with_mask_bias/test_data_set_0/input_3.pb +0 -0
  492. onnx/backend/test/data/node/test_deform_conv_with_mask_bias/test_data_set_0/input_4.pb +0 -0
  493. onnx/backend/test/data/node/test_deform_conv_with_mask_bias/test_data_set_0/output_0.pb +0 -0
  494. onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups/model.onnx +0 -0
  495. onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups/test_data_set_0/input_0.pb +0 -0
  496. onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups/test_data_set_0/input_1.pb +0 -0
  497. onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups/test_data_set_0/input_2.pb +0 -0
  498. onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups/test_data_set_0/output_0.pb +0 -0
  499. onnx/backend/test/data/node/test_dequantizelinear/model.onnx +0 -0
  500. onnx/backend/test/data/node/test_dequantizelinear_axis/model.onnx +0 -0
  501. onnx/backend/test/data/node/test_dequantizelinear_e4m3fn/model.onnx +0 -0
  502. onnx/backend/test/data/node/test_dequantizelinear_e4m3fn/test_data_set_0/input_0.pb +0 -0
  503. onnx/backend/test/data/node/test_dequantizelinear_e4m3fn/test_data_set_0/input_1.pb +0 -0
  504. onnx/backend/test/data/node/test_dequantizelinear_e4m3fn/test_data_set_0/output_0.pb +0 -0
  505. onnx/backend/test/data/node/test_dequantizelinear_e5m2/model.onnx +0 -0
  506. onnx/backend/test/data/node/test_dequantizelinear_e5m2/test_data_set_0/input_0.pb +0 -0
  507. onnx/backend/test/data/node/test_dequantizelinear_e5m2/test_data_set_0/input_1.pb +0 -0
  508. onnx/backend/test/data/node/test_dequantizelinear_e5m2/test_data_set_0/output_0.pb +0 -0
  509. onnx/backend/test/data/node/test_edge_pad/model.onnx +0 -0
  510. onnx/backend/test/data/node/test_equal/model.onnx +0 -0
  511. onnx/backend/test/data/node/test_equal_bcast/model.onnx +0 -0
  512. onnx/backend/test/data/node/test_equal_string/model.onnx +0 -0
  513. onnx/backend/test/data/node/test_equal_string/test_data_set_0/input_0.pb +1 -0
  514. onnx/backend/test/data/node/test_equal_string/test_data_set_0/input_1.pb +1 -0
  515. onnx/backend/test/data/node/test_equal_string/test_data_set_0/output_0.pb +0 -0
  516. onnx/backend/test/data/node/test_equal_string_broadcast/model.onnx +0 -0
  517. onnx/backend/test/data/node/test_equal_string_broadcast/test_data_set_0/input_0.pb +1 -0
  518. onnx/backend/test/data/node/test_equal_string_broadcast/test_data_set_0/input_1.pb +1 -0
  519. onnx/backend/test/data/node/test_equal_string_broadcast/test_data_set_0/output_0.pb +0 -0
  520. onnx/backend/test/data/node/test_identity/model.onnx +0 -0
  521. onnx/backend/test/data/node/test_identity_sequence/model.onnx +0 -0
  522. onnx/backend/test/data/node/test_lppool_1d_default/model.onnx +0 -0
  523. onnx/backend/test/data/node/test_lppool_1d_default/test_data_set_0/input_0.pb +1 -0
  524. onnx/backend/test/data/node/test_lppool_1d_default/test_data_set_0/output_0.pb +2 -0
  525. onnx/backend/test/data/node/test_lppool_2d_default/model.onnx +0 -0
  526. onnx/backend/test/data/node/test_lppool_2d_default/test_data_set_0/input_0.pb +0 -0
  527. onnx/backend/test/data/node/test_lppool_2d_default/test_data_set_0/output_0.pb +0 -0
  528. onnx/backend/test/data/node/test_lppool_2d_dilations/model.onnx +0 -0
  529. onnx/backend/test/data/node/test_lppool_2d_dilations/test_data_set_0/input_0.pb +0 -0
  530. onnx/backend/test/data/node/test_lppool_2d_dilations/test_data_set_0/output_0.pb +1 -0
  531. onnx/backend/test/data/node/test_lppool_2d_pads/model.onnx +0 -0
  532. onnx/backend/test/data/node/test_lppool_2d_pads/test_data_set_0/input_0.pb +0 -0
  533. onnx/backend/test/data/node/test_lppool_2d_pads/test_data_set_0/output_0.pb +0 -0
  534. onnx/backend/test/data/node/test_lppool_2d_same_lower/model.onnx +0 -0
  535. onnx/backend/test/data/node/test_lppool_2d_same_lower/test_data_set_0/input_0.pb +0 -0
  536. onnx/backend/test/data/node/test_lppool_2d_same_lower/test_data_set_0/output_0.pb +0 -0
  537. onnx/backend/test/data/node/test_lppool_2d_same_upper/model.onnx +0 -0
  538. onnx/backend/test/data/node/test_lppool_2d_same_upper/test_data_set_0/input_0.pb +0 -0
  539. onnx/backend/test/data/node/test_lppool_2d_same_upper/test_data_set_0/output_0.pb +0 -0
  540. onnx/backend/test/data/node/test_lppool_2d_strides/model.onnx +0 -0
  541. onnx/backend/test/data/node/test_lppool_2d_strides/test_data_set_0/input_0.pb +0 -0
  542. onnx/backend/test/data/node/test_lppool_2d_strides/test_data_set_0/output_0.pb +0 -0
  543. onnx/backend/test/data/node/test_lppool_3d_default/model.onnx +0 -0
  544. onnx/backend/test/data/node/test_lppool_3d_default/test_data_set_0/input_0.pb +0 -0
  545. onnx/backend/test/data/node/test_lppool_3d_default/test_data_set_0/output_0.pb +0 -0
  546. onnx/backend/test/data/node/test_mish/test_data_set_0/output_0.pb +0 -0
  547. onnx/backend/test/data/node/test_mish_expanded/test_data_set_0/output_0.pb +0 -0
  548. onnx/backend/test/data/node/test_quantizelinear/model.onnx +0 -0
  549. onnx/backend/test/data/node/test_quantizelinear_axis/model.onnx +0 -0
  550. onnx/backend/test/data/node/test_quantizelinear_e4m3fn/model.onnx +0 -0
  551. onnx/backend/test/data/node/test_quantizelinear_e4m3fn/test_data_set_0/input_0.pb +0 -0
  552. onnx/backend/test/data/node/test_quantizelinear_e4m3fn/test_data_set_0/input_1.pb +0 -0
  553. onnx/backend/test/data/node/test_quantizelinear_e4m3fn/test_data_set_0/input_2.pb +0 -0
  554. onnx/backend/test/data/node/test_quantizelinear_e4m3fn/test_data_set_0/output_0.pb +0 -0
  555. onnx/backend/test/data/node/test_quantizelinear_e5m2/model.onnx +0 -0
  556. onnx/backend/test/data/node/test_quantizelinear_e5m2/test_data_set_0/input_0.pb +0 -0
  557. onnx/backend/test/data/node/test_quantizelinear_e5m2/test_data_set_0/input_1.pb +0 -0
  558. onnx/backend/test/data/node/test_quantizelinear_e5m2/test_data_set_0/input_2.pb +0 -0
  559. onnx/backend/test/data/node/test_quantizelinear_e5m2/test_data_set_0/output_0.pb +0 -0
  560. onnx/backend/test/data/node/test_reflect_pad/model.onnx +0 -0
  561. onnx/backend/test/data/node/test_reshape_allowzero_reordered/model.onnx +0 -0
  562. onnx/backend/test/data/node/test_reshape_extended_dims/model.onnx +0 -0
  563. onnx/backend/test/data/node/test_reshape_negative_dim/model.onnx +0 -0
  564. onnx/backend/test/data/node/test_reshape_negative_extended_dims/model.onnx +0 -0
  565. onnx/backend/test/data/node/test_reshape_one_dim/model.onnx +0 -0
  566. onnx/backend/test/data/node/test_reshape_reduced_dims/model.onnx +0 -0
  567. onnx/backend/test/data/node/test_reshape_reordered_all_dims/model.onnx +0 -0
  568. onnx/backend/test/data/node/test_reshape_reordered_last_dims/model.onnx +0 -0
  569. onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/model.onnx +0 -0
  570. onnx/backend/test/data/node/test_reshape_zero_dim/model.onnx +0 -0
  571. onnx/backend/test/data/node/test_resize_downsample_scales_cubic/model.onnx +0 -0
  572. onnx/backend/test/data/node/test_resize_downsample_scales_cubic_A_n0p5_exclude_outside/model.onnx +0 -0
  573. onnx/backend/test/data/node/test_resize_downsample_scales_cubic_align_corners/model.onnx +0 -0
  574. onnx/backend/test/data/node/test_resize_downsample_scales_cubic_antialias/model.onnx +0 -0
  575. onnx/backend/test/data/node/test_resize_downsample_scales_linear/model.onnx +0 -0
  576. onnx/backend/test/data/node/test_resize_downsample_scales_linear_align_corners/model.onnx +0 -0
  577. onnx/backend/test/data/node/test_resize_downsample_scales_linear_antialias/model.onnx +0 -0
  578. onnx/backend/test/data/node/test_resize_downsample_scales_linear_half_pixel_symmetric/model.onnx +0 -0
  579. onnx/backend/test/data/node/test_resize_downsample_scales_linear_half_pixel_symmetric/test_data_set_0/input_0.pb +0 -0
  580. onnx/backend/test/data/node/test_resize_downsample_scales_linear_half_pixel_symmetric/test_data_set_0/input_1.pb +0 -0
  581. onnx/backend/test/data/node/test_resize_downsample_scales_linear_half_pixel_symmetric/test_data_set_0/output_0.pb +1 -0
  582. onnx/backend/test/data/node/test_resize_downsample_scales_nearest/model.onnx +0 -0
  583. onnx/backend/test/data/node/test_resize_downsample_sizes_cubic/model.onnx +0 -0
  584. onnx/backend/test/data/node/test_resize_downsample_sizes_cubic_antialias/model.onnx +0 -0
  585. onnx/backend/test/data/node/test_resize_downsample_sizes_linear_antialias/model.onnx +0 -0
  586. onnx/backend/test/data/node/test_resize_downsample_sizes_linear_pytorch_half_pixel/model.onnx +0 -0
  587. onnx/backend/test/data/node/test_resize_downsample_sizes_nearest/model.onnx +0 -0
  588. onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_not_larger/model.onnx +0 -0
  589. onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_not_smaller/model.onnx +0 -0
  590. onnx/backend/test/data/node/test_resize_tf_crop_and_resize/model.onnx +0 -0
  591. onnx/backend/test/data/node/test_resize_tf_crop_and_resize_axes_2_3/model.onnx +0 -0
  592. onnx/backend/test/data/node/test_resize_tf_crop_and_resize_axes_3_2/model.onnx +0 -0
  593. onnx/backend/test/data/node/test_resize_upsample_scales_cubic/model.onnx +0 -0
  594. onnx/backend/test/data/node/test_resize_upsample_scales_cubic_A_n0p5_exclude_outside/model.onnx +0 -0
  595. onnx/backend/test/data/node/test_resize_upsample_scales_cubic_align_corners/model.onnx +0 -0
  596. onnx/backend/test/data/node/test_resize_upsample_scales_cubic_asymmetric/model.onnx +0 -0
  597. onnx/backend/test/data/node/test_resize_upsample_scales_linear/model.onnx +0 -0
  598. onnx/backend/test/data/node/test_resize_upsample_scales_linear_align_corners/model.onnx +0 -0
  599. onnx/backend/test/data/node/test_resize_upsample_scales_linear_half_pixel_symmetric/model.onnx +0 -0
  600. onnx/backend/test/data/node/test_resize_upsample_scales_linear_half_pixel_symmetric/test_data_set_0/input_0.pb +0 -0
  601. onnx/backend/test/data/node/test_resize_upsample_scales_linear_half_pixel_symmetric/test_data_set_0/input_1.pb +0 -0
  602. onnx/backend/test/data/node/test_resize_upsample_scales_linear_half_pixel_symmetric/test_data_set_0/output_0.pb +0 -0
  603. onnx/backend/test/data/node/test_resize_upsample_scales_nearest/model.onnx +0 -0
  604. onnx/backend/test/data/node/test_resize_upsample_scales_nearest_axes_2_3/model.onnx +0 -0
  605. onnx/backend/test/data/node/test_resize_upsample_scales_nearest_axes_3_2/model.onnx +0 -0
  606. onnx/backend/test/data/node/test_resize_upsample_sizes_cubic/model.onnx +0 -0
  607. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest/model.onnx +0 -0
  608. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_axes_2_3/model.onnx +0 -0
  609. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_axes_3_2/model.onnx +0 -0
  610. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_ceil_half_pixel/model.onnx +0 -0
  611. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_floor_align_corners/model.onnx +0 -0
  612. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_larger/model.onnx +0 -0
  613. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric/model.onnx +0 -0
  614. onnx/backend/test/data/node/test_roialign_mode_max/model.onnx +0 -0
  615. onnx/backend/test/data/node/test_roialign_mode_max/test_data_set_0/input_0.pb +0 -0
  616. onnx/backend/test/data/node/test_roialign_mode_max/test_data_set_0/input_1.pb +0 -0
  617. onnx/backend/test/data/node/test_roialign_mode_max/test_data_set_0/input_2.pb +0 -0
  618. onnx/backend/test/data/node/test_roialign_mode_max/test_data_set_0/output_0.pb +2 -0
  619. onnx/backend/test/data/node/test_shape/model.onnx +0 -0
  620. onnx/backend/test/data/node/test_shape_clip_end/model.onnx +0 -0
  621. onnx/backend/test/data/node/test_shape_clip_start/model.onnx +0 -0
  622. onnx/backend/test/data/node/test_shape_end_1/model.onnx +0 -0
  623. onnx/backend/test/data/node/test_shape_end_negative_1/model.onnx +0 -0
  624. onnx/backend/test/data/node/test_shape_example/model.onnx +0 -0
  625. onnx/backend/test/data/node/test_shape_start_1/model.onnx +0 -0
  626. onnx/backend/test/data/node/test_shape_start_1_end_2/model.onnx +0 -0
  627. onnx/backend/test/data/node/test_shape_start_1_end_negative_1/model.onnx +0 -0
  628. onnx/backend/test/data/node/test_shape_start_negative_1/model.onnx +0 -0
  629. onnx/backend/test/data/node/test_sinh/test_data_set_0/output_0.pb +1 -1
  630. onnx/backend/test/data/node/test_size/model.onnx +0 -0
  631. onnx/backend/test/data/node/test_size_example/model.onnx +0 -0
  632. onnx/backend/test/data/node/test_softplus_example_expanded_ver18/model.onnx +0 -0
  633. onnx/backend/test/data/node/{test_softplus_expanded → test_softplus_expanded_ver18}/model.onnx +0 -0
  634. onnx/backend/test/data/node/test_split_to_sequence_1/model.onnx +0 -0
  635. onnx/backend/test/data/node/test_split_to_sequence_1/test_data_set_0/input_0.pb +0 -0
  636. onnx/backend/test/data/node/test_split_to_sequence_1/test_data_set_0/input_1.pb +0 -0
  637. onnx/backend/test/data/node/test_split_to_sequence_1/test_data_set_0/output_0.pb +0 -0
  638. onnx/backend/test/data/node/test_split_to_sequence_2/model.onnx +0 -0
  639. onnx/backend/test/data/node/test_split_to_sequence_2/test_data_set_0/input_0.pb +0 -0
  640. onnx/backend/test/data/node/test_split_to_sequence_2/test_data_set_0/input_1.pb +0 -0
  641. onnx/backend/test/data/node/test_split_to_sequence_2/test_data_set_0/output_0.pb +0 -0
  642. onnx/backend/test/data/node/test_split_to_sequence_nokeepdims/model.onnx +0 -0
  643. onnx/backend/test/data/node/test_split_to_sequence_nokeepdims/test_data_set_0/input_0.pb +0 -0
  644. onnx/backend/test/data/node/test_split_to_sequence_nokeepdims/test_data_set_0/output_0.pb +0 -0
  645. onnx/backend/test/data/node/test_tan/test_data_set_0/output_0.pb +1 -1
  646. onnx/backend/test/data/node/test_wrap_pad/model.onnx +0 -0
  647. onnx/backend/test/data/node/test_wrap_pad/test_data_set_0/input_0.pb +0 -0
  648. onnx/backend/test/data/node/test_wrap_pad/test_data_set_0/input_1.pb +0 -0
  649. onnx/backend/test/data/node/test_wrap_pad/test_data_set_0/output_0.pb +0 -0
  650. onnx/backend/test/data/real/test_bvlc_alexnet/data.json +1 -1
  651. onnx/backend/test/data/real/test_densenet121/data.json +1 -1
  652. onnx/backend/test/data/real/test_inception_v1/data.json +1 -1
  653. onnx/backend/test/data/real/test_inception_v2/data.json +1 -1
  654. onnx/backend/test/data/real/test_resnet50/data.json +1 -1
  655. onnx/backend/test/data/real/test_shufflenet/data.json +1 -1
  656. onnx/backend/test/data/real/test_squeezenet/data.json +1 -1
  657. onnx/backend/test/data/real/test_vgg19/data.json +1 -1
  658. onnx/backend/test/data/real/test_zfnet512/data.json +1 -1
  659. onnx/backend/test/loader/__init__.py +3 -1
  660. onnx/backend/test/report/__init__.py +3 -1
  661. onnx/backend/test/report/base.py +2 -0
  662. onnx/backend/test/report/coverage.py +8 -14
  663. onnx/backend/test/runner/__init__.py +145 -38
  664. onnx/backend/test/runner/item.py +2 -0
  665. onnx/backend/test/stat_coverage.py +23 -26
  666. onnx/bin/__init__.py +2 -0
  667. onnx/bin/checker.py +2 -0
  668. onnx/checker.cc +17 -5
  669. onnx/checker.h +3 -3
  670. onnx/checker.py +22 -5
  671. onnx/common/array_ref.h +2 -0
  672. onnx/common/assertions.cc +2 -0
  673. onnx/common/assertions.h +2 -0
  674. onnx/common/common.h +2 -0
  675. onnx/common/constants.h +3 -3
  676. onnx/common/file_utils.h +3 -1
  677. onnx/common/graph_node_list.h +2 -0
  678. onnx/common/interned_strings.cc +2 -0
  679. onnx/common/interned_strings.h +2 -0
  680. onnx/common/ir.h +2 -0
  681. onnx/common/ir_pb_converter.cc +7 -1
  682. onnx/common/ir_pb_converter.h +2 -0
  683. onnx/common/model_helpers.cc +3 -3
  684. onnx/common/model_helpers.h +3 -3
  685. onnx/common/path.cc +0 -1
  686. onnx/common/path.h +0 -1
  687. onnx/common/platform_helpers.h +2 -0
  688. onnx/common/status.cc +2 -0
  689. onnx/common/status.h +2 -0
  690. onnx/common/stl_backports.h +3 -3
  691. onnx/common/tensor.h +24 -171
  692. onnx/common/version.h +3 -1
  693. onnx/compose.py +40 -32
  694. onnx/cpp2py_export.cc +268 -89
  695. onnx/defs/__init__.py +9 -7
  696. onnx/defs/attr_proto_util.cc +2 -0
  697. onnx/defs/attr_proto_util.h +2 -0
  698. onnx/defs/controlflow/defs.cc +25 -369
  699. onnx/defs/controlflow/old.cc +444 -0
  700. onnx/defs/controlflow/utils.cc +357 -0
  701. onnx/defs/controlflow/utils.h +21 -0
  702. onnx/defs/data_propagators.h +2 -0
  703. onnx/defs/data_type_utils.cc +6 -2
  704. onnx/defs/gen_doc.py +31 -45
  705. onnx/defs/gen_shape_inference_information.py +2 -0
  706. onnx/defs/generator/defs.cc +21 -19
  707. onnx/defs/generator/old.cc +157 -0
  708. onnx/defs/logical/defs.cc +17 -16
  709. onnx/defs/logical/old.cc +23 -0
  710. onnx/defs/math/defs.cc +155 -131
  711. onnx/defs/math/old.cc +1 -1
  712. onnx/defs/nn/defs.cc +135 -45
  713. onnx/defs/nn/old.cc +142 -9
  714. onnx/defs/operator_sets.h +45 -0
  715. onnx/defs/optional/defs.cc +8 -4
  716. onnx/defs/parser.cc +61 -4
  717. onnx/defs/parser.h +43 -31
  718. onnx/defs/printer.cc +7 -1
  719. onnx/defs/printer.h +1 -1
  720. onnx/defs/quantization/defs.cc +63 -26
  721. onnx/defs/quantization/old.cc +102 -1
  722. onnx/defs/reduction/defs.cc +1 -1
  723. onnx/defs/reduction/utils.cc +5 -4
  724. onnx/defs/rnn/defs.cc +95 -173
  725. onnx/defs/schema.cc +45 -29
  726. onnx/defs/schema.h +125 -15
  727. onnx/defs/sequence/defs.cc +11 -8
  728. onnx/defs/shape_inference.cc +25 -4
  729. onnx/defs/shape_inference.h +29 -1
  730. onnx/defs/tensor/defs.cc +499 -565
  731. onnx/defs/tensor/old.cc +777 -47
  732. onnx/defs/tensor/utils.cc +130 -8
  733. onnx/defs/tensor/utils.h +2 -0
  734. onnx/defs/tensor_proto_util.cc +3 -0
  735. onnx/defs/traditionalml/defs.cc +19 -2
  736. onnx/examples/Protobufs.ipynb +129 -31
  737. onnx/examples/check_model.ipynb +29 -21
  738. onnx/examples/load_model.ipynb +25 -3
  739. onnx/examples/make_model.ipynb +32 -23
  740. onnx/external_data_helper.py +8 -9
  741. onnx/frontend/__init__.py +2 -0
  742. onnx/gen_proto.py +18 -24
  743. onnx/helper.py +394 -107
  744. onnx/hub.py +189 -20
  745. onnx/mapping.py +33 -7
  746. onnx/numpy_helper.py +263 -52
  747. onnx/onnx-ml.proto +28 -6
  748. onnx/onnx-operators-ml.proto +1 -1
  749. onnx/onnx-operators.in.proto +1 -1
  750. onnx/onnx-operators.proto +1 -1
  751. onnx/onnx.in.proto +28 -6
  752. onnx/onnx.proto +28 -6
  753. onnx/onnx_cpp2py_export.cpython-311-darwin.so +0 -0
  754. onnx/onnx_data_pb2.pyi +2 -1
  755. onnx/onnx_ml_pb2.py +33 -33
  756. onnx/onnx_ml_pb2.pyi +12 -2
  757. onnx/onnx_operators_ml_pb2.pyi +2 -1
  758. onnx/parser.py +29 -13
  759. onnx/printer.py +6 -4
  760. onnx/proto_utils.h +3 -3
  761. onnx/py_utils.h +3 -3
  762. onnx/reference/__init__.py +2 -0
  763. onnx/reference/custom_element_types.py +11 -0
  764. onnx/reference/op_run.py +84 -8
  765. onnx/reference/ops/__init__.py +5 -1
  766. onnx/reference/ops/_helpers.py +55 -0
  767. onnx/reference/ops/_op.py +18 -11
  768. onnx/reference/ops/_op_common_indices.py +2 -0
  769. onnx/reference/ops/_op_common_pool.py +4 -10
  770. onnx/reference/ops/_op_common_random.py +2 -0
  771. onnx/reference/ops/_op_common_window.py +2 -0
  772. onnx/reference/ops/_op_list.py +208 -214
  773. onnx/reference/ops/aionnx_preview_training/__init__.py +4 -2
  774. onnx/reference/ops/aionnx_preview_training/_op_list.py +15 -38
  775. onnx/reference/ops/aionnx_preview_training/_op_run_training.py +2 -0
  776. onnx/reference/ops/aionnx_preview_training/op_adagrad.py +3 -1
  777. onnx/reference/ops/aionnx_preview_training/op_adam.py +3 -1
  778. onnx/reference/ops/aionnx_preview_training/op_momentum.py +3 -1
  779. onnx/reference/ops/aionnxml/__init__.py +3 -0
  780. onnx/reference/ops/aionnxml/_common_classifier.py +81 -0
  781. onnx/reference/ops/aionnxml/_op_list.py +97 -0
  782. onnx/reference/ops/aionnxml/_op_run_aionnxml.py +8 -0
  783. onnx/reference/ops/aionnxml/op_array_feature_extractor.py +50 -0
  784. onnx/reference/ops/aionnxml/op_binarizer.py +15 -0
  785. onnx/reference/ops/aionnxml/op_dict_vectorizer.py +56 -0
  786. onnx/reference/ops/aionnxml/op_feature_vectorizer.py +30 -0
  787. onnx/reference/ops/aionnxml/op_imputer.py +47 -0
  788. onnx/reference/ops/aionnxml/op_label_encoder.py +52 -0
  789. onnx/reference/ops/aionnxml/op_linear_classifier.py +99 -0
  790. onnx/reference/ops/aionnxml/op_linear_regressor.py +26 -0
  791. onnx/reference/ops/aionnxml/op_normalizer.py +41 -0
  792. onnx/reference/ops/aionnxml/op_one_hot_encoder.py +55 -0
  793. onnx/reference/ops/aionnxml/op_scaler.py +12 -0
  794. onnx/reference/ops/aionnxml/op_svm_classifier.py +334 -0
  795. onnx/reference/ops/aionnxml/op_svm_helper.py +99 -0
  796. onnx/reference/ops/aionnxml/op_svm_regressor.py +45 -0
  797. onnx/reference/ops/aionnxml/op_tree_ensemble_classifier.py +132 -0
  798. onnx/reference/ops/aionnxml/op_tree_ensemble_helper.py +109 -0
  799. onnx/reference/ops/aionnxml/op_tree_ensemble_regressor.py +105 -0
  800. onnx/reference/ops/experimental/__init__.py +3 -1
  801. onnx/reference/ops/experimental/_op_list.py +15 -36
  802. onnx/reference/ops/experimental/_op_run_experimental.py +2 -0
  803. onnx/reference/ops/experimental/op_im2col.py +3 -2
  804. onnx/reference/ops/op_abs.py +3 -1
  805. onnx/reference/ops/op_acos.py +3 -1
  806. onnx/reference/ops/op_acosh.py +3 -1
  807. onnx/reference/ops/op_add.py +3 -1
  808. onnx/reference/ops/op_and.py +3 -1
  809. onnx/reference/ops/op_argmax.py +4 -9
  810. onnx/reference/ops/op_argmin.py +4 -9
  811. onnx/reference/ops/op_asin.py +3 -1
  812. onnx/reference/ops/op_asinh.py +3 -1
  813. onnx/reference/ops/op_atan.py +3 -1
  814. onnx/reference/ops/op_atanh.py +3 -1
  815. onnx/reference/ops/op_attribute_has_value.py +2 -0
  816. onnx/reference/ops/op_average_pool.py +80 -2
  817. onnx/reference/ops/op_batch_normalization.py +14 -11
  818. onnx/reference/ops/op_bernoulli.py +3 -2
  819. onnx/reference/ops/op_bitshift.py +3 -1
  820. onnx/reference/ops/op_bitwise_and.py +3 -1
  821. onnx/reference/ops/op_bitwise_not.py +3 -1
  822. onnx/reference/ops/op_bitwise_or.py +3 -1
  823. onnx/reference/ops/op_bitwise_xor.py +3 -1
  824. onnx/reference/ops/op_blackman_window.py +3 -1
  825. onnx/reference/ops/op_cast.py +91 -10
  826. onnx/reference/ops/op_cast_like.py +32 -7
  827. onnx/reference/ops/op_ceil.py +3 -1
  828. onnx/reference/ops/op_celu.py +3 -1
  829. onnx/reference/ops/op_center_crop_pad.py +7 -3
  830. onnx/reference/ops/op_clip.py +2 -7
  831. onnx/reference/ops/op_col2im.py +3 -4
  832. onnx/reference/ops/op_compress.py +2 -0
  833. onnx/reference/ops/op_concat.py +6 -5
  834. onnx/reference/ops/op_concat_from_sequence.py +2 -0
  835. onnx/reference/ops/op_constant.py +46 -35
  836. onnx/reference/ops/op_constant_of_shape.py +4 -0
  837. onnx/reference/ops/op_conv.py +62 -39
  838. onnx/reference/ops/op_conv_integer.py +3 -2
  839. onnx/reference/ops/op_conv_transpose.py +4 -4
  840. onnx/reference/ops/op_cos.py +3 -1
  841. onnx/reference/ops/op_cosh.py +3 -1
  842. onnx/reference/ops/op_cum_sum.py +2 -0
  843. onnx/reference/ops/op_deform_conv.py +178 -0
  844. onnx/reference/ops/op_depth_to_space.py +2 -0
  845. onnx/reference/ops/op_dequantize_linear.py +72 -21
  846. onnx/reference/ops/op_det.py +3 -4
  847. onnx/reference/ops/op_dft.py +2 -0
  848. onnx/reference/ops/op_div.py +3 -1
  849. onnx/reference/ops/op_dropout.py +2 -7
  850. onnx/reference/ops/op_dynamic_quantize_linear.py +2 -0
  851. onnx/reference/ops/op_einsum.py +2 -0
  852. onnx/reference/ops/op_elu.py +4 -2
  853. onnx/reference/ops/op_equal.py +3 -1
  854. onnx/reference/ops/op_erf.py +3 -1
  855. onnx/reference/ops/op_exp.py +4 -2
  856. onnx/reference/ops/op_expand.py +2 -0
  857. onnx/reference/ops/op_eyelike.py +9 -4
  858. onnx/reference/ops/op_flatten.py +3 -1
  859. onnx/reference/ops/op_floor.py +3 -1
  860. onnx/reference/ops/op_gather.py +2 -0
  861. onnx/reference/ops/op_gather_elements.py +2 -0
  862. onnx/reference/ops/op_gathernd.py +3 -1
  863. onnx/reference/ops/op_gemm.py +5 -10
  864. onnx/reference/ops/op_global_average_pool.py +6 -5
  865. onnx/reference/ops/op_global_max_pool.py +2 -0
  866. onnx/reference/ops/op_greater.py +3 -1
  867. onnx/reference/ops/op_greater_or_equal.py +3 -1
  868. onnx/reference/ops/op_grid_sample.py +3 -1
  869. onnx/reference/ops/op_gru.py +4 -1
  870. onnx/reference/ops/op_hamming_window.py +3 -1
  871. onnx/reference/ops/op_hann_window.py +3 -1
  872. onnx/reference/ops/op_hard_sigmoid.py +3 -1
  873. onnx/reference/ops/op_hardmax.py +3 -1
  874. onnx/reference/ops/op_identity.py +3 -1
  875. onnx/reference/ops/op_if.py +16 -8
  876. onnx/reference/ops/op_instance_normalization.py +2 -0
  877. onnx/reference/ops/op_isinf.py +2 -0
  878. onnx/reference/ops/op_isnan.py +3 -1
  879. onnx/reference/ops/op_layer_normalization.py +2 -0
  880. onnx/reference/ops/op_leaky_relu.py +4 -2
  881. onnx/reference/ops/op_less.py +3 -1
  882. onnx/reference/ops/op_less_or_equal.py +3 -1
  883. onnx/reference/ops/op_log.py +4 -2
  884. onnx/reference/ops/op_log_softmax.py +3 -1
  885. onnx/reference/ops/op_loop.py +4 -2
  886. onnx/reference/ops/op_lp_normalization.py +4 -2
  887. onnx/reference/ops/op_lp_pool.py +41 -0
  888. onnx/reference/ops/op_lrn.py +9 -5
  889. onnx/reference/ops/op_lstm.py +4 -2
  890. onnx/reference/ops/op_matmul.py +3 -1
  891. onnx/reference/ops/op_matmul_integer.py +2 -0
  892. onnx/reference/ops/op_max.py +3 -1
  893. onnx/reference/ops/op_max_pool.py +3 -4
  894. onnx/reference/ops/op_max_unpool.py +2 -1
  895. onnx/reference/ops/op_mean.py +3 -1
  896. onnx/reference/ops/op_mel_weight_matrix.py +2 -0
  897. onnx/reference/ops/op_min.py +3 -1
  898. onnx/reference/ops/op_mod.py +2 -0
  899. onnx/reference/ops/op_mul.py +3 -1
  900. onnx/reference/ops/op_neg.py +3 -1
  901. onnx/reference/ops/op_negative_log_likelihood_loss.py +3 -1
  902. onnx/reference/ops/op_non_max_suppression.py +22 -20
  903. onnx/reference/ops/op_non_zero.py +4 -1
  904. onnx/reference/ops/op_not.py +3 -1
  905. onnx/reference/ops/op_one_hot.py +3 -1
  906. onnx/reference/ops/op_optional.py +2 -0
  907. onnx/reference/ops/op_optional_get_element.py +4 -8
  908. onnx/reference/ops/op_optional_has_element.py +3 -9
  909. onnx/reference/ops/op_or.py +3 -1
  910. onnx/reference/ops/op_pad.py +18 -29
  911. onnx/reference/ops/op_pow.py +2 -0
  912. onnx/reference/ops/op_prelu.py +4 -2
  913. onnx/reference/ops/op_qlinear_conv.py +3 -2
  914. onnx/reference/ops/op_qlinear_matmul.py +2 -0
  915. onnx/reference/ops/op_quantize_linear.py +100 -15
  916. onnx/reference/ops/op_random_normal.py +3 -1
  917. onnx/reference/ops/op_random_normal_like.py +3 -2
  918. onnx/reference/ops/op_random_uniform.py +3 -1
  919. onnx/reference/ops/op_random_uniform_like.py +3 -2
  920. onnx/reference/ops/op_range.py +2 -0
  921. onnx/reference/ops/op_reciprocal.py +4 -2
  922. onnx/reference/ops/op_reduce_l1.py +17 -31
  923. onnx/reference/ops/op_reduce_l2.py +17 -35
  924. onnx/reference/ops/op_reduce_log_sum.py +6 -29
  925. onnx/reference/ops/op_reduce_log_sum_exp.py +6 -29
  926. onnx/reference/ops/op_reduce_max.py +15 -36
  927. onnx/reference/ops/op_reduce_mean.py +15 -33
  928. onnx/reference/ops/op_reduce_min.py +15 -32
  929. onnx/reference/ops/op_reduce_prod.py +15 -29
  930. onnx/reference/ops/op_reduce_sum.py +17 -45
  931. onnx/reference/ops/op_reduce_sum_square.py +15 -29
  932. onnx/reference/ops/op_relu.py +3 -1
  933. onnx/reference/ops/op_reshape.py +2 -8
  934. onnx/reference/ops/op_resize.py +59 -28
  935. onnx/reference/ops/op_reverse_sequence.py +2 -0
  936. onnx/reference/ops/op_rnn.py +3 -9
  937. onnx/reference/ops/op_roi_align.py +7 -5
  938. onnx/reference/ops/op_round.py +4 -2
  939. onnx/reference/ops/op_scan.py +4 -1
  940. onnx/reference/ops/op_scatter_elements.py +17 -4
  941. onnx/reference/ops/op_scatternd.py +2 -0
  942. onnx/reference/ops/op_selu.py +5 -1
  943. onnx/reference/ops/op_sequence_at.py +2 -0
  944. onnx/reference/ops/op_sequence_construct.py +2 -0
  945. onnx/reference/ops/op_sequence_empty.py +2 -0
  946. onnx/reference/ops/op_sequence_erase.py +2 -0
  947. onnx/reference/ops/op_sequence_insert.py +4 -2
  948. onnx/reference/ops/op_sequence_length.py +7 -1
  949. onnx/reference/ops/op_sequence_map.py +4 -2
  950. onnx/reference/ops/op_shape.py +2 -7
  951. onnx/reference/ops/op_shrink.py +3 -1
  952. onnx/reference/ops/op_sigmoid.py +7 -1
  953. onnx/reference/ops/op_sign.py +3 -1
  954. onnx/reference/ops/op_sin.py +3 -1
  955. onnx/reference/ops/op_sinh.py +3 -1
  956. onnx/reference/ops/op_size.py +2 -0
  957. onnx/reference/ops/op_slice.py +3 -9
  958. onnx/reference/ops/op_softmax.py +4 -2
  959. onnx/reference/ops/op_softmax_cross_entropy_loss.py +4 -1
  960. onnx/reference/ops/op_softplus.py +4 -2
  961. onnx/reference/ops/op_softsign.py +3 -1
  962. onnx/reference/ops/op_space_to_depth.py +3 -1
  963. onnx/reference/ops/op_split.py +7 -9
  964. onnx/reference/ops/op_split_to_sequence.py +41 -10
  965. onnx/reference/ops/op_sqrt.py +4 -2
  966. onnx/reference/ops/op_squeeze.py +3 -12
  967. onnx/reference/ops/op_stft.py +8 -7
  968. onnx/reference/ops/op_string_normalizer.py +3 -1
  969. onnx/reference/ops/op_sub.py +3 -1
  970. onnx/reference/ops/op_sum.py +3 -1
  971. onnx/reference/ops/op_tan.py +3 -1
  972. onnx/reference/ops/op_tanh.py +3 -1
  973. onnx/reference/ops/op_tfidf_vectorizer.py +15 -15
  974. onnx/reference/ops/op_thresholded_relu.py +4 -2
  975. onnx/reference/ops/op_tile.py +2 -0
  976. onnx/reference/ops/op_topk.py +12 -19
  977. onnx/reference/ops/op_transpose.py +2 -0
  978. onnx/reference/ops/op_trilu.py +3 -1
  979. onnx/reference/ops/op_unique.py +2 -0
  980. onnx/reference/ops/op_unsqueeze.py +2 -9
  981. onnx/reference/ops/op_upsample.py +9 -8
  982. onnx/reference/ops/op_where.py +7 -1
  983. onnx/reference/ops/op_xor.py +3 -1
  984. onnx/reference/reference_evaluator.py +64 -20
  985. onnx/shape_inference/implementation.cc +207 -30
  986. onnx/shape_inference/implementation.h +15 -4
  987. onnx/shape_inference.py +37 -12
  988. onnx/string_utils.h +3 -3
  989. onnx/test/cpp/common_path_test.cc +2 -0
  990. onnx/test/cpp/data_propagation_test.cc +2 -0
  991. onnx/test/cpp/function_context_test.cc +2 -0
  992. onnx/test/cpp/function_get_test.cc +2 -0
  993. onnx/test/cpp/function_verify_test.cc +176 -0
  994. onnx/test/cpp/op_reg_test.cc +2 -0
  995. onnx/test/cpp/parser_test.cc +65 -1
  996. onnx/test/cpp/schema_registration_test.cc +2 -0
  997. onnx/test/cpp/shape_inference_test.cc +2 -0
  998. onnx/test/cpp/test_main.cc +2 -0
  999. onnx/tools/__init__.py +2 -0
  1000. onnx/tools/net_drawer.py +13 -9
  1001. onnx/tools/replace_constants.py +429 -0
  1002. onnx/tools/update_model_dims.py +7 -9
  1003. onnx/utils.py +16 -6
  1004. onnx/version.py +2 -2
  1005. onnx/version_converter/BaseConverter.h +2 -0
  1006. onnx/version_converter/adapters/adapter.h +2 -0
  1007. onnx/version_converter/adapters/axes_attribute_to_input.h +2 -0
  1008. onnx/version_converter/adapters/axes_input_to_attribute.h +2 -0
  1009. onnx/version_converter/adapters/batch_normalization_13_14.h +2 -0
  1010. onnx/version_converter/adapters/broadcast_backward_compatibility.h +2 -0
  1011. onnx/version_converter/adapters/broadcast_forward_compatibility.h +2 -0
  1012. onnx/version_converter/adapters/cast_9_8.h +2 -0
  1013. onnx/version_converter/adapters/clip_10_11.h +2 -0
  1014. onnx/version_converter/adapters/compatible.h +2 -0
  1015. onnx/version_converter/adapters/dropout_11_12.h +2 -0
  1016. onnx/version_converter/adapters/extend_supported_types.h +2 -0
  1017. onnx/version_converter/adapters/gemm_6_7.h +2 -0
  1018. onnx/version_converter/adapters/gemm_7_6.h +2 -0
  1019. onnx/version_converter/adapters/maxpool_8_7.h +2 -0
  1020. onnx/version_converter/adapters/no_previous_version.h +2 -0
  1021. onnx/version_converter/adapters/pad_10_11.h +4 -0
  1022. onnx/version_converter/adapters/remove_consumed_inputs.h +2 -0
  1023. onnx/version_converter/adapters/reshape_4_5.h +2 -0
  1024. onnx/version_converter/adapters/reshape_5_4.h +2 -0
  1025. onnx/version_converter/adapters/resize_10_11.h +2 -0
  1026. onnx/version_converter/adapters/scan_8_9.h +2 -0
  1027. onnx/version_converter/adapters/scan_9_8.h +2 -0
  1028. onnx/version_converter/adapters/scatter_10_11.h +2 -0
  1029. onnx/version_converter/adapters/slice_9_10.h +2 -0
  1030. onnx/version_converter/adapters/softmax_12_13.h +20 -28
  1031. onnx/version_converter/adapters/split_12_13.h +2 -0
  1032. onnx/version_converter/adapters/split_13_12.h +2 -0
  1033. onnx/version_converter/adapters/split_17_18.h +2 -0
  1034. onnx/version_converter/adapters/sum_8_7.h +2 -0
  1035. onnx/version_converter/adapters/topk_9_10.h +2 -0
  1036. onnx/version_converter/adapters/transformers.h +3 -1
  1037. onnx/version_converter/adapters/type_restriction.h +2 -0
  1038. onnx/version_converter/adapters/upsample_6_7.h +2 -0
  1039. onnx/version_converter/adapters/upsample_8_9.h +2 -0
  1040. onnx/version_converter/adapters/upsample_9_10.h +2 -0
  1041. onnx/version_converter/adapters/upsample_9_8.h +2 -0
  1042. onnx/version_converter/convert.cc +14 -7
  1043. onnx/version_converter/convert.h +20 -0
  1044. onnx/version_converter/helper.cc +3 -3
  1045. onnx/version_converter/helper.h +3 -3
  1046. onnx/version_converter.py +6 -3
  1047. {onnx-1.13.0.dist-info → onnx-1.14.0.dist-info}/METADATA +95 -51
  1048. {onnx-1.13.0.dist-info → onnx-1.14.0.dist-info}/RECORD +1056 -743
  1049. {onnx-1.13.0.dist-info → onnx-1.14.0.dist-info}/WHEEL +1 -1
  1050. onnx/backend/test/data/node/test_softplus_example_expanded/model.onnx +0 -0
  1051. /onnx/backend/test/data/node/{test_softplus_example_expanded → test_softplus_example_expanded_ver18}/test_data_set_0/input_0.pb +0 -0
  1052. /onnx/backend/test/data/node/{test_softplus_example_expanded → test_softplus_example_expanded_ver18}/test_data_set_0/output_0.pb +0 -0
  1053. /onnx/backend/test/data/node/{test_softplus_expanded → test_softplus_expanded_ver18}/test_data_set_0/input_0.pb +0 -0
  1054. /onnx/backend/test/data/node/{test_softplus_expanded → test_softplus_expanded_ver18}/test_data_set_0/output_0.pb +0 -0
  1055. {onnx-1.13.0.dist-info → onnx-1.14.0.dist-info}/LICENSE +0 -0
  1056. {onnx-1.13.0.dist-info → onnx-1.14.0.dist-info}/entry_points.txt +0 -0
  1057. {onnx-1.13.0.dist-info → onnx-1.14.0.dist-info}/top_level.txt +0 -0
onnx/onnx_ml_pb2.py CHANGED
@@ -13,7 +13,7 @@ _sym_db = _symbol_database.Default()
13
13
 
14
14
 
15
15
 
16
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12onnx/onnx-ml.proto\x12\x04onnx\"\xcc\x05\n\x0e\x41ttributeProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rref_attr_name\x18\x15 \x01(\t\x12\x12\n\ndoc_string\x18\r \x01(\t\x12\x30\n\x04type\x18\x14 \x01(\x0e\x32\".onnx.AttributeProto.AttributeType\x12\t\n\x01\x66\x18\x02 \x01(\x02\x12\t\n\x01i\x18\x03 \x01(\x03\x12\t\n\x01s\x18\x04 \x01(\x0c\x12\x1c\n\x01t\x18\x05 \x01(\x0b\x32\x11.onnx.TensorProto\x12\x1b\n\x01g\x18\x06 \x01(\x0b\x32\x10.onnx.GraphProto\x12.\n\rsparse_tensor\x18\x16 \x01(\x0b\x32\x17.onnx.SparseTensorProto\x12\x1b\n\x02tp\x18\x0e \x01(\x0b\x32\x0f.onnx.TypeProto\x12\x0e\n\x06\x66loats\x18\x07 \x03(\x02\x12\x0c\n\x04ints\x18\x08 \x03(\x03\x12\x0f\n\x07strings\x18\t \x03(\x0c\x12\"\n\x07tensors\x18\n \x03(\x0b\x32\x11.onnx.TensorProto\x12 \n\x06graphs\x18\x0b \x03(\x0b\x32\x10.onnx.GraphProto\x12/\n\x0esparse_tensors\x18\x17 \x03(\x0b\x32\x17.onnx.SparseTensorProto\x12$\n\x0btype_protos\x18\x0f \x03(\x0b\x32\x0f.onnx.TypeProto\"\xd9\x01\n\rAttributeType\x12\r\n\tUNDEFINED\x10\x00\x12\t\n\x05\x46LOAT\x10\x01\x12\x07\n\x03INT\x10\x02\x12\n\n\x06STRING\x10\x03\x12\n\n\x06TENSOR\x10\x04\x12\t\n\x05GRAPH\x10\x05\x12\x11\n\rSPARSE_TENSOR\x10\x0b\x12\x0e\n\nTYPE_PROTO\x10\r\x12\n\n\x06\x46LOATS\x10\x06\x12\x08\n\x04INTS\x10\x07\x12\x0b\n\x07STRINGS\x10\x08\x12\x0b\n\x07TENSORS\x10\t\x12\n\n\x06GRAPHS\x10\n\x12\x12\n\x0eSPARSE_TENSORS\x10\x0c\x12\x0f\n\x0bTYPE_PROTOS\x10\x0e\"Q\n\x0eValueInfoProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x04type\x18\x02 \x01(\x0b\x32\x0f.onnx.TypeProto\x12\x12\n\ndoc_string\x18\x03 \x01(\t\"\x96\x01\n\tNodeProto\x12\r\n\x05input\x18\x01 \x03(\t\x12\x0e\n\x06output\x18\x02 \x03(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07op_type\x18\x04 \x01(\t\x12\x0e\n\x06\x64omain\x18\x07 \x01(\t\x12\'\n\tattribute\x18\x05 \x03(\x0b\x32\x14.onnx.AttributeProto\x12\x12\n\ndoc_string\x18\x06 \x01(\t\"\xd6\x01\n\x11TrainingInfoProto\x12(\n\x0einitialization\x18\x01 \x01(\x0b\x32\x10.onnx.GraphProto\x12#\n\talgorithm\x18\x02 \x01(\x0b\x32\x10.onnx.GraphProto\x12<\n\x16initialization_binding\x18\x03 \x03(\x0b\x32\x1c.onnx.StringStringEntryProto\x12\x34\n\x0eupdate_binding\x18\x04 \x03(\x0b\x32\x1c.onnx.StringStringEntryProto\"\xeb\x02\n\nModelProto\x12\x12\n\nir_version\x18\x01 \x01(\x03\x12.\n\x0copset_import\x18\x08 \x03(\x0b\x32\x18.onnx.OperatorSetIdProto\x12\x15\n\rproducer_name\x18\x02 \x01(\t\x12\x18\n\x10producer_version\x18\x03 \x01(\t\x12\x0e\n\x06\x64omain\x18\x04 \x01(\t\x12\x15\n\rmodel_version\x18\x05 \x01(\x03\x12\x12\n\ndoc_string\x18\x06 \x01(\t\x12\x1f\n\x05graph\x18\x07 \x01(\x0b\x32\x10.onnx.GraphProto\x12\x34\n\x0emetadata_props\x18\x0e \x03(\x0b\x32\x1c.onnx.StringStringEntryProto\x12.\n\rtraining_info\x18\x14 \x03(\x0b\x32\x17.onnx.TrainingInfoProto\x12&\n\tfunctions\x18\x19 \x03(\x0b\x32\x13.onnx.FunctionProto\"4\n\x16StringStringEntryProto\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"k\n\x10TensorAnnotation\x12\x13\n\x0btensor_name\x18\x01 \x01(\t\x12\x42\n\x1cquant_parameter_tensor_names\x18\x02 \x03(\x0b\x32\x1c.onnx.StringStringEntryProto\"\x9e\x03\n\nGraphProto\x12\x1d\n\x04node\x18\x01 \x03(\x0b\x32\x0f.onnx.NodeProto\x12\x0c\n\x04name\x18\x02 \x01(\t\x12&\n\x0binitializer\x18\x05 \x03(\x0b\x32\x11.onnx.TensorProto\x12\x33\n\x12sparse_initializer\x18\x0f \x03(\x0b\x32\x17.onnx.SparseTensorProto\x12\x12\n\ndoc_string\x18\n \x01(\t\x12#\n\x05input\x18\x0b \x03(\x0b\x32\x14.onnx.ValueInfoProto\x12$\n\x06output\x18\x0c \x03(\x0b\x32\x14.onnx.ValueInfoProto\x12(\n\nvalue_info\x18\r \x03(\x0b\x32\x14.onnx.ValueInfoProto\x12\x37\n\x17quantization_annotation\x18\x0e \x03(\x0b\x32\x16.onnx.TensorAnnotationJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x06\x10\nR\nir_versionR\x10producer_versionR\x0cproducer_tagR\x06\x64omain\"\xb8\x05\n\x0bTensorProto\x12\x0c\n\x04\x64ims\x18\x01 \x03(\x03\x12\x11\n\tdata_type\x18\x02 \x01(\x05\x12*\n\x07segment\x18\x03 \x01(\x0b\x32\x19.onnx.TensorProto.Segment\x12\x16\n\nfloat_data\x18\x04 \x03(\x02\x42\x02\x10\x01\x12\x16\n\nint32_data\x18\x05 \x03(\x05\x42\x02\x10\x01\x12\x13\n\x0bstring_data\x18\x06 \x03(\x0c\x12\x16\n\nint64_data\x18\x07 \x03(\x03\x42\x02\x10\x01\x12\x0c\n\x04name\x18\x08 \x01(\t\x12\x12\n\ndoc_string\x18\x0c \x01(\t\x12\x10\n\x08raw_data\x18\t \x01(\x0c\x12\x33\n\rexternal_data\x18\r \x03(\x0b\x32\x1c.onnx.StringStringEntryProto\x12\x35\n\rdata_location\x18\x0e \x01(\x0e\x32\x1e.onnx.TensorProto.DataLocation\x12\x17\n\x0b\x64ouble_data\x18\n \x03(\x01\x42\x02\x10\x01\x12\x17\n\x0buint64_data\x18\x0b \x03(\x04\x42\x02\x10\x01\x1a%\n\x07Segment\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x03\"\xda\x01\n\x08\x44\x61taType\x12\r\n\tUNDEFINED\x10\x00\x12\t\n\x05\x46LOAT\x10\x01\x12\t\n\x05UINT8\x10\x02\x12\x08\n\x04INT8\x10\x03\x12\n\n\x06UINT16\x10\x04\x12\t\n\x05INT16\x10\x05\x12\t\n\x05INT32\x10\x06\x12\t\n\x05INT64\x10\x07\x12\n\n\x06STRING\x10\x08\x12\x08\n\x04\x42OOL\x10\t\x12\x0b\n\x07\x46LOAT16\x10\n\x12\n\n\x06\x44OUBLE\x10\x0b\x12\n\n\x06UINT32\x10\x0c\x12\n\n\x06UINT64\x10\r\x12\r\n\tCOMPLEX64\x10\x0e\x12\x0e\n\nCOMPLEX128\x10\x0f\x12\x0c\n\x08\x42\x46LOAT16\x10\x10\")\n\x0c\x44\x61taLocation\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08\x45XTERNAL\x10\x01\"h\n\x11SparseTensorProto\x12!\n\x06values\x18\x01 \x01(\x0b\x32\x11.onnx.TensorProto\x12\"\n\x07indices\x18\x02 \x01(\x0b\x32\x11.onnx.TensorProto\x12\x0c\n\x04\x64ims\x18\x03 \x03(\x03\"\x95\x01\n\x10TensorShapeProto\x12-\n\x03\x64im\x18\x01 \x03(\x0b\x32 .onnx.TensorShapeProto.Dimension\x1aR\n\tDimension\x12\x13\n\tdim_value\x18\x01 \x01(\x03H\x00\x12\x13\n\tdim_param\x18\x02 \x01(\tH\x00\x12\x12\n\ndenotation\x18\x03 \x01(\tB\x07\n\x05value\"\xa5\x05\n\tTypeProto\x12-\n\x0btensor_type\x18\x01 \x01(\x0b\x32\x16.onnx.TypeProto.TensorH\x00\x12\x31\n\rsequence_type\x18\x04 \x01(\x0b\x32\x18.onnx.TypeProto.SequenceH\x00\x12\'\n\x08map_type\x18\x05 \x01(\x0b\x32\x13.onnx.TypeProto.MapH\x00\x12\x31\n\roptional_type\x18\t \x01(\x0b\x32\x18.onnx.TypeProto.OptionalH\x00\x12:\n\x12sparse_tensor_type\x18\x08 \x01(\x0b\x32\x1c.onnx.TypeProto.SparseTensorH\x00\x12-\n\x0bopaque_type\x18\x07 \x01(\x0b\x32\x16.onnx.TypeProto.OpaqueH\x00\x12\x12\n\ndenotation\x18\x06 \x01(\t\x1a\x42\n\x06Tensor\x12\x11\n\telem_type\x18\x01 \x01(\x05\x12%\n\x05shape\x18\x02 \x01(\x0b\x32\x16.onnx.TensorShapeProto\x1a.\n\x08Sequence\x12\"\n\telem_type\x18\x01 \x01(\x0b\x32\x0f.onnx.TypeProto\x1a<\n\x03Map\x12\x10\n\x08key_type\x18\x01 \x01(\x05\x12#\n\nvalue_type\x18\x02 \x01(\x0b\x32\x0f.onnx.TypeProto\x1a.\n\x08Optional\x12\"\n\telem_type\x18\x01 \x01(\x0b\x32\x0f.onnx.TypeProto\x1aH\n\x0cSparseTensor\x12\x11\n\telem_type\x18\x01 \x01(\x05\x12%\n\x05shape\x18\x02 \x01(\x0b\x32\x16.onnx.TensorShapeProto\x1a&\n\x06Opaque\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\tB\x07\n\x05value\"5\n\x12OperatorSetIdProto\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\x03\"\xe5\x01\n\rFunctionProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05input\x18\x04 \x03(\t\x12\x0e\n\x06output\x18\x05 \x03(\t\x12\x11\n\tattribute\x18\x06 \x03(\t\x12\x1d\n\x04node\x18\x07 \x03(\x0b\x32\x0f.onnx.NodeProto\x12\x12\n\ndoc_string\x18\x08 \x01(\t\x12.\n\x0copset_import\x18\t \x03(\x0b\x32\x18.onnx.OperatorSetIdProto\x12\x0e\n\x06\x64omain\x18\n \x01(\tJ\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04R\rsince_versionR\x06status*\xe4\x01\n\x07Version\x12\x12\n\x0e_START_VERSION\x10\x00\x12\x19\n\x15IR_VERSION_2017_10_10\x10\x01\x12\x19\n\x15IR_VERSION_2017_10_30\x10\x02\x12\x18\n\x14IR_VERSION_2017_11_3\x10\x03\x12\x18\n\x14IR_VERSION_2019_1_22\x10\x04\x12\x18\n\x14IR_VERSION_2019_3_18\x10\x05\x12\x18\n\x14IR_VERSION_2019_9_19\x10\x06\x12\x17\n\x13IR_VERSION_2020_5_8\x10\x07\x12\x0e\n\nIR_VERSION\x10\x08*.\n\x0eOperatorStatus\x12\x10\n\x0c\x45XPERIMENTAL\x10\x00\x12\n\n\x06STABLE\x10\x01\x42\x02H\x03')
16
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12onnx/onnx-ml.proto\x12\x04onnx\"\xcc\x05\n\x0e\x41ttributeProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rref_attr_name\x18\x15 \x01(\t\x12\x12\n\ndoc_string\x18\r \x01(\t\x12\x30\n\x04type\x18\x14 \x01(\x0e\x32\".onnx.AttributeProto.AttributeType\x12\t\n\x01\x66\x18\x02 \x01(\x02\x12\t\n\x01i\x18\x03 \x01(\x03\x12\t\n\x01s\x18\x04 \x01(\x0c\x12\x1c\n\x01t\x18\x05 \x01(\x0b\x32\x11.onnx.TensorProto\x12\x1b\n\x01g\x18\x06 \x01(\x0b\x32\x10.onnx.GraphProto\x12.\n\rsparse_tensor\x18\x16 \x01(\x0b\x32\x17.onnx.SparseTensorProto\x12\x1b\n\x02tp\x18\x0e \x01(\x0b\x32\x0f.onnx.TypeProto\x12\x0e\n\x06\x66loats\x18\x07 \x03(\x02\x12\x0c\n\x04ints\x18\x08 \x03(\x03\x12\x0f\n\x07strings\x18\t \x03(\x0c\x12\"\n\x07tensors\x18\n \x03(\x0b\x32\x11.onnx.TensorProto\x12 \n\x06graphs\x18\x0b \x03(\x0b\x32\x10.onnx.GraphProto\x12/\n\x0esparse_tensors\x18\x17 \x03(\x0b\x32\x17.onnx.SparseTensorProto\x12$\n\x0btype_protos\x18\x0f \x03(\x0b\x32\x0f.onnx.TypeProto\"\xd9\x01\n\rAttributeType\x12\r\n\tUNDEFINED\x10\x00\x12\t\n\x05\x46LOAT\x10\x01\x12\x07\n\x03INT\x10\x02\x12\n\n\x06STRING\x10\x03\x12\n\n\x06TENSOR\x10\x04\x12\t\n\x05GRAPH\x10\x05\x12\x11\n\rSPARSE_TENSOR\x10\x0b\x12\x0e\n\nTYPE_PROTO\x10\r\x12\n\n\x06\x46LOATS\x10\x06\x12\x08\n\x04INTS\x10\x07\x12\x0b\n\x07STRINGS\x10\x08\x12\x0b\n\x07TENSORS\x10\t\x12\n\n\x06GRAPHS\x10\n\x12\x12\n\x0eSPARSE_TENSORS\x10\x0c\x12\x0f\n\x0bTYPE_PROTOS\x10\x0e\"Q\n\x0eValueInfoProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x04type\x18\x02 \x01(\x0b\x32\x0f.onnx.TypeProto\x12\x12\n\ndoc_string\x18\x03 \x01(\t\"\x96\x01\n\tNodeProto\x12\r\n\x05input\x18\x01 \x03(\t\x12\x0e\n\x06output\x18\x02 \x03(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07op_type\x18\x04 \x01(\t\x12\x0e\n\x06\x64omain\x18\x07 \x01(\t\x12\'\n\tattribute\x18\x05 \x03(\x0b\x32\x14.onnx.AttributeProto\x12\x12\n\ndoc_string\x18\x06 \x01(\t\"\xd6\x01\n\x11TrainingInfoProto\x12(\n\x0einitialization\x18\x01 \x01(\x0b\x32\x10.onnx.GraphProto\x12#\n\talgorithm\x18\x02 \x01(\x0b\x32\x10.onnx.GraphProto\x12<\n\x16initialization_binding\x18\x03 \x03(\x0b\x32\x1c.onnx.StringStringEntryProto\x12\x34\n\x0eupdate_binding\x18\x04 \x03(\x0b\x32\x1c.onnx.StringStringEntryProto\"\xeb\x02\n\nModelProto\x12\x12\n\nir_version\x18\x01 \x01(\x03\x12.\n\x0copset_import\x18\x08 \x03(\x0b\x32\x18.onnx.OperatorSetIdProto\x12\x15\n\rproducer_name\x18\x02 \x01(\t\x12\x18\n\x10producer_version\x18\x03 \x01(\t\x12\x0e\n\x06\x64omain\x18\x04 \x01(\t\x12\x15\n\rmodel_version\x18\x05 \x01(\x03\x12\x12\n\ndoc_string\x18\x06 \x01(\t\x12\x1f\n\x05graph\x18\x07 \x01(\x0b\x32\x10.onnx.GraphProto\x12\x34\n\x0emetadata_props\x18\x0e \x03(\x0b\x32\x1c.onnx.StringStringEntryProto\x12.\n\rtraining_info\x18\x14 \x03(\x0b\x32\x17.onnx.TrainingInfoProto\x12&\n\tfunctions\x18\x19 \x03(\x0b\x32\x13.onnx.FunctionProto\"4\n\x16StringStringEntryProto\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"k\n\x10TensorAnnotation\x12\x13\n\x0btensor_name\x18\x01 \x01(\t\x12\x42\n\x1cquant_parameter_tensor_names\x18\x02 \x03(\x0b\x32\x1c.onnx.StringStringEntryProto\"\x9e\x03\n\nGraphProto\x12\x1d\n\x04node\x18\x01 \x03(\x0b\x32\x0f.onnx.NodeProto\x12\x0c\n\x04name\x18\x02 \x01(\t\x12&\n\x0binitializer\x18\x05 \x03(\x0b\x32\x11.onnx.TensorProto\x12\x33\n\x12sparse_initializer\x18\x0f \x03(\x0b\x32\x17.onnx.SparseTensorProto\x12\x12\n\ndoc_string\x18\n \x01(\t\x12#\n\x05input\x18\x0b \x03(\x0b\x32\x14.onnx.ValueInfoProto\x12$\n\x06output\x18\x0c \x03(\x0b\x32\x14.onnx.ValueInfoProto\x12(\n\nvalue_info\x18\r \x03(\x0b\x32\x14.onnx.ValueInfoProto\x12\x37\n\x17quantization_annotation\x18\x0e \x03(\x0b\x32\x16.onnx.TensorAnnotationJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x06\x10\nR\nir_versionR\x10producer_versionR\x0cproducer_tagR\x06\x64omain\"\x82\x06\n\x0bTensorProto\x12\x0c\n\x04\x64ims\x18\x01 \x03(\x03\x12\x11\n\tdata_type\x18\x02 \x01(\x05\x12*\n\x07segment\x18\x03 \x01(\x0b\x32\x19.onnx.TensorProto.Segment\x12\x16\n\nfloat_data\x18\x04 \x03(\x02\x42\x02\x10\x01\x12\x16\n\nint32_data\x18\x05 \x03(\x05\x42\x02\x10\x01\x12\x13\n\x0bstring_data\x18\x06 \x03(\x0c\x12\x16\n\nint64_data\x18\x07 \x03(\x03\x42\x02\x10\x01\x12\x0c\n\x04name\x18\x08 \x01(\t\x12\x12\n\ndoc_string\x18\x0c \x01(\t\x12\x10\n\x08raw_data\x18\t \x01(\x0c\x12\x33\n\rexternal_data\x18\r \x03(\x0b\x32\x1c.onnx.StringStringEntryProto\x12\x35\n\rdata_location\x18\x0e \x01(\x0e\x32\x1e.onnx.TensorProto.DataLocation\x12\x17\n\x0b\x64ouble_data\x18\n \x03(\x01\x42\x02\x10\x01\x12\x17\n\x0buint64_data\x18\x0b \x03(\x04\x42\x02\x10\x01\x1a%\n\x07Segment\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x03\"\xa4\x02\n\x08\x44\x61taType\x12\r\n\tUNDEFINED\x10\x00\x12\t\n\x05\x46LOAT\x10\x01\x12\t\n\x05UINT8\x10\x02\x12\x08\n\x04INT8\x10\x03\x12\n\n\x06UINT16\x10\x04\x12\t\n\x05INT16\x10\x05\x12\t\n\x05INT32\x10\x06\x12\t\n\x05INT64\x10\x07\x12\n\n\x06STRING\x10\x08\x12\x08\n\x04\x42OOL\x10\t\x12\x0b\n\x07\x46LOAT16\x10\n\x12\n\n\x06\x44OUBLE\x10\x0b\x12\n\n\x06UINT32\x10\x0c\x12\n\n\x06UINT64\x10\r\x12\r\n\tCOMPLEX64\x10\x0e\x12\x0e\n\nCOMPLEX128\x10\x0f\x12\x0c\n\x08\x42\x46LOAT16\x10\x10\x12\x10\n\x0c\x46LOAT8E4M3FN\x10\x11\x12\x12\n\x0e\x46LOAT8E4M3FNUZ\x10\x12\x12\x0e\n\nFLOAT8E5M2\x10\x13\x12\x12\n\x0e\x46LOAT8E5M2FNUZ\x10\x14\")\n\x0c\x44\x61taLocation\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08\x45XTERNAL\x10\x01\"h\n\x11SparseTensorProto\x12!\n\x06values\x18\x01 \x01(\x0b\x32\x11.onnx.TensorProto\x12\"\n\x07indices\x18\x02 \x01(\x0b\x32\x11.onnx.TensorProto\x12\x0c\n\x04\x64ims\x18\x03 \x03(\x03\"\x95\x01\n\x10TensorShapeProto\x12-\n\x03\x64im\x18\x01 \x03(\x0b\x32 .onnx.TensorShapeProto.Dimension\x1aR\n\tDimension\x12\x13\n\tdim_value\x18\x01 \x01(\x03H\x00\x12\x13\n\tdim_param\x18\x02 \x01(\tH\x00\x12\x12\n\ndenotation\x18\x03 \x01(\tB\x07\n\x05value\"\xa5\x05\n\tTypeProto\x12-\n\x0btensor_type\x18\x01 \x01(\x0b\x32\x16.onnx.TypeProto.TensorH\x00\x12\x31\n\rsequence_type\x18\x04 \x01(\x0b\x32\x18.onnx.TypeProto.SequenceH\x00\x12\'\n\x08map_type\x18\x05 \x01(\x0b\x32\x13.onnx.TypeProto.MapH\x00\x12\x31\n\roptional_type\x18\t \x01(\x0b\x32\x18.onnx.TypeProto.OptionalH\x00\x12:\n\x12sparse_tensor_type\x18\x08 \x01(\x0b\x32\x1c.onnx.TypeProto.SparseTensorH\x00\x12-\n\x0bopaque_type\x18\x07 \x01(\x0b\x32\x16.onnx.TypeProto.OpaqueH\x00\x12\x12\n\ndenotation\x18\x06 \x01(\t\x1a\x42\n\x06Tensor\x12\x11\n\telem_type\x18\x01 \x01(\x05\x12%\n\x05shape\x18\x02 \x01(\x0b\x32\x16.onnx.TensorShapeProto\x1a.\n\x08Sequence\x12\"\n\telem_type\x18\x01 \x01(\x0b\x32\x0f.onnx.TypeProto\x1a<\n\x03Map\x12\x10\n\x08key_type\x18\x01 \x01(\x05\x12#\n\nvalue_type\x18\x02 \x01(\x0b\x32\x0f.onnx.TypeProto\x1a.\n\x08Optional\x12\"\n\telem_type\x18\x01 \x01(\x0b\x32\x0f.onnx.TypeProto\x1aH\n\x0cSparseTensor\x12\x11\n\telem_type\x18\x01 \x01(\x05\x12%\n\x05shape\x18\x02 \x01(\x0b\x32\x16.onnx.TensorShapeProto\x1a&\n\x06Opaque\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\tB\x07\n\x05value\"5\n\x12OperatorSetIdProto\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\x03\"\x94\x02\n\rFunctionProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05input\x18\x04 \x03(\t\x12\x0e\n\x06output\x18\x05 \x03(\t\x12\x11\n\tattribute\x18\x06 \x03(\t\x12-\n\x0f\x61ttribute_proto\x18\x0b \x03(\x0b\x32\x14.onnx.AttributeProto\x12\x1d\n\x04node\x18\x07 \x03(\x0b\x32\x0f.onnx.NodeProto\x12\x12\n\ndoc_string\x18\x08 \x01(\t\x12.\n\x0copset_import\x18\t \x03(\x0b\x32\x18.onnx.OperatorSetIdProto\x12\x0e\n\x06\x64omain\x18\n \x01(\tJ\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04R\rsince_versionR\x06status*\xfe\x01\n\x07Version\x12\x12\n\x0e_START_VERSION\x10\x00\x12\x19\n\x15IR_VERSION_2017_10_10\x10\x01\x12\x19\n\x15IR_VERSION_2017_10_30\x10\x02\x12\x18\n\x14IR_VERSION_2017_11_3\x10\x03\x12\x18\n\x14IR_VERSION_2019_1_22\x10\x04\x12\x18\n\x14IR_VERSION_2019_3_18\x10\x05\x12\x18\n\x14IR_VERSION_2019_9_19\x10\x06\x12\x17\n\x13IR_VERSION_2020_5_8\x10\x07\x12\x18\n\x14IR_VERSION_2021_7_30\x10\x08\x12\x0e\n\nIR_VERSION\x10\t*.\n\x0eOperatorStatus\x12\x10\n\x0c\x45XPERIMENTAL\x10\x00\x12\n\n\x06STABLE\x10\x01\x42\x02H\x03')
17
17
 
18
18
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
19
19
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'onnx.onnx_ml_pb2', globals())
@@ -31,10 +31,10 @@ if _descriptor._USE_C_DESCRIPTORS == False:
31
31
  _TENSORPROTO.fields_by_name['double_data']._serialized_options = b'\020\001'
32
32
  _TENSORPROTO.fields_by_name['uint64_data']._options = None
33
33
  _TENSORPROTO.fields_by_name['uint64_data']._serialized_options = b'\020\001'
34
- _VERSION._serialized_start=4071
35
- _VERSION._serialized_end=4299
36
- _OPERATORSTATUS._serialized_start=4301
37
- _OPERATORSTATUS._serialized_end=4347
34
+ _VERSION._serialized_start=4192
35
+ _VERSION._serialized_end=4446
36
+ _OPERATORSTATUS._serialized_start=4448
37
+ _OPERATORSTATUS._serialized_end=4494
38
38
  _ATTRIBUTEPROTO._serialized_start=29
39
39
  _ATTRIBUTEPROTO._serialized_end=745
40
40
  _ATTRIBUTEPROTO_ATTRIBUTETYPE._serialized_start=528
@@ -54,35 +54,35 @@ if _descriptor._USE_C_DESCRIPTORS == False:
54
54
  _GRAPHPROTO._serialized_start=1730
55
55
  _GRAPHPROTO._serialized_end=2144
56
56
  _TENSORPROTO._serialized_start=2147
57
- _TENSORPROTO._serialized_end=2843
57
+ _TENSORPROTO._serialized_end=2917
58
58
  _TENSORPROTO_SEGMENT._serialized_start=2542
59
59
  _TENSORPROTO_SEGMENT._serialized_end=2579
60
60
  _TENSORPROTO_DATATYPE._serialized_start=2582
61
- _TENSORPROTO_DATATYPE._serialized_end=2800
62
- _TENSORPROTO_DATALOCATION._serialized_start=2802
63
- _TENSORPROTO_DATALOCATION._serialized_end=2843
64
- _SPARSETENSORPROTO._serialized_start=2845
65
- _SPARSETENSORPROTO._serialized_end=2949
66
- _TENSORSHAPEPROTO._serialized_start=2952
67
- _TENSORSHAPEPROTO._serialized_end=3101
68
- _TENSORSHAPEPROTO_DIMENSION._serialized_start=3019
69
- _TENSORSHAPEPROTO_DIMENSION._serialized_end=3101
70
- _TYPEPROTO._serialized_start=3104
71
- _TYPEPROTO._serialized_end=3781
72
- _TYPEPROTO_TENSOR._serialized_start=3434
73
- _TYPEPROTO_TENSOR._serialized_end=3500
74
- _TYPEPROTO_SEQUENCE._serialized_start=3502
75
- _TYPEPROTO_SEQUENCE._serialized_end=3548
76
- _TYPEPROTO_MAP._serialized_start=3550
77
- _TYPEPROTO_MAP._serialized_end=3610
78
- _TYPEPROTO_OPTIONAL._serialized_start=3612
79
- _TYPEPROTO_OPTIONAL._serialized_end=3658
80
- _TYPEPROTO_SPARSETENSOR._serialized_start=3660
81
- _TYPEPROTO_SPARSETENSOR._serialized_end=3732
82
- _TYPEPROTO_OPAQUE._serialized_start=3734
83
- _TYPEPROTO_OPAQUE._serialized_end=3772
84
- _OPERATORSETIDPROTO._serialized_start=3783
85
- _OPERATORSETIDPROTO._serialized_end=3836
86
- _FUNCTIONPROTO._serialized_start=3839
87
- _FUNCTIONPROTO._serialized_end=4068
61
+ _TENSORPROTO_DATATYPE._serialized_end=2874
62
+ _TENSORPROTO_DATALOCATION._serialized_start=2876
63
+ _TENSORPROTO_DATALOCATION._serialized_end=2917
64
+ _SPARSETENSORPROTO._serialized_start=2919
65
+ _SPARSETENSORPROTO._serialized_end=3023
66
+ _TENSORSHAPEPROTO._serialized_start=3026
67
+ _TENSORSHAPEPROTO._serialized_end=3175
68
+ _TENSORSHAPEPROTO_DIMENSION._serialized_start=3093
69
+ _TENSORSHAPEPROTO_DIMENSION._serialized_end=3175
70
+ _TYPEPROTO._serialized_start=3178
71
+ _TYPEPROTO._serialized_end=3855
72
+ _TYPEPROTO_TENSOR._serialized_start=3508
73
+ _TYPEPROTO_TENSOR._serialized_end=3574
74
+ _TYPEPROTO_SEQUENCE._serialized_start=3576
75
+ _TYPEPROTO_SEQUENCE._serialized_end=3622
76
+ _TYPEPROTO_MAP._serialized_start=3624
77
+ _TYPEPROTO_MAP._serialized_end=3684
78
+ _TYPEPROTO_OPTIONAL._serialized_start=3686
79
+ _TYPEPROTO_OPTIONAL._serialized_end=3732
80
+ _TYPEPROTO_SPARSETENSOR._serialized_start=3734
81
+ _TYPEPROTO_SPARSETENSOR._serialized_end=3806
82
+ _TYPEPROTO_OPAQUE._serialized_start=3808
83
+ _TYPEPROTO_OPAQUE._serialized_end=3846
84
+ _OPERATORSETIDPROTO._serialized_start=3857
85
+ _OPERATORSETIDPROTO._serialized_end=3910
86
+ _FUNCTIONPROTO._serialized_start=3913
87
+ _FUNCTIONPROTO._serialized_end=4189
88
88
  # @@protoc_insertion_point(module_scope)
onnx/onnx_ml_pb2.pyi CHANGED
@@ -1,4 +1,5 @@
1
- # @generated by generate_proto_mypy_stubs.py. Do not edit!
1
+ # @generated by protoc-gen-mypy.py. Do not edit!
2
+ # mypy: disable-error-code=override
2
3
  from typing import (
3
4
  Iterable,
4
5
  List,
@@ -35,7 +36,8 @@ IR_VERSION_2019_1_22 = cast(Version, 4)
35
36
  IR_VERSION_2019_3_18 = cast(Version, 5)
36
37
  IR_VERSION_2019_9_19 = cast(Version, 6)
37
38
  IR_VERSION_2020_5_8 = cast(Version, 7)
38
- IR_VERSION = cast(Version, 8)
39
+ IR_VERSION_2021_7_30 = cast(Version, 8)
40
+ IR_VERSION = cast(Version, 9)
39
41
 
40
42
  class OperatorStatus(int):
41
43
  @classmethod
@@ -345,6 +347,10 @@ class TensorProto(Message):
345
347
  COMPLEX64 = cast(DataType, 14)
346
348
  COMPLEX128 = cast(DataType, 15)
347
349
  BFLOAT16 = cast(DataType, 16)
350
+ FLOAT8E4M3FN = cast(DataType, 17)
351
+ FLOAT8E4M3FNUZ = cast(DataType, 18)
352
+ FLOAT8E5M2 = cast(DataType, 19)
353
+ FLOAT8E5M2FNUZ = cast(DataType, 20)
348
354
 
349
355
  class DataLocation(int):
350
356
  @classmethod
@@ -600,6 +606,9 @@ class FunctionProto(Message):
600
606
  doc_string = ... # type: str
601
607
  domain = ... # type: str
602
608
 
609
+ @property
610
+ def attribute_proto(self) -> RepeatedCompositeFieldContainer[AttributeProto]: ...
611
+
603
612
  @property
604
613
  def node(self) -> RepeatedCompositeFieldContainer[NodeProto]: ...
605
614
 
@@ -611,6 +620,7 @@ class FunctionProto(Message):
611
620
  input : OptionalType[Iterable[str]] = None,
612
621
  output : OptionalType[Iterable[str]] = None,
613
622
  attribute : OptionalType[Iterable[str]] = None,
623
+ attribute_proto : OptionalType[Iterable[AttributeProto]] = None,
614
624
  node : OptionalType[Iterable[NodeProto]] = None,
615
625
  doc_string : OptionalType[str] = None,
616
626
  opset_import : OptionalType[Iterable[OperatorSetIdProto]] = None,
@@ -1,4 +1,5 @@
1
- # @generated by generate_proto_mypy_stubs.py. Do not edit!
1
+ # @generated by protoc-gen-mypy.py. Do not edit!
2
+ # mypy: disable-error-code=override
2
3
  from google.protobuf.message import ( # type: ignore
3
4
  Message,
4
5
  )
onnx/parser.py CHANGED
@@ -1,6 +1,9 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+ #
1
3
  # SPDX-License-Identifier: Apache-2.0
4
+
2
5
  import onnx
3
- import onnx.onnx_cpp2py_export.parser as C
6
+ import onnx.onnx_cpp2py_export.parser as C # noqa: N812
4
7
 
5
8
 
6
9
  class ParseError(Exception):
@@ -18,8 +21,7 @@ def parse_model(model_text: str) -> onnx.ModelProto:
18
21
  (success, msg, model_proto_str) = C.parse_model(model_text)
19
22
  if success:
20
23
  return onnx.load_from_string(model_proto_str)
21
- else:
22
- raise ParseError(msg)
24
+ raise ParseError(msg)
23
25
 
24
26
 
25
27
  def parse_graph(graph_text: str) -> onnx.GraphProto:
@@ -32,11 +34,10 @@ def parse_graph(graph_text: str) -> onnx.GraphProto:
32
34
  """
33
35
  (success, msg, graph_proto_str) = C.parse_graph(graph_text)
34
36
  if success:
35
- G = onnx.GraphProto()
36
- G.ParseFromString(graph_proto_str)
37
- return G
38
- else:
39
- raise ParseError(msg)
37
+ graph_proto = onnx.GraphProto()
38
+ graph_proto.ParseFromString(graph_proto_str)
39
+ return graph_proto
40
+ raise ParseError(msg)
40
41
 
41
42
 
42
43
  def parse_function(function_text: str) -> onnx.FunctionProto:
@@ -49,8 +50,23 @@ def parse_function(function_text: str) -> onnx.FunctionProto:
49
50
  """
50
51
  (success, msg, function_proto_str) = C.parse_function(function_text)
51
52
  if success:
52
- F = onnx.FunctionProto()
53
- F.ParseFromString(function_proto_str)
54
- return F
55
- else:
56
- raise ParseError(msg)
53
+ function_proto = onnx.FunctionProto()
54
+ function_proto.ParseFromString(function_proto_str)
55
+ return function_proto
56
+ raise ParseError(msg)
57
+
58
+
59
+ def parse_node(node_text: str) -> onnx.NodeProto:
60
+ """Parse a string to build a NodeProto.
61
+
62
+ Arguments:
63
+ node_text: formatted string
64
+ Returns:
65
+ NodeProto
66
+ """
67
+ (success, msg, node_proto_str) = C.parse_node(node_text)
68
+ if success:
69
+ node_proto = onnx.NodeProto()
70
+ node_proto.ParseFromString(node_proto_str)
71
+ return node_proto
72
+ raise ParseError(msg)
onnx/printer.py CHANGED
@@ -1,16 +1,18 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+ #
1
3
  # SPDX-License-Identifier: Apache-2.0
2
4
 
3
- from typing import Text, Union
5
+ from typing import Union
4
6
 
5
7
  import onnx
6
- import onnx.onnx_cpp2py_export.printer as C
8
+ import onnx.onnx_cpp2py_export.printer as C # noqa: N812
7
9
 
8
10
 
9
- def to_text(proto: Union[onnx.ModelProto, onnx.FunctionProto, onnx.GraphProto]) -> Text:
11
+ def to_text(proto: Union[onnx.ModelProto, onnx.FunctionProto, onnx.GraphProto]) -> str:
10
12
  if isinstance(proto, onnx.ModelProto):
11
13
  return C.model_to_text(proto.SerializeToString())
12
14
  if isinstance(proto, onnx.FunctionProto):
13
15
  return C.function_to_text(proto.SerializeToString())
14
16
  if isinstance(proto, onnx.GraphProto):
15
17
  return C.graph_to_text(proto.SerializeToString())
16
- return TypeError("Unsupported argument type.")
18
+ raise TypeError("Unsupported argument type.")
onnx/proto_utils.h CHANGED
@@ -1,6 +1,6 @@
1
- /*
2
- * SPDX-License-Identifier: Apache-2.0
3
- */
1
+ // Copyright (c) ONNX Project Contributors
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
4
 
5
5
  #pragma once
6
6
 
onnx/py_utils.h CHANGED
@@ -1,6 +1,6 @@
1
- /*
2
- * SPDX-License-Identifier: Apache-2.0
3
- */
1
+ // Copyright (c) ONNX Project Contributors
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
4
 
5
5
  #pragma once
6
6
 
@@ -1,3 +1,5 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+ #
1
3
  # SPDX-License-Identifier: Apache-2.0
2
4
 
3
5
  from onnx.reference.reference_evaluator import ReferenceEvaluator
@@ -0,0 +1,11 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ import numpy as np
6
+
7
+ bfloat16 = np.dtype((np.uint16, {"bfloat16": (np.uint16, 0)}))
8
+ float8e4m3fn = np.dtype((np.uint8, {"e4m3fn": (np.uint8, 0)}))
9
+ float8e4m3fnuz = np.dtype((np.uint8, {"e4m3fnuz": (np.uint8, 0)}))
10
+ float8e5m2 = np.dtype((np.uint8, {"e5m2": (np.uint8, 0)}))
11
+ float8e5m2fnuz = np.dtype((np.uint8, {"e5m2fnuz": (np.uint8, 0)}))
onnx/reference/op_run.py CHANGED
@@ -6,10 +6,18 @@ from typing import Any, Dict, Iterable, List, Optional, Tuple
6
6
 
7
7
  import numpy as np
8
8
 
9
+ from onnx import TensorProto
9
10
  from onnx.defs import get_all_schemas_with_history, get_schema, onnx_opset_version
10
11
  from onnx.helper import make_node
11
12
  from onnx.numpy_helper import to_array
12
13
  from onnx.onnx_pb import AttributeProto, GraphProto, NodeProto, TypeProto
14
+ from onnx.reference.custom_element_types import (
15
+ bfloat16,
16
+ float8e4m3fn,
17
+ float8e4m3fnuz,
18
+ float8e5m2,
19
+ float8e5m2fnuz,
20
+ )
13
21
 
14
22
 
15
23
  def _split_class_name(name): # type: ignore
@@ -118,10 +126,46 @@ def to_sparse_tensor(att: AttributeProto) -> SparseTensor:
118
126
  """
119
127
  Hosts a sparse tensor.
120
128
  """
121
- shape = tuple(d for d in att.dims)
129
+ shape = tuple(d for d in att.dims) # type: ignore[attr-defined]
122
130
  return SparseTensor(to_array(att.values), to_array(att.indices), shape) # type: ignore
123
131
 
124
132
 
133
+ def to_array_extended(tensor: TensorProto) -> np.ndarray:
134
+ """
135
+ Similar to :func:`to_array` but deals with bfloat16,
136
+ float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz.
137
+ """
138
+ elem_type = tensor.data_type
139
+ if elem_type == TensorProto.BFLOAT16:
140
+ data = tensor.int32_data
141
+ shape = tuple(tensor.dims)
142
+ y = np.empty(shape, dtype=bfloat16).ravel()
143
+ for i, d in enumerate(data):
144
+ y[i] = d
145
+ return y.reshape(shape)
146
+
147
+ if elem_type in (
148
+ TensorProto.FLOAT8E4M3FN,
149
+ TensorProto.FLOAT8E4M3FNUZ,
150
+ TensorProto.FLOAT8E5M2,
151
+ TensorProto.FLOAT8E5M2FNUZ,
152
+ ):
153
+ m = {
154
+ TensorProto.FLOAT8E4M3FN: float8e4m3fn,
155
+ TensorProto.FLOAT8E4M3FNUZ: float8e4m3fnuz,
156
+ TensorProto.FLOAT8E5M2: float8e5m2,
157
+ TensorProto.FLOAT8E5M2FNUZ: float8e5m2fnuz,
158
+ }
159
+
160
+ data = tensor.int32_data
161
+ shape = tuple(tensor.dims)
162
+ y = np.empty(shape, dtype=m[elem_type]).ravel() # type: ignore[index]
163
+ for i, d in enumerate(data):
164
+ y[i] = d
165
+ return y.reshape(shape)
166
+ return to_array(tensor)
167
+
168
+
125
169
  class Graph:
126
170
  __slots__ = ["g"]
127
171
 
@@ -133,7 +177,7 @@ class OpRun(ABC):
133
177
  """
134
178
  Ancestor to all operators in this subfolder.
135
179
 
136
- :param onnx_node: :epkg:`onnx` node
180
+ :param onnx_node: `onnx` node
137
181
  :param run_params: additional parameters such as `verbose`, `opsets`
138
182
  (it can be more than one if the operator has a subgraph),
139
183
  `log` for a logging function
@@ -155,8 +199,8 @@ class OpRun(ABC):
155
199
  ],
156
200
  AttributeProto.STRING: lambda att: att.s.decode("utf-8"),
157
201
  AttributeProto.STRINGS: lambda att: [s.decode("utf-8") for s in att.strings],
158
- AttributeProto.TENSOR: lambda att: to_array(att.t),
159
- AttributeProto.TENSORS: lambda att: [to_array(t) for t in att.tensors],
202
+ AttributeProto.TENSOR: lambda att: to_array_extended(att.t),
203
+ AttributeProto.TENSORS: lambda att: [to_array_extended(t) for t in att.tensors],
160
204
  AttributeProto.TYPE_PROTO: lambda att: OnnxType(att.tp),
161
205
  AttributeProto.TYPE_PROTOS: lambda att: [OnnxType(t) for t in att.type_protos],
162
206
  }
@@ -166,12 +210,20 @@ class OpRun(ABC):
166
210
  ):
167
211
  if not isinstance(run_params, dict):
168
212
  raise TypeError(f"run_params must be a dictionary not {type(run_params)}.")
213
+ for att in ["opsets", "new_ops"]:
214
+ if att not in run_params:
215
+ raise RuntimeError(
216
+ f"Attribute {att!r} must be in run_params, only "
217
+ f"{list(sorted(run_params))} was found."
218
+ )
169
219
  if "log" not in run_params:
170
220
  raise KeyError("run_params must contains key 'log'.")
171
221
  self.onnx_node = onnx_node
172
222
  self.run_params = run_params
173
223
  if schema is None:
174
- if self.__class__.__name__ in _schemas:
224
+ if hasattr(self.__class__, "op_schema"):
225
+ self._schema = self.__class__.op_schema
226
+ elif self.__class__.__name__ in _schemas:
175
227
  self._schema = _schemas[self.__class__.__name__]
176
228
  elif onnx_node.op_type in _schemas:
177
229
  self._schema = _schemas[onnx_node.op_type]
@@ -179,6 +231,7 @@ class OpRun(ABC):
179
231
  self._schema = None # type: ignore
180
232
  else:
181
233
  self._schema = schema
234
+ self.has_subgraph = False
182
235
  self._load_attributes()
183
236
 
184
237
  def _log(self, pattern, *args): # type: ignore
@@ -191,12 +244,16 @@ class OpRun(ABC):
191
244
  Converts an attribute value into a python value.
192
245
  """
193
246
  if att.type == AttributeProto.GRAPH:
194
- from .reference_evaluator import ReferenceEvaluator # type: ignore
247
+ from onnx.reference.reference_evaluator import (
248
+ ReferenceEvaluator, # type: ignore
249
+ )
195
250
 
251
+ new_ops = self.run_params.get("new_ops", None)
196
252
  return ReferenceEvaluator(
197
253
  att.g,
198
254
  opsets=self.run_params["opsets"],
199
255
  verbose=max(0, self.run_params.get("verbose", 0) - 2),
256
+ new_ops=None if new_ops is None else new_ops.values(),
200
257
  )
201
258
  if att.type in OpRun._attribute_conversion_functions:
202
259
  return OpRun._attribute_conversion_functions[att.type](att) # type: ignore
@@ -212,6 +269,10 @@ class OpRun(ABC):
212
269
  f"domain {self.onnx_node.domain!r}\n{att}\n{ref_att}."
213
270
  )
214
271
 
272
+ @staticmethod
273
+ def _evaluate_subgraph(context, value, attributes):
274
+ return value.run(None, context or {}, attributes=attributes)
275
+
215
276
  def _load_attributes(self) -> None:
216
277
  "Checks and loads attributes."
217
278
  self.has_linked_attribute = False
@@ -226,10 +287,14 @@ class OpRun(ABC):
226
287
  setattr(self, name, value)
227
288
  added_attributes.append(name)
228
289
  if att.type == AttributeProto.GRAPH:
290
+ self.has_subgraph = True
291
+ self.has_linked_attribute |= value.has_linked_attribute # type: ignore
229
292
  setattr(
230
293
  self,
231
294
  f"_run_{att.name}",
232
- lambda context, value=value: value.run(None, context or {}),
295
+ lambda context, value=value, attributes=None: OpRun._evaluate_subgraph(
296
+ context, value, attributes
297
+ ),
233
298
  )
234
299
 
235
300
  if self._schema and self.onnx_node.op_type not in {"Constant"}:
@@ -387,6 +452,12 @@ class OpRun(ABC):
387
452
  f"Attribute {att!r} is missing in operator {self.__class__.__name__!r}."
388
453
  )
389
454
  kwargs[att] = getattr(self, att)
455
+ if self.has_subgraph:
456
+ if self.has_linked_attribute and len(linked_attributes) == 0:
457
+ raise RuntimeError(
458
+ f"A subgraph has linked attribute but none was given to {type(self)}."
459
+ )
460
+ kwargs["attributes"] = linked_attributes
390
461
  if context is not None:
391
462
  kwargs["context"] = context
392
463
  try:
@@ -484,7 +555,12 @@ class OpRun(ABC):
484
555
  print(pattern % tuple(args))
485
556
 
486
557
  node = cls.make_node(n_inputs, n_outputs, **kwargs)
487
- run_params = dict(verbose=verbose, log=log_function)
558
+ run_params = dict(
559
+ verbose=verbose,
560
+ log=log_function,
561
+ new_ops=None,
562
+ opsets={"": onnx_opset_version()},
563
+ )
488
564
  cl = cls(node, run_params)
489
565
  return cl
490
566
 
@@ -1,3 +1,7 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+
3
+ # Copyright (c) ONNX Project Contributors
4
+ #
1
5
  # SPDX-License-Identifier: Apache-2.0
2
6
 
3
- from ._op_list import load_op
7
+ from onnx.reference.ops._op_list import load_op
@@ -0,0 +1,55 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+
3
+ # Copyright (c) ONNX Project Contributors
4
+ #
5
+ # SPDX-License-Identifier: Apache-2.0
6
+
7
+ from typing import Any, Dict, Union
8
+
9
+ from onnx.reference.op_run import OpRun, _split_class_name
10
+
11
+
12
+ def build_registered_operators_any_domain(
13
+ module_context: Dict[str, Any]
14
+ ) -> Dict[str, Dict[Union[int, None], OpRun]]:
15
+ reg_ops: Dict[str, Dict[Union[int, None], OpRun]] = {}
16
+ for class_name, class_type in module_context.items():
17
+ if class_name.startswith("_") or class_name in {
18
+ "Any",
19
+ "Dict",
20
+ "List",
21
+ "TOptional",
22
+ "Union",
23
+ "cl",
24
+ "class_name",
25
+ "get_schema",
26
+ "module_context",
27
+ "textwrap",
28
+ }:
29
+ continue
30
+ if isinstance(class_type, type(build_registered_operators_any_domain)):
31
+ continue
32
+ try:
33
+ issub = issubclass(class_type, OpRun)
34
+ except TypeError as e:
35
+ raise TypeError(
36
+ f"Unexpected variable type {class_type!r} and class_name={class_name!r}."
37
+ ) from e
38
+ if issub:
39
+ op_type, op_version = _split_class_name(class_name)
40
+ if op_type not in reg_ops:
41
+ reg_ops[op_type] = {}
42
+ reg_ops[op_type][op_version] = class_type
43
+ if not reg_ops:
44
+ raise RuntimeError(
45
+ "No registered operator. This error happens when no implementation "
46
+ "of type 'OpRun' was detected. It may be due to an error during installation. Please try reinstalling onnx."
47
+ )
48
+ # Set default implementation to the latest one.
49
+ for impl in reg_ops.values():
50
+ if None in impl:
51
+ # default already exists
52
+ continue
53
+ max_version = max(impl) # type: ignore[type-var]
54
+ impl[None] = impl[max_version]
55
+ return reg_ops
onnx/reference/ops/_op.py CHANGED
@@ -1,3 +1,5 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+
1
3
  # SPDX-License-Identifier: Apache-2.0
2
4
 
3
5
  from typing import Any, Dict
@@ -169,16 +171,21 @@ class OpRunReduceNumpy(OpRun): # type: ignore
169
171
  self.axes = tuple(self.axes)
170
172
 
171
173
  def is_axes_empty(self, axes):
172
- return axes is None or len(axes.shape) == 0 or axes.shape[0] == 0
174
+ return axes is None
173
175
 
174
176
  def handle_axes(self, axes):
175
- if (
176
- axes is not None and len(axes.shape) > 0 and axes.shape[0] > 0
177
- ) and not isinstance(axes, int):
178
- if isinstance(axes, np.ndarray) and len(axes.shape) == 0:
179
- axes = int(axes)
180
- else:
181
- axes = tuple(axes.ravel().tolist()) if len(axes) > 0 else None
182
- if isinstance(axes, np.ndarray) and (len(axes.shape) == 0 or 0 in axes.shape):
183
- axes = None
184
- return axes
177
+ if isinstance(axes, tuple):
178
+ if len(axes) == 0:
179
+ return None
180
+ return axes
181
+ if axes is None:
182
+ return None
183
+ if isinstance(axes, (int, tuple)):
184
+ return axes
185
+ if not isinstance(axes, np.ndarray):
186
+ raise TypeError(f"axes must be an array, not {type(axes)}.")
187
+ if len(axes.shape) == 0:
188
+ return int(axes)
189
+ if 0 in axes.shape:
190
+ return None
191
+ return tuple(axes.ravel().tolist())
@@ -1,3 +1,5 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+
1
3
  # SPDX-License-Identifier: Apache-2.0
2
4
  # pylint: disable=W0221
3
5
 
@@ -1,3 +1,5 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+
1
3
  # SPDX-License-Identifier: Apache-2.0
2
4
  # pylint: disable=W0221,R0913,R0914
3
5
 
@@ -7,8 +9,7 @@ from typing import Optional, Tuple
7
9
  import numpy as np
8
10
 
9
11
  from onnx.reference.op_run import OpRun
10
-
11
- from ._op_common_indices import _get_index, _get_indices
12
+ from onnx.reference.ops._op_common_indices import _get_index, _get_indices
12
13
 
13
14
 
14
15
  def _get_pad_shape(
@@ -138,7 +139,7 @@ def _pool(
138
139
  f"Pooling type {pooling_type!r} does not support. Should be AVG, MAX."
139
140
  )
140
141
  spatial_size = len(x_shape) - 2
141
- y = np.zeros([x_shape[0], x_shape[1]] + list(out_shape)) # type: ignore
142
+ y = np.zeros([x_shape[0], x_shape[1], *list(out_shape)]) # type: ignore
142
143
  if indices:
143
144
  z = np.full(y.shape, fill_value=-1, dtype=np.int64)
144
145
  round_fct = np.ceil if ceil_mode else np.floor
@@ -212,13 +213,6 @@ class CommonPool(OpRun):
212
213
  storage_order=None, # pylint: disable=W0613
213
214
  strides=None,
214
215
  ):
215
-
216
- auto_pad = auto_pad or self.auto_pad # type: ignore
217
- ceil_mode = ceil_mode or self.ceil_mode # type: ignore
218
- kernel_shape = kernel_shape or self.kernel_shape # type: ignore
219
- pads = pads or self.pads # type: ignore
220
- strides = strides or self.strides # type: ignore
221
-
222
216
  if pooling_type == "MAX" and dilations is None:
223
217
  dilations = [1 for s in kernel_shape]
224
218
  if pads is None:
@@ -1,3 +1,5 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+
1
3
  # SPDX-License-Identifier: Apache-2.0
2
4
  # pylint: disable=W0221
3
5
 
@@ -1,3 +1,5 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+
1
3
  # SPDX-License-Identifier: Apache-2.0
2
4
  # pylint: disable=W0613,W0221
3
5