onnx 1.13.1__cp37-cp37m-macosx_10_12_universal2.whl → 1.14.1__cp37-cp37m-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 -6
  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 -3
  15. onnx/backend/test/case/model/sign.py +4 -3
  16. onnx/backend/test/case/model/single-relu.py +4 -3
  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 +4 -3
  30. onnx/backend/test/case/node/argmin.py +4 -3
  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 +4 -3
  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 +103 -9
  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 -3
  56. onnx/backend/test/case/node/convinteger.py +4 -3
  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 -3
  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 -3
  83. onnx/backend/test/case/node/globalmaxpool.py +4 -3
  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 -3
  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 +9 -0
  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 +146 -39
  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 +26 -9
  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 +32 -46
  705. onnx/defs/gen_shape_inference_information.py +2 -0
  706. onnx/defs/generator/defs.cc +21 -19
  707. onnx/defs/generator/old.cc +159 -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 +50 -3
  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 +500 -566
  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 +6 -6
  741. onnx/frontend/__init__.py +2 -0
  742. onnx/gen_proto.py +18 -24
  743. onnx/helper.py +393 -108
  744. onnx/hub.py +189 -20
  745. onnx/mapping.py +29 -3
  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-37m-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 +19 -12
  768. onnx/reference/ops/_op_common_indices.py +2 -0
  769. onnx/reference/ops/_op_common_pool.py +4 -9
  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 -2
  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 -3
  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 -7
  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 -1
  894. onnx/reference/ops/op_max_unpool.py +2 -0
  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 -19
  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 -7
  934. onnx/reference/ops/op_resize.py +59 -26
  935. onnx/reference/ops/op_reverse_sequence.py +2 -0
  936. onnx/reference/ops/op_rnn.py +3 -7
  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 +5 -2
  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 +4 -3
  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 -13
  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 +204 -43
  986. onnx/shape_inference/implementation.h +33 -13
  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 +37 -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.1.dist-info → onnx-1.14.1.dist-info}/METADATA +96 -52
  1048. {onnx-1.13.1.dist-info → onnx-1.14.1.dist-info}/RECORD +1056 -743
  1049. {onnx-1.13.1.dist-info → onnx-1.14.1.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.1.dist-info → onnx-1.14.1.dist-info}/LICENSE +0 -0
  1056. {onnx-1.13.1.dist-info → onnx-1.14.1.dist-info}/entry_points.txt +0 -0
  1057. {onnx-1.13.1.dist-info → onnx-1.14.1.dist-info}/top_level.txt +0 -0
@@ -1,329 +1,22 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+ #
1
3
  # SPDX-License-Identifier: Apache-2.0
2
4
 
3
- from typing import Any, Callable, List, Optional, Text
4
-
5
5
  import numpy as np
6
6
 
7
7
  import onnx
8
-
9
- from ..base import Base
10
- from . import expect
11
-
12
-
13
- def cartesian(arrays: List[np.ndarray], out: np.ndarray = None) -> np.ndarray:
14
- """
15
- From https://stackoverflow.com/a/1235363
16
- Generate a cartesian product of input arrays.
17
- Parameters
18
- ----------
19
- arrays : list of array-like
20
- 1-D arrays to form the cartesian product of.
21
- out : ndarray
22
- Array to place the cartesian product in.
23
- Returns
24
- -------
25
- out : ndarray
26
- 2-D array of shape (M, len(arrays)) containing cartesian products
27
- formed of input arrays.
28
- Examples
29
- --------
30
- >>> cartesian(([1, 2, 3], [4, 5], [6, 7]))
31
- array([[1, 4, 6],
32
- [1, 4, 7],
33
- [1, 5, 6],
34
- [1, 5, 7],
35
- [2, 4, 6],
36
- [2, 4, 7],
37
- [2, 5, 6],
38
- [2, 5, 7],
39
- [3, 4, 6],
40
- [3, 4, 7],
41
- [3, 5, 6],
42
- [3, 5, 7]])
43
- """
44
-
45
- arrays = [np.asarray(x) for x in arrays]
46
- dtype = arrays[0].dtype
47
-
48
- n = np.prod([x.size for x in arrays])
49
- if out is None:
50
- out = np.zeros([n, len(arrays)], dtype=dtype)
51
-
52
- m = n // arrays[0].size
53
- out[:, 0] = np.repeat(arrays[0], m)
54
- if arrays[1:]:
55
- cartesian(arrays[1:], out=out[0:m, 1:])
56
- for j in range(1, arrays[0].size):
57
- out[j * m : (j + 1) * m, 1:] = out[0:m, 1:]
58
- return out
59
-
60
-
61
- def interpolate_1d_with_x(
62
- data: np.ndarray,
63
- scale_factor: float,
64
- x: float,
65
- get_coeffs: Callable[[float, float], np.ndarray],
66
- roi: np.ndarray = None,
67
- extrapolation_value: float = 0.0,
68
- coordinate_transformation_mode: str = "half_pixel",
69
- exclude_outside: bool = False,
70
- ) -> np.ndarray:
71
- def get_neighbor_idxes(x: float, n: int, limit: int) -> np.ndarray:
72
- """
73
- Return the n nearest indexes to x among [0, limit), prefer the indexes smaller than x.
74
- As a result, the ratio must be in (0, 1]
75
- Examples:
76
- get_neighbor_idxes(4, 2, 10) == [3, 4]
77
- get_neighbor_idxes(4, 3, 10) == [3, 4, 5]
78
- get_neighbor_idxes(4.4, 3, 10) == [3, 4, 5]
79
- get_neighbor_idxes(4.5, 3, 10) == [3, 4, 5]
80
- get_neighbor_idxes(4.6, 3, 10) == [4, 5, 6]
81
- get_neighbor_idxes(4.4, 1, 10) == [4]
82
- get_neighbor_idxes(4.6, 1, 10) == [5]
83
- :param x:
84
- :param n: the number of the wanted indexes
85
- :param limit: the maximum value of index
86
- :return: An np.array containing n nearest indexes in ascending order
87
- """
88
- idxes = sorted(range(limit), key=lambda idx: (abs(x - idx), idx))[:n]
89
- idxes = sorted(idxes)
90
- return np.array(idxes)
91
-
92
- def get_neighbor(x: float, n: int, data: np.ndarray) -> np.ndarray:
93
- """
94
- Pad `data` in 'edge' mode, and get n nearest elements in the padded array and their indexes in the original
95
- array
96
- :param x: center index (in the unpadded coordinate system) of the found nearest elements.
97
- :param n: the number of neighbors.
98
- :param data: the array
99
- :return: A tuple containing the indexes of neighbor elements (the index can be smaller than 0 or higher than
100
- len(data)) and the value of these elements
101
- """
102
- pad_width = np.ceil(n / 2).astype(int)
103
- padded = np.pad(data, pad_width, mode="edge")
104
- x += pad_width
105
-
106
- idxes = get_neighbor_idxes(x, n, len(padded))
107
- ret = padded[idxes]
108
- return idxes - pad_width, ret
109
-
110
- input_width = len(data)
111
- output_width = scale_factor * input_width
112
- if coordinate_transformation_mode == "align_corners":
113
- if output_width == 1:
114
- x_ori = 0.0
115
- else:
116
- x_ori = x * (input_width - 1) / (output_width - 1)
117
- elif coordinate_transformation_mode == "asymmetric":
118
- x_ori = x / scale_factor
119
- elif coordinate_transformation_mode == "tf_crop_and_resize":
120
- if output_width == 1:
121
- x_ori = (roi[1] - roi[0]) * (input_width - 1) / 2
122
- else:
123
- x_ori = x * (roi[1] - roi[0]) * (input_width - 1) / (output_width - 1)
124
- x_ori += roi[0] * (input_width - 1)
125
- # Return extrapolation_value directly as what TF CropAndResize does
126
- if x_ori < 0 or x_ori > input_width - 1:
127
- return extrapolation_value
128
- elif coordinate_transformation_mode == "pytorch_half_pixel":
129
- if output_width == 1:
130
- x_ori = -0.5
131
- else:
132
- x_ori = (x + 0.5) / scale_factor - 0.5
133
- elif coordinate_transformation_mode == "half_pixel":
134
- x_ori = (x + 0.5) / scale_factor - 0.5
135
- else:
136
- raise ValueError(
137
- f"invalid coordinate_transformation_mode: {coordinate_transformation_mode}"
138
- )
139
- x_ori_int = np.floor(x_ori).astype(int).item()
140
-
141
- # ratio must be in (0, 1] since we prefer the pixel on the left of `x_ori`
142
- if x_ori.is_integer():
143
- ratio = 1
144
- else:
145
- ratio = x_ori - x_ori_int
146
-
147
- coeffs = get_coeffs(ratio, scale_factor)
148
- n = len(coeffs)
149
-
150
- idxes, points = get_neighbor(x_ori, n, data)
151
-
152
- if exclude_outside:
153
- for i, idx in enumerate(idxes):
154
- if idx < 0 or idx >= input_width:
155
- coeffs[i] = 0
156
- coeffs /= sum(coeffs)
157
-
158
- return np.dot(coeffs, points).item()
159
-
160
-
161
- def interpolate_nd_with_x(
162
- data: np.ndarray,
163
- n: int,
164
- scale_factors: List[float],
165
- x: List[float],
166
- get_coeffs: Callable[[float, float], np.ndarray],
167
- roi: np.ndarray = None,
168
- **kwargs: Any,
169
- ) -> np.ndarray:
170
- if n == 1:
171
- return interpolate_1d_with_x(
172
- data, scale_factors[0], x[0], get_coeffs, roi=roi, **kwargs
173
- )
174
- return interpolate_1d_with_x(
175
- [
176
- interpolate_nd_with_x(
177
- data[i],
178
- n - 1,
179
- scale_factors[1:],
180
- x[1:],
181
- get_coeffs,
182
- roi=None if roi is None else np.concatenate([roi[1:n], roi[n + 1 :]]),
183
- **kwargs,
184
- )
185
- for i in range(data.shape[0])
186
- ],
187
- scale_factors[0],
188
- x[0],
189
- get_coeffs,
190
- roi=None if roi is None else [roi[0], roi[n]],
191
- **kwargs,
192
- )
193
-
194
-
195
- def interpolate_nd(
196
- data: np.ndarray,
197
- get_coeffs: Callable[[float, float], np.ndarray],
198
- output_size: Optional[List[int]] = None,
199
- scale_factors: Optional[List[float]] = None,
200
- axes: Optional[List[int]] = None,
201
- roi: np.ndarray = None,
202
- keep_aspect_ratio_policy: Optional[Text] = "stretch",
203
- **kwargs: Any,
204
- ) -> np.ndarray:
205
- def get_all_coords(data: np.ndarray) -> np.ndarray:
206
- return cartesian([list(range(data.shape[i])) for i in range(len(data.shape))])
207
-
208
- assert output_size is not None or scale_factors is not None
209
-
210
- r = len(data.shape)
211
- if axes is not None:
212
- if scale_factors is not None:
213
- new_scale_factors = [1.0] * r
214
- for i, d in enumerate(axes):
215
- new_scale_factors[d] = scale_factors[i]
216
- scale_factors = new_scale_factors
217
-
218
- if output_size is not None:
219
- new_output_size = [data.shape[i] for i in range(r)]
220
- for i, d in enumerate(axes):
221
- new_output_size[d] = output_size[i]
222
- output_size = new_output_size
223
-
224
- if roi is not None:
225
- new_roi = ([0.0] * r) + ([1.0] * r)
226
- naxes = len(axes)
227
- for i, d in enumerate(axes):
228
- new_roi[d] = roi[i]
229
- new_roi[r + d] = roi[naxes + i]
230
- roi = new_roi
231
- else:
232
- axes = list(range(r))
233
-
234
- if output_size is not None:
235
- scale_factors = [output_size[i] / data.shape[i] for i in range(r)]
236
- if keep_aspect_ratio_policy != "stretch":
237
- if keep_aspect_ratio_policy == "not_larger":
238
- scale = np.array(scale_factors)[axes].min()
239
- elif keep_aspect_ratio_policy == "not_smaller":
240
- scale = np.array(scale_factors)[axes].max()
241
- else:
242
- raise ValueError(
243
- f"invalid keep_aspect_ratio_policy: {keep_aspect_ratio_policy}"
244
- )
245
-
246
- scale_factors = [scale if i in axes else 1.0 for i in range(r)]
247
-
248
- def round_half_up(x: float) -> int:
249
- return int(x + 0.5)
250
-
251
- output_size = [
252
- round_half_up(scale * data.shape[i]) if i in axes else data.shape[i]
253
- for i in range(r)
254
- ]
255
-
256
- else:
257
- output_size = (scale_factors * np.array(data.shape)).astype(int)
258
-
259
- assert scale_factors is not None
260
-
261
- ret = np.zeros(output_size)
262
- for x in get_all_coords(ret):
263
- ret[tuple(x)] = interpolate_nd_with_x(
264
- data, len(data.shape), scale_factors, x, get_coeffs, roi=roi, **kwargs
265
- )
266
- return ret
267
-
268
-
269
- def cubic_coeffs(ratio: float, A: float = -0.75) -> np.ndarray:
270
- coeffs = [
271
- ((A * (ratio + 1) - 5 * A) * (ratio + 1) + 8 * A) * (ratio + 1) - 4 * A,
272
- ((A + 2) * ratio - (A + 3)) * ratio * ratio + 1,
273
- ((A + 2) * (1 - ratio) - (A + 3)) * (1 - ratio) * (1 - ratio) + 1,
274
- ((A * ((1 - ratio) + 1) - 5 * A) * ((1 - ratio) + 1) + 8 * A)
275
- * ((1 - ratio) + 1)
276
- - 4 * A,
277
- ]
278
- return np.array(coeffs)
279
-
280
-
281
- def cubic_coeffs_antialias(ratio: float, scale: float, A: float = -0.75) -> np.ndarray:
282
- if scale > 1.0: # Antialias is applied when downsampling
283
- scale = 1.0
284
-
285
- def W(x: float) -> float:
286
- x = abs(x)
287
- x_2 = x * x
288
- x_3 = x * x_2
289
- if x <= 1:
290
- return (A + 2) * x_3 - (A + 3) * x_2 + 1
291
- if x < 2:
292
- return A * x_3 - 5 * A * x_2 + 8 * A * x - 4 * A
293
- return 0.0
294
-
295
- i_start = int(np.floor(-2 / scale) + 1)
296
- i_end = 2 - i_start
297
- args = [scale * (i - ratio) for i in range(i_start, i_end)]
298
- coeffs = [W(x) for x in args]
299
- return np.array(coeffs) / sum(coeffs)
300
-
301
-
302
- def linear_coeffs(ratio: float) -> np.ndarray:
303
- return np.array([1 - ratio, ratio])
304
-
305
-
306
- def linear_coeffs_antialias(ratio: float, scale: float) -> np.ndarray:
307
- if scale > 1.0: # Antialias is applied when downsampling
308
- scale = 1.0
309
- start = int(np.floor(-1 / scale) + 1)
310
- footprint = 2 - 2 * start
311
- args = (np.arange(start, start + footprint) - ratio) * scale
312
- coeffs = np.clip(1 - np.abs(args), 0, 1)
313
- return np.array(coeffs) / sum(coeffs)
314
-
315
-
316
- def nearest_coeffs(ratio: float, mode: Text = "round_prefer_floor") -> np.ndarray:
317
- if type(ratio) == int or ratio.is_integer():
318
- return np.array([0, 1])
319
- elif mode == "round_prefer_floor":
320
- return np.array([ratio <= 0.5, ratio > 0.5])
321
- elif mode == "round_prefer_ceil":
322
- return np.array([ratio < 0.5, ratio >= 0.5])
323
- elif mode == "floor":
324
- return np.array([1, 0])
325
- elif mode == "ceil":
326
- return np.array([0, 1])
8
+ from onnx.backend.test.case.base import Base
9
+ from onnx.backend.test.case.node import expect
10
+ from onnx.reference.ops.op_resize import _cubic_coeffs as cubic_coeffs
11
+ from onnx.reference.ops.op_resize import (
12
+ _cubic_coeffs_antialias as cubic_coeffs_antialias,
13
+ )
14
+ from onnx.reference.ops.op_resize import _interpolate_nd as interpolate_nd
15
+ from onnx.reference.ops.op_resize import _linear_coeffs as linear_coeffs
16
+ from onnx.reference.ops.op_resize import (
17
+ _linear_coeffs_antialias as linear_coeffs_antialias,
18
+ )
19
+ from onnx.reference.ops.op_resize import _nearest_coeffs as nearest_coeffs
327
20
 
328
21
 
329
22
  class Resize(Base):
@@ -1959,3 +1652,62 @@ class Resize(Base):
1959
1652
  outputs=[output],
1960
1653
  name="test_resize_downsample_sizes_nearest_not_smaller",
1961
1654
  )
1655
+
1656
+ @staticmethod
1657
+ def export_resize_downsample_scales_linear_half_pixel_symmetric() -> None:
1658
+ node = onnx.helper.make_node(
1659
+ "Resize",
1660
+ inputs=["X", "", "scales"],
1661
+ outputs=["Y"],
1662
+ mode="linear",
1663
+ coordinate_transformation_mode="half_pixel_symmetric",
1664
+ )
1665
+
1666
+ data = np.array([[[[1, 2, 3, 4]]]], dtype=np.float32)
1667
+ scales = np.array([1.0, 1.0, 1.0, 0.6], dtype=np.float32)
1668
+
1669
+ # [[[[1.6666667, 3.3333333]]]]
1670
+ output = interpolate_nd(
1671
+ data,
1672
+ lambda x, _: linear_coeffs(x),
1673
+ scale_factors=scales,
1674
+ coordinate_transformation_mode="half_pixel_symmetric",
1675
+ ).astype(np.float32)
1676
+
1677
+ expect(
1678
+ node,
1679
+ inputs=[data, scales],
1680
+ outputs=[output],
1681
+ name="test_resize_downsample_scales_linear_half_pixel_symmetric",
1682
+ )
1683
+
1684
+ @staticmethod
1685
+ def export_resize_upsample_scales_linear_half_pixel_symmetric() -> None:
1686
+ node = onnx.helper.make_node(
1687
+ "Resize",
1688
+ inputs=["X", "", "scales"],
1689
+ outputs=["Y"],
1690
+ mode="linear",
1691
+ coordinate_transformation_mode="half_pixel_symmetric",
1692
+ )
1693
+
1694
+ data = np.array([[[[1, 2], [3, 4]]]], dtype=np.float32)
1695
+ scales = np.array([1.0, 1.0, 2.3, 2.94], dtype=np.float32)
1696
+
1697
+ # [[[[1. , 1.15986395, 1.5 , 1.84013605, 2. ],
1698
+ # [1.56521738, 1.72508133, 2.06521738, 2.40535343, 2.56521738],
1699
+ # [2.43478262, 2.59464657, 2.93478262, 3.27491867, 3.43478262],
1700
+ # [3. , 3.15986395, 3.5 , 3.84013605, 4. ]]]]
1701
+ output = interpolate_nd(
1702
+ data,
1703
+ lambda x, _: linear_coeffs(x),
1704
+ scale_factors=scales,
1705
+ coordinate_transformation_mode="half_pixel_symmetric",
1706
+ ).astype(np.float32)
1707
+
1708
+ expect(
1709
+ node,
1710
+ inputs=[data, scales],
1711
+ outputs=[output],
1712
+ name="test_resize_upsample_scales_linear_half_pixel_symmetric",
1713
+ )
@@ -1,11 +1,12 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+ #
1
3
  # SPDX-License-Identifier: Apache-2.0
2
4
 
3
5
  import numpy as np
4
6
 
5
7
  import onnx
6
-
7
- from ..base import Base
8
- from . import expect
8
+ from onnx.backend.test.case.base import Base
9
+ from onnx.backend.test.case.node import expect
9
10
 
10
11
 
11
12
  class ReverseSequence(Base):
@@ -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, Tuple
@@ -5,12 +7,11 @@ from typing import Any, Tuple
5
7
  import numpy as np
6
8
 
7
9
  import onnx
10
+ from onnx.backend.test.case.base import Base
11
+ from onnx.backend.test.case.node import expect
8
12
 
9
- from ..base import Base
10
- from . import expect
11
13
 
12
-
13
- class RNN_Helper:
14
+ class RNNHelper:
14
15
  def __init__(self, **params: Any) -> None:
15
16
  # RNN Input Names
16
17
  X = "X"
@@ -27,7 +28,7 @@ class RNN_Helper:
27
28
  self.num_directions = params[str(W)].shape[0]
28
29
 
29
30
  if self.num_directions == 1:
30
- for k in params.keys():
31
+ for k in params:
31
32
  if k != X:
32
33
  params[k] = np.squeeze(params[k], axis=0)
33
34
 
@@ -108,7 +109,7 @@ class RNN(Base):
108
109
  W = weight_scale * np.ones((1, hidden_size, input_size)).astype(np.float32)
109
110
  R = weight_scale * np.ones((1, hidden_size, hidden_size)).astype(np.float32)
110
111
 
111
- rnn = RNN_Helper(X=input, W=W, R=R)
112
+ rnn = RNNHelper(X=input, W=W, R=R)
112
113
  _, Y_h = rnn.step()
113
114
  expect(
114
115
  node,
@@ -143,7 +144,7 @@ class RNN(Base):
143
144
  R_B = np.zeros((1, hidden_size)).astype(np.float32)
144
145
  B = np.concatenate((W_B, R_B), axis=1)
145
146
 
146
- rnn = RNN_Helper(X=input, W=W, R=R, B=B)
147
+ rnn = RNNHelper(X=input, W=W, R=R, B=B)
147
148
  _, Y_h = rnn.step()
148
149
  expect(
149
150
  node,
@@ -179,7 +180,7 @@ class RNN(Base):
179
180
  R_B = np.random.randn(1, hidden_size).astype(np.float32)
180
181
  B = np.concatenate((W_B, R_B), axis=1)
181
182
 
182
- rnn = RNN_Helper(X=input, W=W, R=R, B=B)
183
+ rnn = RNNHelper(X=input, W=W, R=R, B=B)
183
184
  _, Y_h = rnn.step()
184
185
  expect(
185
186
  node,
@@ -208,7 +209,7 @@ class RNN(Base):
208
209
  W = weight_scale * np.ones((1, hidden_size, input_size)).astype(np.float32)
209
210
  R = weight_scale * np.ones((1, hidden_size, hidden_size)).astype(np.float32)
210
211
 
211
- rnn = RNN_Helper(X=input, W=W, R=R, layout=layout)
212
+ rnn = RNNHelper(X=input, W=W, R=R, layout=layout)
212
213
  Y, Y_h = rnn.step()
213
214
  expect(
214
215
  node,
@@ -1,11 +1,12 @@
1
+ # Copyright (c) ONNX Project Contributors
2
+ #
1
3
  # SPDX-License-Identifier: Apache-2.0
2
4
 
3
5
  import numpy as np
4
6
 
5
7
  import onnx
6
-
7
- from ..base import Base
8
- from . import expect
8
+ from onnx.backend.test.case.base import Base
9
+ from onnx.backend.test.case.node import expect
9
10
 
10
11
 
11
12
  def get_roi_align_input_values(): # type: ignore
@@ -253,3 +254,192 @@ class RoiAlign(Base):
253
254
  outputs=[Y],
254
255
  name="test_roialign_aligned_true",
255
256
  )
257
+
258
+ @staticmethod
259
+ def export_roialign_mode_max() -> None:
260
+ X = np.array(
261
+ [
262
+ [
263
+ [
264
+ [
265
+ 0.2764,
266
+ 0.715,
267
+ 0.1958,
268
+ 0.3416,
269
+ 0.4638,
270
+ 0.0259,
271
+ 0.2963,
272
+ 0.6518,
273
+ 0.4856,
274
+ 0.725,
275
+ ],
276
+ [
277
+ 0.9637,
278
+ 0.0895,
279
+ 0.2919,
280
+ 0.6753,
281
+ 0.0234,
282
+ 0.6132,
283
+ 0.8085,
284
+ 0.5324,
285
+ 0.8992,
286
+ 0.4467,
287
+ ],
288
+ [
289
+ 0.3265,
290
+ 0.8479,
291
+ 0.9698,
292
+ 0.2471,
293
+ 0.9336,
294
+ 0.1878,
295
+ 0.4766,
296
+ 0.4308,
297
+ 0.34,
298
+ 0.2162,
299
+ ],
300
+ [
301
+ 0.0206,
302
+ 0.172,
303
+ 0.2155,
304
+ 0.4394,
305
+ 0.0653,
306
+ 0.3406,
307
+ 0.7724,
308
+ 0.3921,
309
+ 0.2541,
310
+ 0.5799,
311
+ ],
312
+ [
313
+ 0.4062,
314
+ 0.2194,
315
+ 0.4473,
316
+ 0.4687,
317
+ 0.7109,
318
+ 0.9327,
319
+ 0.9815,
320
+ 0.632,
321
+ 0.1728,
322
+ 0.6119,
323
+ ],
324
+ [
325
+ 0.3097,
326
+ 0.1283,
327
+ 0.4984,
328
+ 0.5068,
329
+ 0.4279,
330
+ 0.0173,
331
+ 0.4388,
332
+ 0.043,
333
+ 0.4671,
334
+ 0.7119,
335
+ ],
336
+ [
337
+ 0.1011,
338
+ 0.8477,
339
+ 0.4726,
340
+ 0.1777,
341
+ 0.9923,
342
+ 0.4042,
343
+ 0.1869,
344
+ 0.7795,
345
+ 0.9946,
346
+ 0.9689,
347
+ ],
348
+ [
349
+ 0.1366,
350
+ 0.3671,
351
+ 0.7011,
352
+ 0.6234,
353
+ 0.9867,
354
+ 0.5585,
355
+ 0.6985,
356
+ 0.5609,
357
+ 0.8788,
358
+ 0.9928,
359
+ ],
360
+ [
361
+ 0.5697,
362
+ 0.8511,
363
+ 0.6711,
364
+ 0.9406,
365
+ 0.8751,
366
+ 0.7496,
367
+ 0.165,
368
+ 0.1049,
369
+ 0.1559,
370
+ 0.2514,
371
+ ],
372
+ [
373
+ 0.7012,
374
+ 0.4056,
375
+ 0.7879,
376
+ 0.3461,
377
+ 0.0415,
378
+ 0.2998,
379
+ 0.5094,
380
+ 0.3727,
381
+ 0.5482,
382
+ 0.0502,
383
+ ],
384
+ ]
385
+ ]
386
+ ],
387
+ dtype=np.float32,
388
+ )
389
+ rois = np.array(
390
+ [[0.0, 0.0, 9.0, 9.0], [0.0, 5.0, 4.0, 9.0], [5.0, 5.0, 9.0, 9.0]],
391
+ dtype=np.float32,
392
+ )
393
+ batch_indices = np.array([0, 0, 0], dtype=np.int64)
394
+
395
+ Y = np.array(
396
+ [
397
+ [
398
+ [
399
+ [0.3445228, 0.37310338, 0.37865096, 0.446696, 0.37991184],
400
+ [0.4133513, 0.5455125, 0.6651902, 0.55805874, 0.27110294],
401
+ [0.21223956, 0.40924096, 0.8417618, 0.792561, 0.37196714],
402
+ [0.46835402, 0.39741728, 0.8012819, 0.4969306, 0.5495158],
403
+ [0.3595896, 0.5196813, 0.5403741, 0.23814403, 0.19992709],
404
+ ]
405
+ ],
406
+ [
407
+ [
408
+ [0.30517197, 0.5086199, 0.3189761, 0.4054401, 0.47630402],
409
+ [0.50862, 0.8477, 0.37808004, 0.24936005, 0.79384017],
410
+ [0.17620805, 0.29368007, 0.44870415, 0.4987201, 0.63148826],
411
+ [0.51066005, 0.8511, 0.5368801, 0.9406, 0.70008016],
412
+ [0.4487681, 0.51066035, 0.5042561, 0.5643603, 0.42004836],
413
+ ]
414
+ ],
415
+ [
416
+ [
417
+ [0.21062402, 0.3510401, 0.37416005, 0.5967599, 0.46507207],
418
+ [0.32336006, 0.31180006, 0.6236001, 0.9946, 0.7751202],
419
+ [0.35744014, 0.5588001, 0.35897616, 0.7030401, 0.6353923],
420
+ [0.5996801, 0.27940005, 0.17948808, 0.35152006, 0.31769615],
421
+ [0.3598083, 0.40752012, 0.2385281, 0.43856013, 0.26313624],
422
+ ]
423
+ ],
424
+ ],
425
+ dtype=np.float32,
426
+ )
427
+
428
+ node = onnx.helper.make_node(
429
+ "RoiAlign",
430
+ inputs=["X", "rois", "batch_indices"],
431
+ mode="max",
432
+ outputs=["Y"],
433
+ spatial_scale=1.0,
434
+ output_height=5,
435
+ output_width=5,
436
+ sampling_ratio=2,
437
+ coordinate_transformation_mode="output_half_pixel",
438
+ )
439
+
440
+ expect(
441
+ node,
442
+ inputs=[X, rois, batch_indices],
443
+ outputs=[Y],
444
+ name="test_roialign_mode_max",
445
+ )