onnx 1.16.2__cp311-cp311-win32.whl → 1.18.0__cp311-cp311-win32.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 (2010) hide show
  1. onnx/__init__.py +17 -1
  2. onnx/_custom_element_types.py +69 -0
  3. onnx/backend/base.py +28 -17
  4. onnx/backend/sample/ops/__init__.py +10 -7
  5. onnx/backend/sample/ops/abs.py +1 -0
  6. onnx/backend/test/__init__.py +1 -0
  7. onnx/backend/test/case/__init__.py +2 -2
  8. onnx/backend/test/case/base.py +6 -5
  9. onnx/backend/test/case/model/__init__.py +11 -6
  10. onnx/backend/test/case/model/expand.py +5 -1
  11. onnx/backend/test/case/model/gradient.py +1 -0
  12. onnx/backend/test/case/model/sequence.py +28 -26
  13. onnx/backend/test/case/model/shrink.py +1 -0
  14. onnx/backend/test/case/model/sign.py +1 -0
  15. onnx/backend/test/case/model/single-relu.py +1 -0
  16. onnx/backend/test/case/model/stringnormalizer.py +5 -2
  17. onnx/backend/test/case/node/__init__.py +51 -43
  18. onnx/backend/test/case/node/_image_decoder_data.py +1 -0
  19. onnx/backend/test/case/node/abs.py +2 -2
  20. onnx/backend/test/case/node/acos.py +1 -0
  21. onnx/backend/test/case/node/acosh.py +1 -0
  22. onnx/backend/test/case/node/adagrad.py +3 -2
  23. onnx/backend/test/case/node/adam.py +4 -1
  24. onnx/backend/test/case/node/add.py +20 -7
  25. onnx/backend/test/case/node/affinegrid.py +1 -0
  26. onnx/backend/test/case/node/ai_onnx_ml/array_feature_extractor.py +1 -0
  27. onnx/backend/test/case/node/ai_onnx_ml/binarizer.py +1 -0
  28. onnx/backend/test/case/node/ai_onnx_ml/label_encoder.py +1 -0
  29. onnx/backend/test/case/node/ai_onnx_ml/tree_ensemble.py +1 -0
  30. onnx/backend/test/case/node/and.py +1 -0
  31. onnx/backend/test/case/node/argmax.py +1 -0
  32. onnx/backend/test/case/node/argmin.py +1 -0
  33. onnx/backend/test/case/node/asin.py +1 -0
  34. onnx/backend/test/case/node/asinh.py +1 -0
  35. onnx/backend/test/case/node/atan.py +1 -0
  36. onnx/backend/test/case/node/atanh.py +1 -0
  37. onnx/backend/test/case/node/attention.py +1399 -0
  38. onnx/backend/test/case/node/averagepool.py +96 -14
  39. onnx/backend/test/case/node/batchnorm.py +3 -2
  40. onnx/backend/test/case/node/bernoulli.py +2 -1
  41. onnx/backend/test/case/node/bitshift.py +1 -0
  42. onnx/backend/test/case/node/bitwiseand.py +2 -1
  43. onnx/backend/test/case/node/bitwisenot.py +2 -1
  44. onnx/backend/test/case/node/bitwiseor.py +2 -1
  45. onnx/backend/test/case/node/bitwisexor.py +2 -1
  46. onnx/backend/test/case/node/blackmanwindow.py +13 -3
  47. onnx/backend/test/case/node/cast.py +61 -2
  48. onnx/backend/test/case/node/castlike.py +1 -0
  49. onnx/backend/test/case/node/ceil.py +1 -0
  50. onnx/backend/test/case/node/celu.py +1 -0
  51. onnx/backend/test/case/node/center_crop_pad.py +1 -0
  52. onnx/backend/test/case/node/clip.py +12 -0
  53. onnx/backend/test/case/node/col2im.py +1 -1
  54. onnx/backend/test/case/node/compress.py +1 -0
  55. onnx/backend/test/case/node/concat.py +6 -2
  56. onnx/backend/test/case/node/constant.py +1 -0
  57. onnx/backend/test/case/node/constantofshape.py +1 -0
  58. onnx/backend/test/case/node/conv.py +1 -0
  59. onnx/backend/test/case/node/convinteger.py +1 -0
  60. onnx/backend/test/case/node/convtranspose.py +135 -0
  61. onnx/backend/test/case/node/cos.py +1 -0
  62. onnx/backend/test/case/node/cosh.py +1 -0
  63. onnx/backend/test/case/node/cumsum.py +25 -0
  64. onnx/backend/test/case/node/deformconv.py +17 -26
  65. onnx/backend/test/case/node/depthtospace.py +1 -0
  66. onnx/backend/test/case/node/dequantizelinear.py +23 -0
  67. onnx/backend/test/case/node/det.py +1 -0
  68. onnx/backend/test/case/node/dft.py +1 -0
  69. onnx/backend/test/case/node/div.py +26 -0
  70. onnx/backend/test/case/node/dropout.py +2 -1
  71. onnx/backend/test/case/node/dynamicquantizelinear.py +1 -0
  72. onnx/backend/test/case/node/einsum.py +2 -3
  73. onnx/backend/test/case/node/elu.py +1 -0
  74. onnx/backend/test/case/node/equal.py +31 -0
  75. onnx/backend/test/case/node/erf.py +1 -0
  76. onnx/backend/test/case/node/exp.py +1 -0
  77. onnx/backend/test/case/node/expand.py +1 -0
  78. onnx/backend/test/case/node/eyelike.py +1 -0
  79. onnx/backend/test/case/node/flatten.py +1 -0
  80. onnx/backend/test/case/node/floor.py +1 -0
  81. onnx/backend/test/case/node/gather.py +1 -0
  82. onnx/backend/test/case/node/gatherelements.py +2 -1
  83. onnx/backend/test/case/node/gathernd.py +1 -0
  84. onnx/backend/test/case/node/gelu.py +1 -0
  85. onnx/backend/test/case/node/gemm.py +3 -4
  86. onnx/backend/test/case/node/globalaveragepool.py +1 -0
  87. onnx/backend/test/case/node/globalmaxpool.py +1 -0
  88. onnx/backend/test/case/node/greater.py +31 -0
  89. onnx/backend/test/case/node/greater_equal.py +31 -0
  90. onnx/backend/test/case/node/gridsample.py +1 -0
  91. onnx/backend/test/case/node/groupnormalization.py +1 -0
  92. onnx/backend/test/case/node/gru.py +5 -4
  93. onnx/backend/test/case/node/hammingwindow.py +13 -2
  94. onnx/backend/test/case/node/hannwindow.py +10 -2
  95. onnx/backend/test/case/node/hardmax.py +1 -0
  96. onnx/backend/test/case/node/hardsigmoid.py +1 -0
  97. onnx/backend/test/case/node/hardswish.py +1 -0
  98. onnx/backend/test/case/node/identity.py +1 -0
  99. onnx/backend/test/case/node/if.py +2 -1
  100. onnx/backend/test/case/node/instancenorm.py +1 -0
  101. onnx/backend/test/case/node/isinf.py +1 -0
  102. onnx/backend/test/case/node/isnan.py +1 -0
  103. onnx/backend/test/case/node/layernormalization.py +3 -2
  104. onnx/backend/test/case/node/leakyrelu.py +1 -0
  105. onnx/backend/test/case/node/less.py +31 -0
  106. onnx/backend/test/case/node/less_equal.py +31 -0
  107. onnx/backend/test/case/node/log.py +1 -0
  108. onnx/backend/test/case/node/logsoftmax.py +1 -0
  109. onnx/backend/test/case/node/loop.py +5 -4
  110. onnx/backend/test/case/node/lppool.py +25 -5
  111. onnx/backend/test/case/node/lrn.py +1 -0
  112. onnx/backend/test/case/node/lstm.py +5 -4
  113. onnx/backend/test/case/node/matmul.py +1 -0
  114. onnx/backend/test/case/node/matmulinteger.py +1 -0
  115. onnx/backend/test/case/node/max.py +1 -0
  116. onnx/backend/test/case/node/maxpool.py +18 -6
  117. onnx/backend/test/case/node/maxunpool.py +1 -0
  118. onnx/backend/test/case/node/mean.py +1 -0
  119. onnx/backend/test/case/node/meanvariancenormalization.py +1 -0
  120. onnx/backend/test/case/node/melweightmatrix.py +1 -0
  121. onnx/backend/test/case/node/min.py +1 -0
  122. onnx/backend/test/case/node/mish.py +1 -0
  123. onnx/backend/test/case/node/mod.py +1 -0
  124. onnx/backend/test/case/node/momentum.py +3 -2
  125. onnx/backend/test/case/node/mul.py +26 -0
  126. onnx/backend/test/case/node/neg.py +1 -0
  127. onnx/backend/test/case/node/negativeloglikelihoodloss.py +4 -1
  128. onnx/backend/test/case/node/nonmaxsuppression.py +1 -0
  129. onnx/backend/test/case/node/nonzero.py +1 -0
  130. onnx/backend/test/case/node/not.py +1 -0
  131. onnx/backend/test/case/node/onehot.py +2 -1
  132. onnx/backend/test/case/node/optionalgetelement.py +3 -2
  133. onnx/backend/test/case/node/optionalhaselement.py +2 -3
  134. onnx/backend/test/case/node/or.py +1 -0
  135. onnx/backend/test/case/node/pad.py +3 -2
  136. onnx/backend/test/case/node/pow.py +1 -0
  137. onnx/backend/test/case/node/prelu.py +1 -0
  138. onnx/backend/test/case/node/qlinearconv.py +1 -0
  139. onnx/backend/test/case/node/qlinearmatmul.py +1 -0
  140. onnx/backend/test/case/node/quantizelinear.py +39 -0
  141. onnx/backend/test/case/node/rangeop.py +1 -0
  142. onnx/backend/test/case/node/reciprocal.py +1 -0
  143. onnx/backend/test/case/node/reduce_log_sum.py +1 -0
  144. onnx/backend/test/case/node/reduce_log_sum_exp.py +1 -0
  145. onnx/backend/test/case/node/reducel1.py +1 -0
  146. onnx/backend/test/case/node/reducel2.py +1 -0
  147. onnx/backend/test/case/node/reducemax.py +2 -1
  148. onnx/backend/test/case/node/reducemean.py +1 -0
  149. onnx/backend/test/case/node/reducemin.py +1 -0
  150. onnx/backend/test/case/node/reduceprod.py +1 -0
  151. onnx/backend/test/case/node/reducesum.py +2 -1
  152. onnx/backend/test/case/node/reducesumsquare.py +1 -0
  153. onnx/backend/test/case/node/regex_full_match.py +1 -0
  154. onnx/backend/test/case/node/relu.py +1 -0
  155. onnx/backend/test/case/node/reshape.py +1 -0
  156. onnx/backend/test/case/node/resize.py +3 -2
  157. onnx/backend/test/case/node/reversesequence.py +1 -0
  158. onnx/backend/test/case/node/rmsnormalization.py +126 -0
  159. onnx/backend/test/case/node/rnn.py +5 -4
  160. onnx/backend/test/case/node/roialign.py +2 -1
  161. onnx/backend/test/case/node/rotaryembedding.py +231 -0
  162. onnx/backend/test/case/node/round.py +4 -3
  163. onnx/backend/test/case/node/scan.py +1 -0
  164. onnx/backend/test/case/node/scatter.py +1 -0
  165. onnx/backend/test/case/node/scatterelements.py +7 -3
  166. onnx/backend/test/case/node/scatternd.py +1 -0
  167. onnx/backend/test/case/node/selu.py +1 -0
  168. onnx/backend/test/case/node/sequence_map.py +1 -0
  169. onnx/backend/test/case/node/sequenceinsert.py +4 -3
  170. onnx/backend/test/case/node/shape.py +1 -0
  171. onnx/backend/test/case/node/shrink.py +1 -0
  172. onnx/backend/test/case/node/sigmoid.py +1 -0
  173. onnx/backend/test/case/node/sign.py +1 -0
  174. onnx/backend/test/case/node/sin.py +1 -0
  175. onnx/backend/test/case/node/sinh.py +1 -0
  176. onnx/backend/test/case/node/size.py +1 -0
  177. onnx/backend/test/case/node/slice.py +1 -0
  178. onnx/backend/test/case/node/softmax.py +1 -0
  179. onnx/backend/test/case/node/softmaxcrossentropy.py +4 -1
  180. onnx/backend/test/case/node/softplus.py +1 -0
  181. onnx/backend/test/case/node/softsign.py +1 -0
  182. onnx/backend/test/case/node/spacetodepth.py +1 -0
  183. onnx/backend/test/case/node/split.py +1 -0
  184. onnx/backend/test/case/node/splittosequence.py +1 -0
  185. onnx/backend/test/case/node/sqrt.py +1 -0
  186. onnx/backend/test/case/node/squeeze.py +1 -0
  187. onnx/backend/test/case/node/stft.py +4 -1
  188. onnx/backend/test/case/node/string_concat.py +1 -0
  189. onnx/backend/test/case/node/string_split.py +1 -0
  190. onnx/backend/test/case/node/stringnormalizer.py +1 -0
  191. onnx/backend/test/case/node/sub.py +26 -0
  192. onnx/backend/test/case/node/sum.py +1 -0
  193. onnx/backend/test/case/node/tan.py +1 -0
  194. onnx/backend/test/case/node/tanh.py +1 -0
  195. onnx/backend/test/case/node/tfidfvectorizer.py +1 -0
  196. onnx/backend/test/case/node/thresholdedrelu.py +1 -0
  197. onnx/backend/test/case/node/tile.py +1 -0
  198. onnx/backend/test/case/node/topk.py +130 -2
  199. onnx/backend/test/case/node/transpose.py +1 -0
  200. onnx/backend/test/case/node/trilu.py +3 -2
  201. onnx/backend/test/case/node/unique.py +40 -1
  202. onnx/backend/test/case/node/unsqueeze.py +1 -0
  203. onnx/backend/test/case/node/upsample.py +1 -0
  204. onnx/backend/test/case/node/where.py +1 -0
  205. onnx/backend/test/case/node/xor.py +1 -0
  206. onnx/backend/test/case/test_case.py +11 -7
  207. onnx/backend/test/case/utils.py +6 -4
  208. onnx/backend/test/cmd_tools.py +1 -0
  209. onnx/backend/test/data/node/test_acos/model.onnx +0 -0
  210. onnx/backend/test/data/node/test_acos_example/model.onnx +0 -0
  211. onnx/backend/test/data/node/test_acosh/model.onnx +0 -0
  212. onnx/backend/test/data/node/test_acosh_example/model.onnx +0 -0
  213. onnx/backend/test/data/node/test_asin/model.onnx +0 -0
  214. onnx/backend/test/data/node/test_asin_example/model.onnx +0 -0
  215. onnx/backend/test/data/node/test_asinh/model.onnx +0 -0
  216. onnx/backend/test/data/node/test_asinh_example/model.onnx +0 -0
  217. onnx/backend/test/data/node/test_atan/model.onnx +0 -0
  218. onnx/backend/test/data/node/test_atan_example/model.onnx +0 -0
  219. onnx/backend/test/data/node/test_atanh/model.onnx +0 -0
  220. onnx/backend/test/data/node/test_atanh_example/model.onnx +0 -0
  221. onnx/backend/test/data/node/test_attention_3d/model.onnx +0 -0
  222. onnx/backend/test/data/node/test_attention_3d/test_data_set_0/input_0.pb +0 -0
  223. onnx/backend/test/data/node/test_attention_3d/test_data_set_0/input_1.pb +0 -0
  224. onnx/backend/test/data/node/test_attention_3d/test_data_set_0/input_2.pb +0 -0
  225. onnx/backend/test/data/node/test_attention_3d/test_data_set_0/output_0.pb +0 -0
  226. onnx/backend/test/data/node/test_attention_3d_attn_mask/model.onnx +0 -0
  227. onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/input_0.pb +0 -0
  228. onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/input_1.pb +0 -0
  229. onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/input_2.pb +0 -0
  230. onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/input_3.pb +1 -0
  231. onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/output_0.pb +0 -0
  232. onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/model.onnx +0 -0
  233. onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
  234. onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
  235. onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
  236. onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/input_3.pb +1 -0
  237. onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
  238. onnx/backend/test/data/node/test_attention_3d_causal/model.onnx +0 -0
  239. onnx/backend/test/data/node/test_attention_3d_causal/test_data_set_0/input_0.pb +0 -0
  240. onnx/backend/test/data/node/test_attention_3d_causal/test_data_set_0/input_1.pb +0 -0
  241. onnx/backend/test/data/node/test_attention_3d_causal/test_data_set_0/input_2.pb +0 -0
  242. onnx/backend/test/data/node/test_attention_3d_causal/test_data_set_0/output_0.pb +0 -0
  243. onnx/backend/test/data/node/test_attention_3d_causal_expanded/model.onnx +0 -0
  244. onnx/backend/test/data/node/test_attention_3d_causal_expanded/test_data_set_0/input_0.pb +0 -0
  245. onnx/backend/test/data/node/test_attention_3d_causal_expanded/test_data_set_0/input_1.pb +0 -0
  246. onnx/backend/test/data/node/test_attention_3d_causal_expanded/test_data_set_0/input_2.pb +0 -0
  247. onnx/backend/test/data/node/test_attention_3d_causal_expanded/test_data_set_0/output_0.pb +0 -0
  248. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/model.onnx +0 -0
  249. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/test_data_set_0/input_0.pb +0 -0
  250. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/test_data_set_0/input_1.pb +0 -0
  251. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/test_data_set_0/input_2.pb +0 -0
  252. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/test_data_set_0/output_0.pb +0 -0
  253. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/model.onnx +0 -0
  254. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/input_0.pb +0 -0
  255. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/input_1.pb +0 -0
  256. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/input_2.pb +0 -0
  257. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/input_3.pb +0 -0
  258. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/output_0.pb +0 -0
  259. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/model.onnx +0 -0
  260. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
  261. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
  262. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
  263. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_3.pb +0 -0
  264. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
  265. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/model.onnx +0 -0
  266. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/test_data_set_0/input_0.pb +0 -0
  267. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/test_data_set_0/input_1.pb +0 -0
  268. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/test_data_set_0/input_2.pb +0 -0
  269. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/test_data_set_0/output_0.pb +0 -0
  270. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/model.onnx +0 -0
  271. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/test_data_set_0/input_0.pb +0 -0
  272. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/test_data_set_0/input_1.pb +0 -0
  273. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/test_data_set_0/input_2.pb +0 -0
  274. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/test_data_set_0/output_0.pb +0 -0
  275. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/model.onnx +0 -0
  276. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/test_data_set_0/input_0.pb +0 -0
  277. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/test_data_set_0/input_1.pb +0 -0
  278. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/test_data_set_0/input_2.pb +0 -0
  279. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/test_data_set_0/output_0.pb +0 -0
  280. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/model.onnx +0 -0
  281. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/test_data_set_0/input_0.pb +0 -0
  282. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/test_data_set_0/input_1.pb +0 -0
  283. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/test_data_set_0/input_2.pb +0 -0
  284. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/test_data_set_0/output_0.pb +0 -0
  285. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/model.onnx +0 -0
  286. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_0.pb +0 -0
  287. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_1.pb +0 -0
  288. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_2.pb +0 -0
  289. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/test_data_set_0/output_0.pb +0 -0
  290. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/model.onnx +0 -0
  291. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/test_data_set_0/input_0.pb +0 -0
  292. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/test_data_set_0/input_1.pb +0 -0
  293. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/test_data_set_0/input_2.pb +0 -0
  294. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/test_data_set_0/output_0.pb +0 -0
  295. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/model.onnx +0 -0
  296. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  297. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  298. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  299. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  300. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/model.onnx +0 -0
  301. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_0.pb +0 -0
  302. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_1.pb +0 -0
  303. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_2.pb +0 -0
  304. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_3.pb +0 -0
  305. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_4.pb +0 -0
  306. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_5.pb +0 -0
  307. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/output_0.pb +0 -0
  308. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/output_1.pb +0 -0
  309. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/output_2.pb +0 -0
  310. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/model.onnx +0 -0
  311. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
  312. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
  313. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
  314. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
  315. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
  316. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
  317. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
  318. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
  319. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
  320. onnx/backend/test/data/node/test_attention_3d_expanded/model.onnx +0 -0
  321. onnx/backend/test/data/node/test_attention_3d_expanded/test_data_set_0/input_0.pb +0 -0
  322. onnx/backend/test/data/node/test_attention_3d_expanded/test_data_set_0/input_1.pb +0 -0
  323. onnx/backend/test/data/node/test_attention_3d_expanded/test_data_set_0/input_2.pb +0 -0
  324. onnx/backend/test/data/node/test_attention_3d_expanded/test_data_set_0/output_0.pb +0 -0
  325. onnx/backend/test/data/node/test_attention_3d_gqa/model.onnx +0 -0
  326. onnx/backend/test/data/node/test_attention_3d_gqa/test_data_set_0/input_0.pb +0 -0
  327. onnx/backend/test/data/node/test_attention_3d_gqa/test_data_set_0/input_1.pb +0 -0
  328. onnx/backend/test/data/node/test_attention_3d_gqa/test_data_set_0/input_2.pb +0 -0
  329. onnx/backend/test/data/node/test_attention_3d_gqa/test_data_set_0/output_0.pb +0 -0
  330. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/model.onnx +0 -0
  331. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/input_0.pb +0 -0
  332. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/input_1.pb +0 -0
  333. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/input_2.pb +0 -0
  334. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/input_3.pb +1 -0
  335. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/output_0.pb +0 -0
  336. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/model.onnx +0 -0
  337. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
  338. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
  339. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
  340. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/input_3.pb +1 -0
  341. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
  342. onnx/backend/test/data/node/test_attention_3d_gqa_causal/model.onnx +0 -0
  343. onnx/backend/test/data/node/test_attention_3d_gqa_causal/test_data_set_0/input_0.pb +0 -0
  344. onnx/backend/test/data/node/test_attention_3d_gqa_causal/test_data_set_0/input_1.pb +0 -0
  345. onnx/backend/test/data/node/test_attention_3d_gqa_causal/test_data_set_0/input_2.pb +0 -0
  346. onnx/backend/test/data/node/test_attention_3d_gqa_causal/test_data_set_0/output_0.pb +0 -0
  347. onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/model.onnx +0 -0
  348. onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/test_data_set_0/input_0.pb +0 -0
  349. onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/test_data_set_0/input_1.pb +0 -0
  350. onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/test_data_set_0/input_2.pb +0 -0
  351. onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/test_data_set_0/output_0.pb +0 -0
  352. onnx/backend/test/data/node/test_attention_3d_gqa_expanded/model.onnx +0 -0
  353. onnx/backend/test/data/node/test_attention_3d_gqa_expanded/test_data_set_0/input_0.pb +0 -0
  354. onnx/backend/test/data/node/test_attention_3d_gqa_expanded/test_data_set_0/input_1.pb +0 -0
  355. onnx/backend/test/data/node/test_attention_3d_gqa_expanded/test_data_set_0/input_2.pb +0 -0
  356. onnx/backend/test/data/node/test_attention_3d_gqa_expanded/test_data_set_0/output_0.pb +0 -0
  357. onnx/backend/test/data/node/test_attention_3d_gqa_scaled/model.onnx +0 -0
  358. onnx/backend/test/data/node/test_attention_3d_gqa_scaled/test_data_set_0/input_0.pb +0 -0
  359. onnx/backend/test/data/node/test_attention_3d_gqa_scaled/test_data_set_0/input_1.pb +0 -0
  360. onnx/backend/test/data/node/test_attention_3d_gqa_scaled/test_data_set_0/input_2.pb +0 -0
  361. onnx/backend/test/data/node/test_attention_3d_gqa_scaled/test_data_set_0/output_0.pb +0 -0
  362. onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/model.onnx +0 -0
  363. onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/test_data_set_0/input_0.pb +0 -0
  364. onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/test_data_set_0/input_1.pb +0 -0
  365. onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/test_data_set_0/input_2.pb +0 -0
  366. onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/test_data_set_0/output_0.pb +0 -0
  367. onnx/backend/test/data/node/test_attention_3d_gqa_softcap/model.onnx +0 -0
  368. onnx/backend/test/data/node/test_attention_3d_gqa_softcap/test_data_set_0/input_0.pb +0 -0
  369. onnx/backend/test/data/node/test_attention_3d_gqa_softcap/test_data_set_0/input_1.pb +0 -0
  370. onnx/backend/test/data/node/test_attention_3d_gqa_softcap/test_data_set_0/input_2.pb +0 -0
  371. onnx/backend/test/data/node/test_attention_3d_gqa_softcap/test_data_set_0/output_0.pb +0 -0
  372. onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/model.onnx +0 -0
  373. onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  374. onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  375. onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  376. onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  377. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/model.onnx +0 -0
  378. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_0.pb +0 -0
  379. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_1.pb +0 -0
  380. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_2.pb +0 -0
  381. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_3.pb +0 -0
  382. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_4.pb +0 -0
  383. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_5.pb +0 -0
  384. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/output_0.pb +0 -0
  385. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/output_1.pb +0 -0
  386. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/output_2.pb +0 -0
  387. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/model.onnx +0 -0
  388. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
  389. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
  390. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
  391. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
  392. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
  393. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
  394. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
  395. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
  396. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
  397. onnx/backend/test/data/node/test_attention_3d_scaled/model.onnx +0 -0
  398. onnx/backend/test/data/node/test_attention_3d_scaled/test_data_set_0/input_0.pb +0 -0
  399. onnx/backend/test/data/node/test_attention_3d_scaled/test_data_set_0/input_1.pb +0 -0
  400. onnx/backend/test/data/node/test_attention_3d_scaled/test_data_set_0/input_2.pb +0 -0
  401. onnx/backend/test/data/node/test_attention_3d_scaled/test_data_set_0/output_0.pb +0 -0
  402. onnx/backend/test/data/node/test_attention_3d_scaled_expanded/model.onnx +0 -0
  403. onnx/backend/test/data/node/test_attention_3d_scaled_expanded/test_data_set_0/input_0.pb +0 -0
  404. onnx/backend/test/data/node/test_attention_3d_scaled_expanded/test_data_set_0/input_1.pb +0 -0
  405. onnx/backend/test/data/node/test_attention_3d_scaled_expanded/test_data_set_0/input_2.pb +0 -0
  406. onnx/backend/test/data/node/test_attention_3d_scaled_expanded/test_data_set_0/output_0.pb +0 -0
  407. onnx/backend/test/data/node/test_attention_3d_softcap/model.onnx +0 -0
  408. onnx/backend/test/data/node/test_attention_3d_softcap/test_data_set_0/input_0.pb +0 -0
  409. onnx/backend/test/data/node/test_attention_3d_softcap/test_data_set_0/input_1.pb +0 -0
  410. onnx/backend/test/data/node/test_attention_3d_softcap/test_data_set_0/input_2.pb +0 -0
  411. onnx/backend/test/data/node/test_attention_3d_softcap/test_data_set_0/output_0.pb +0 -0
  412. onnx/backend/test/data/node/test_attention_3d_softcap_expanded/model.onnx +0 -0
  413. onnx/backend/test/data/node/test_attention_3d_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  414. onnx/backend/test/data/node/test_attention_3d_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  415. onnx/backend/test/data/node/test_attention_3d_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  416. onnx/backend/test/data/node/test_attention_3d_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  417. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/model.onnx +0 -0
  418. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_0.pb +0 -0
  419. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_1.pb +0 -0
  420. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_2.pb +0 -0
  421. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_3.pb +0 -0
  422. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_4.pb +0 -0
  423. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_5.pb +0 -0
  424. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/output_0.pb +0 -0
  425. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/output_1.pb +0 -0
  426. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/output_2.pb +0 -0
  427. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/model.onnx +0 -0
  428. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
  429. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
  430. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
  431. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
  432. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
  433. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
  434. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
  435. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
  436. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
  437. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/model.onnx +0 -0
  438. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_0.pb +0 -0
  439. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_1.pb +0 -0
  440. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_2.pb +0 -0
  441. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_3.pb +0 -0
  442. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_4.pb +0 -0
  443. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_5.pb +0 -0
  444. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/output_0.pb +0 -0
  445. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/output_1.pb +0 -0
  446. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/output_2.pb +0 -0
  447. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/output_3.pb +0 -0
  448. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/model.onnx +0 -0
  449. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_0.pb +0 -0
  450. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_1.pb +0 -0
  451. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_2.pb +0 -0
  452. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_3.pb +0 -0
  453. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_4.pb +0 -0
  454. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_5.pb +0 -0
  455. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_0.pb +0 -0
  456. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_1.pb +0 -0
  457. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_2.pb +0 -0
  458. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_3.pb +0 -0
  459. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/model.onnx +0 -0
  460. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/input_0.pb +0 -0
  461. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/input_1.pb +0 -0
  462. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/input_2.pb +0 -0
  463. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/input_3.pb +0 -0
  464. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/input_4.pb +0 -0
  465. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/input_5.pb +0 -0
  466. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/output_0.pb +0 -0
  467. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/output_1.pb +0 -0
  468. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/output_2.pb +0 -0
  469. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/output_3.pb +0 -0
  470. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/model.onnx +0 -0
  471. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_0.pb +0 -0
  472. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_1.pb +0 -0
  473. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_2.pb +0 -0
  474. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_3.pb +0 -0
  475. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_4.pb +0 -0
  476. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_5.pb +0 -0
  477. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_0.pb +0 -0
  478. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_1.pb +0 -0
  479. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_2.pb +0 -0
  480. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_3.pb +0 -0
  481. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/model.onnx +0 -0
  482. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_0.pb +0 -0
  483. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_1.pb +0 -0
  484. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_2.pb +0 -0
  485. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_3.pb +0 -0
  486. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_4.pb +0 -0
  487. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_5.pb +0 -0
  488. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/output_0.pb +0 -0
  489. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/output_1.pb +0 -0
  490. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/output_2.pb +0 -0
  491. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/output_3.pb +0 -0
  492. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/model.onnx +0 -0
  493. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  494. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  495. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  496. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/test_data_set_0/input_3.pb +0 -0
  497. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/test_data_set_0/input_4.pb +0 -0
  498. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/test_data_set_0/input_5.pb +0 -0
  499. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  500. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/test_data_set_0/output_1.pb +0 -0
  501. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/test_data_set_0/output_2.pb +0 -0
  502. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/test_data_set_0/output_3.pb +0 -0
  503. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/model.onnx +0 -0
  504. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_0.pb +0 -0
  505. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_1.pb +0 -0
  506. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_2.pb +0 -0
  507. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_3.pb +0 -0
  508. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_4.pb +0 -0
  509. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_5.pb +0 -0
  510. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/output_0.pb +0 -0
  511. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/output_1.pb +0 -0
  512. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/output_2.pb +0 -0
  513. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/output_3.pb +0 -0
  514. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/model.onnx +0 -0
  515. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/test_data_set_0/input_0.pb +0 -0
  516. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/test_data_set_0/input_1.pb +0 -0
  517. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/test_data_set_0/input_2.pb +0 -0
  518. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/test_data_set_0/input_3.pb +0 -0
  519. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/test_data_set_0/input_4.pb +0 -0
  520. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/test_data_set_0/input_5.pb +0 -0
  521. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/test_data_set_0/output_0.pb +0 -0
  522. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/test_data_set_0/output_1.pb +0 -0
  523. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/test_data_set_0/output_2.pb +0 -0
  524. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/test_data_set_0/output_3.pb +0 -0
  525. onnx/backend/test/data/node/test_attention_4d/model.onnx +0 -0
  526. onnx/backend/test/data/node/test_attention_4d/test_data_set_0/input_0.pb +0 -0
  527. onnx/backend/test/data/node/test_attention_4d/test_data_set_0/input_1.pb +0 -0
  528. onnx/backend/test/data/node/test_attention_4d/test_data_set_0/input_2.pb +0 -0
  529. onnx/backend/test/data/node/test_attention_4d/test_data_set_0/output_0.pb +0 -0
  530. onnx/backend/test/data/node/test_attention_4d_attn_mask/model.onnx +0 -0
  531. onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/input_0.pb +0 -0
  532. onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/input_1.pb +0 -0
  533. onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/input_2.pb +0 -0
  534. onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/input_3.pb +1 -0
  535. onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/output_0.pb +0 -0
  536. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/model.onnx +0 -0
  537. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/input_0.pb +0 -0
  538. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/input_1.pb +0 -0
  539. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/input_2.pb +0 -0
  540. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/input_3.pb +1 -0
  541. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/output_0.pb +0 -0
  542. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/model.onnx +0 -0
  543. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/input_0.pb +0 -0
  544. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/input_1.pb +0 -0
  545. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/input_2.pb +0 -0
  546. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/input_3.pb +1 -0
  547. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/output_0.pb +0 -0
  548. onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/model.onnx +0 -0
  549. onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
  550. onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
  551. onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
  552. onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/input_3.pb +1 -0
  553. onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
  554. onnx/backend/test/data/node/test_attention_4d_causal/model.onnx +0 -0
  555. onnx/backend/test/data/node/test_attention_4d_causal/test_data_set_0/input_0.pb +0 -0
  556. onnx/backend/test/data/node/test_attention_4d_causal/test_data_set_0/input_1.pb +0 -0
  557. onnx/backend/test/data/node/test_attention_4d_causal/test_data_set_0/input_2.pb +0 -0
  558. onnx/backend/test/data/node/test_attention_4d_causal/test_data_set_0/output_0.pb +0 -0
  559. onnx/backend/test/data/node/test_attention_4d_causal_expanded/model.onnx +0 -0
  560. onnx/backend/test/data/node/test_attention_4d_causal_expanded/test_data_set_0/input_0.pb +0 -0
  561. onnx/backend/test/data/node/test_attention_4d_causal_expanded/test_data_set_0/input_1.pb +0 -0
  562. onnx/backend/test/data/node/test_attention_4d_causal_expanded/test_data_set_0/input_2.pb +0 -0
  563. onnx/backend/test/data/node/test_attention_4d_causal_expanded/test_data_set_0/output_0.pb +0 -0
  564. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/model.onnx +0 -0
  565. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/test_data_set_0/input_0.pb +0 -0
  566. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/test_data_set_0/input_1.pb +0 -0
  567. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/test_data_set_0/input_2.pb +0 -0
  568. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/test_data_set_0/output_0.pb +0 -0
  569. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/model.onnx +0 -0
  570. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/input_0.pb +0 -0
  571. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/input_1.pb +0 -0
  572. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/input_2.pb +0 -0
  573. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/input_3.pb +0 -0
  574. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/output_0.pb +0 -0
  575. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/model.onnx +0 -0
  576. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
  577. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
  578. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
  579. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_3.pb +0 -0
  580. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
  581. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/model.onnx +0 -0
  582. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/test_data_set_0/input_0.pb +0 -0
  583. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/test_data_set_0/input_1.pb +0 -0
  584. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/test_data_set_0/input_2.pb +0 -0
  585. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/test_data_set_0/output_0.pb +0 -0
  586. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/model.onnx +0 -0
  587. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/test_data_set_0/input_0.pb +0 -0
  588. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/test_data_set_0/input_1.pb +0 -0
  589. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/test_data_set_0/input_2.pb +0 -0
  590. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/test_data_set_0/output_0.pb +0 -0
  591. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/model.onnx +0 -0
  592. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/test_data_set_0/input_0.pb +0 -0
  593. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/test_data_set_0/input_1.pb +0 -0
  594. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/test_data_set_0/input_2.pb +0 -0
  595. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/test_data_set_0/output_0.pb +0 -0
  596. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/model.onnx +0 -0
  597. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/test_data_set_0/input_0.pb +0 -0
  598. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/test_data_set_0/input_1.pb +0 -0
  599. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/test_data_set_0/input_2.pb +0 -0
  600. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/test_data_set_0/output_0.pb +0 -0
  601. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/model.onnx +0 -0
  602. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_0.pb +0 -0
  603. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_1.pb +0 -0
  604. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_2.pb +0 -0
  605. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/test_data_set_0/output_0.pb +0 -0
  606. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/model.onnx +0 -0
  607. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/test_data_set_0/input_0.pb +0 -0
  608. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/test_data_set_0/input_1.pb +0 -0
  609. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/test_data_set_0/input_2.pb +0 -0
  610. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/test_data_set_0/output_0.pb +0 -0
  611. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/model.onnx +0 -0
  612. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  613. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  614. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  615. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  616. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/model.onnx +0 -0
  617. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_0.pb +0 -0
  618. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_1.pb +0 -0
  619. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_2.pb +0 -0
  620. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_3.pb +0 -0
  621. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_4.pb +0 -0
  622. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_5.pb +0 -0
  623. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/output_0.pb +0 -0
  624. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/output_1.pb +0 -0
  625. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/output_2.pb +0 -0
  626. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/model.onnx +0 -0
  627. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
  628. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
  629. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
  630. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
  631. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
  632. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
  633. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
  634. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
  635. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
  636. onnx/backend/test/data/node/test_attention_4d_expanded/model.onnx +0 -0
  637. onnx/backend/test/data/node/test_attention_4d_expanded/test_data_set_0/input_0.pb +0 -0
  638. onnx/backend/test/data/node/test_attention_4d_expanded/test_data_set_0/input_1.pb +0 -0
  639. onnx/backend/test/data/node/test_attention_4d_expanded/test_data_set_0/input_2.pb +0 -0
  640. onnx/backend/test/data/node/test_attention_4d_expanded/test_data_set_0/output_0.pb +0 -0
  641. onnx/backend/test/data/node/test_attention_4d_gqa/model.onnx +0 -0
  642. onnx/backend/test/data/node/test_attention_4d_gqa/test_data_set_0/input_0.pb +0 -0
  643. onnx/backend/test/data/node/test_attention_4d_gqa/test_data_set_0/input_1.pb +0 -0
  644. onnx/backend/test/data/node/test_attention_4d_gqa/test_data_set_0/input_2.pb +0 -0
  645. onnx/backend/test/data/node/test_attention_4d_gqa/test_data_set_0/output_0.pb +0 -0
  646. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/model.onnx +0 -0
  647. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/input_0.pb +0 -0
  648. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/input_1.pb +0 -0
  649. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/input_2.pb +0 -0
  650. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/input_3.pb +1 -0
  651. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/output_0.pb +0 -0
  652. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/model.onnx +0 -0
  653. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
  654. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
  655. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
  656. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/input_3.pb +1 -0
  657. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
  658. onnx/backend/test/data/node/test_attention_4d_gqa_causal/model.onnx +0 -0
  659. onnx/backend/test/data/node/test_attention_4d_gqa_causal/test_data_set_0/input_0.pb +0 -0
  660. onnx/backend/test/data/node/test_attention_4d_gqa_causal/test_data_set_0/input_1.pb +0 -0
  661. onnx/backend/test/data/node/test_attention_4d_gqa_causal/test_data_set_0/input_2.pb +0 -0
  662. onnx/backend/test/data/node/test_attention_4d_gqa_causal/test_data_set_0/output_0.pb +0 -0
  663. onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/model.onnx +0 -0
  664. onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/test_data_set_0/input_0.pb +0 -0
  665. onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/test_data_set_0/input_1.pb +0 -0
  666. onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/test_data_set_0/input_2.pb +0 -0
  667. onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/test_data_set_0/output_0.pb +0 -0
  668. onnx/backend/test/data/node/test_attention_4d_gqa_expanded/model.onnx +0 -0
  669. onnx/backend/test/data/node/test_attention_4d_gqa_expanded/test_data_set_0/input_0.pb +0 -0
  670. onnx/backend/test/data/node/test_attention_4d_gqa_expanded/test_data_set_0/input_1.pb +0 -0
  671. onnx/backend/test/data/node/test_attention_4d_gqa_expanded/test_data_set_0/input_2.pb +0 -0
  672. onnx/backend/test/data/node/test_attention_4d_gqa_expanded/test_data_set_0/output_0.pb +0 -0
  673. onnx/backend/test/data/node/test_attention_4d_gqa_scaled/model.onnx +0 -0
  674. onnx/backend/test/data/node/test_attention_4d_gqa_scaled/test_data_set_0/input_0.pb +0 -0
  675. onnx/backend/test/data/node/test_attention_4d_gqa_scaled/test_data_set_0/input_1.pb +0 -0
  676. onnx/backend/test/data/node/test_attention_4d_gqa_scaled/test_data_set_0/input_2.pb +0 -0
  677. onnx/backend/test/data/node/test_attention_4d_gqa_scaled/test_data_set_0/output_0.pb +0 -0
  678. onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/model.onnx +0 -0
  679. onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/test_data_set_0/input_0.pb +0 -0
  680. onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/test_data_set_0/input_1.pb +0 -0
  681. onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/test_data_set_0/input_2.pb +0 -0
  682. onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/test_data_set_0/output_0.pb +0 -0
  683. onnx/backend/test/data/node/test_attention_4d_gqa_softcap/model.onnx +0 -0
  684. onnx/backend/test/data/node/test_attention_4d_gqa_softcap/test_data_set_0/input_0.pb +0 -0
  685. onnx/backend/test/data/node/test_attention_4d_gqa_softcap/test_data_set_0/input_1.pb +0 -0
  686. onnx/backend/test/data/node/test_attention_4d_gqa_softcap/test_data_set_0/input_2.pb +0 -0
  687. onnx/backend/test/data/node/test_attention_4d_gqa_softcap/test_data_set_0/output_0.pb +0 -0
  688. onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/model.onnx +0 -0
  689. onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  690. onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  691. onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  692. onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  693. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/model.onnx +0 -0
  694. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_0.pb +0 -0
  695. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_1.pb +0 -0
  696. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_2.pb +0 -0
  697. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_3.pb +0 -0
  698. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_4.pb +0 -0
  699. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_5.pb +0 -0
  700. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/output_0.pb +0 -0
  701. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/output_1.pb +0 -0
  702. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/output_2.pb +0 -0
  703. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/model.onnx +0 -0
  704. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
  705. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
  706. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
  707. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
  708. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
  709. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
  710. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
  711. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
  712. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
  713. onnx/backend/test/data/node/test_attention_4d_scaled/model.onnx +0 -0
  714. onnx/backend/test/data/node/test_attention_4d_scaled/test_data_set_0/input_0.pb +0 -0
  715. onnx/backend/test/data/node/test_attention_4d_scaled/test_data_set_0/input_1.pb +0 -0
  716. onnx/backend/test/data/node/test_attention_4d_scaled/test_data_set_0/input_2.pb +0 -0
  717. onnx/backend/test/data/node/test_attention_4d_scaled/test_data_set_0/output_0.pb +0 -0
  718. onnx/backend/test/data/node/test_attention_4d_scaled_expanded/model.onnx +0 -0
  719. onnx/backend/test/data/node/test_attention_4d_scaled_expanded/test_data_set_0/input_0.pb +0 -0
  720. onnx/backend/test/data/node/test_attention_4d_scaled_expanded/test_data_set_0/input_1.pb +0 -0
  721. onnx/backend/test/data/node/test_attention_4d_scaled_expanded/test_data_set_0/input_2.pb +0 -0
  722. onnx/backend/test/data/node/test_attention_4d_scaled_expanded/test_data_set_0/output_0.pb +0 -0
  723. onnx/backend/test/data/node/test_attention_4d_softcap/model.onnx +0 -0
  724. onnx/backend/test/data/node/test_attention_4d_softcap/test_data_set_0/input_0.pb +0 -0
  725. onnx/backend/test/data/node/test_attention_4d_softcap/test_data_set_0/input_1.pb +0 -0
  726. onnx/backend/test/data/node/test_attention_4d_softcap/test_data_set_0/input_2.pb +0 -0
  727. onnx/backend/test/data/node/test_attention_4d_softcap/test_data_set_0/output_0.pb +0 -0
  728. onnx/backend/test/data/node/test_attention_4d_softcap_expanded/model.onnx +0 -0
  729. onnx/backend/test/data/node/test_attention_4d_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  730. onnx/backend/test/data/node/test_attention_4d_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  731. onnx/backend/test/data/node/test_attention_4d_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  732. onnx/backend/test/data/node/test_attention_4d_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  733. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/model.onnx +0 -0
  734. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_0.pb +0 -0
  735. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_1.pb +0 -0
  736. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_2.pb +0 -0
  737. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_3.pb +0 -0
  738. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_4.pb +0 -0
  739. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_5.pb +0 -0
  740. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/output_0.pb +0 -0
  741. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/output_1.pb +0 -0
  742. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/output_2.pb +0 -0
  743. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/model.onnx +0 -0
  744. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
  745. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
  746. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
  747. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
  748. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
  749. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
  750. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
  751. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
  752. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
  753. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/model.onnx +0 -0
  754. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_0.pb +0 -0
  755. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_1.pb +0 -0
  756. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_2.pb +0 -0
  757. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_3.pb +0 -0
  758. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_4.pb +0 -0
  759. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_5.pb +0 -0
  760. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/output_0.pb +0 -0
  761. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/output_1.pb +0 -0
  762. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/output_2.pb +0 -0
  763. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/output_3.pb +0 -0
  764. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/model.onnx +0 -0
  765. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_0.pb +0 -0
  766. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_1.pb +0 -0
  767. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_2.pb +0 -0
  768. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_3.pb +0 -0
  769. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_4.pb +0 -0
  770. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_5.pb +0 -0
  771. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_0.pb +0 -0
  772. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_1.pb +0 -0
  773. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_2.pb +0 -0
  774. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_3.pb +0 -0
  775. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/model.onnx +0 -0
  776. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/input_0.pb +0 -0
  777. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/input_1.pb +0 -0
  778. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/input_2.pb +0 -0
  779. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/input_3.pb +0 -0
  780. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/input_4.pb +0 -0
  781. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/input_5.pb +0 -0
  782. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/output_0.pb +0 -0
  783. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/output_1.pb +0 -0
  784. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/output_2.pb +0 -0
  785. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/test_data_set_0/output_3.pb +0 -0
  786. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/model.onnx +0 -0
  787. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_0.pb +0 -0
  788. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_1.pb +0 -0
  789. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_2.pb +0 -0
  790. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_3.pb +0 -0
  791. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_4.pb +0 -0
  792. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_5.pb +0 -0
  793. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_0.pb +0 -0
  794. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_1.pb +0 -0
  795. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_2.pb +0 -0
  796. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_3.pb +0 -0
  797. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/model.onnx +0 -0
  798. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/input_0.pb +0 -0
  799. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/input_1.pb +0 -0
  800. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/input_2.pb +0 -0
  801. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/output_0.pb +0 -0
  802. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/output_1.pb +0 -0
  803. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/model.onnx +0 -0
  804. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/input_0.pb +0 -0
  805. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/input_1.pb +0 -0
  806. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/input_2.pb +0 -0
  807. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/input_3.pb +1 -0
  808. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/output_0.pb +0 -0
  809. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/output_1.pb +0 -0
  810. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/model.onnx +0 -0
  811. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/input_0.pb +0 -0
  812. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/input_1.pb +0 -0
  813. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/input_2.pb +0 -0
  814. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/input_3.pb +1 -0
  815. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/output_0.pb +0 -0
  816. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/output_1.pb +0 -0
  817. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/model.onnx +0 -0
  818. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/input_0.pb +0 -0
  819. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/input_1.pb +0 -0
  820. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/input_2.pb +0 -0
  821. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/output_0.pb +0 -0
  822. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/output_1.pb +0 -0
  823. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/model.onnx +0 -0
  824. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/input_0.pb +0 -0
  825. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/input_1.pb +0 -0
  826. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/input_2.pb +0 -0
  827. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/input_3.pb +1 -0
  828. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/output_0.pb +0 -0
  829. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/output_1.pb +0 -0
  830. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/model.onnx +0 -0
  831. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  832. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  833. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  834. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/input_3.pb +1 -0
  835. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  836. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/output_1.pb +0 -0
  837. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/model.onnx +0 -0
  838. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/input_0.pb +0 -0
  839. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/input_1.pb +0 -0
  840. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/input_2.pb +0 -0
  841. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/input_3.pb +1 -0
  842. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/output_0.pb +0 -0
  843. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/output_1.pb +0 -0
  844. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/model.onnx +0 -0
  845. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/input_0.pb +0 -0
  846. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/input_1.pb +0 -0
  847. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/input_2.pb +0 -0
  848. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/input_3.pb +1 -0
  849. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/output_0.pb +0 -0
  850. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/output_1.pb +0 -0
  851. onnx/backend/test/data/node/test_averagepool_1d_default/model.onnx +0 -0
  852. onnx/backend/test/data/node/test_averagepool_2d_ceil/model.onnx +0 -0
  853. onnx/backend/test/data/node/test_averagepool_2d_ceil_last_window_starts_on_pad/model.onnx +0 -0
  854. onnx/backend/test/data/node/test_averagepool_2d_ceil_last_window_starts_on_pad/test_data_set_0/input_0.pb +1 -0
  855. onnx/backend/test/data/node/test_averagepool_2d_ceil_last_window_starts_on_pad/test_data_set_0/output_0.pb +1 -0
  856. onnx/backend/test/data/node/test_averagepool_2d_default/model.onnx +0 -0
  857. onnx/backend/test/data/node/test_averagepool_2d_dilations/model.onnx +0 -0
  858. onnx/backend/test/data/node/test_averagepool_2d_pads/model.onnx +0 -0
  859. onnx/backend/test/data/node/test_averagepool_2d_pads_count_include_pad/model.onnx +0 -0
  860. onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads/model.onnx +0 -0
  861. onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/model.onnx +0 -0
  862. onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/model.onnx +0 -0
  863. onnx/backend/test/data/node/test_averagepool_2d_precomputed_strides/model.onnx +0 -0
  864. onnx/backend/test/data/node/test_averagepool_2d_same_lower/model.onnx +0 -0
  865. onnx/backend/test/data/node/test_averagepool_2d_same_upper/model.onnx +0 -0
  866. onnx/backend/test/data/node/test_averagepool_2d_strides/model.onnx +0 -0
  867. onnx/backend/test/data/node/test_averagepool_3d_default/model.onnx +0 -0
  868. onnx/backend/test/data/node/test_averagepool_3d_dilations_large_count_include_pad_is_0_ceil_mode_is_False/model.onnx +0 -0
  869. onnx/backend/test/data/node/test_averagepool_3d_dilations_large_count_include_pad_is_0_ceil_mode_is_True/model.onnx +0 -0
  870. onnx/backend/test/data/node/test_averagepool_3d_dilations_large_count_include_pad_is_1_ceil_mode_is_False/model.onnx +0 -0
  871. onnx/backend/test/data/node/test_averagepool_3d_dilations_large_count_include_pad_is_1_ceil_mode_is_True/model.onnx +0 -0
  872. onnx/backend/test/data/node/test_averagepool_3d_dilations_large_count_include_pad_is_1_ceil_mode_is_True/test_data_set_0/output_0.pb +0 -0
  873. onnx/backend/test/data/node/test_averagepool_3d_dilations_small/model.onnx +0 -0
  874. onnx/backend/test/data/node/test_basic_conv_with_padding/model.onnx +0 -0
  875. onnx/backend/test/data/node/test_basic_conv_without_padding/model.onnx +0 -0
  876. onnx/backend/test/data/node/test_basic_deform_conv_with_padding/model.onnx +0 -0
  877. onnx/backend/test/data/node/test_basic_deform_conv_without_padding/model.onnx +0 -0
  878. onnx/backend/test/data/node/test_bernoulli/model.onnx +0 -0
  879. onnx/backend/test/data/node/test_bernoulli_double/model.onnx +0 -0
  880. onnx/backend/test/data/node/test_bernoulli_double_expanded/model.onnx +0 -0
  881. onnx/backend/test/data/node/test_bernoulli_expanded/model.onnx +0 -0
  882. onnx/backend/test/data/node/test_bernoulli_seed/model.onnx +0 -0
  883. onnx/backend/test/data/node/test_bernoulli_seed_expanded/model.onnx +0 -0
  884. onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/model.onnx +0 -0
  885. onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/model.onnx +0 -0
  886. onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/model.onnx +0 -0
  887. onnx/backend/test/data/node/test_cast_FLOAT16_to_DOUBLE/model.onnx +0 -0
  888. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT/model.onnx +0 -0
  889. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT4E2M1/model.onnx +0 -0
  890. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT4E2M1/test_data_set_0/input_0.pb +2 -0
  891. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT4E2M1/test_data_set_0/output_0.pb +2 -0
  892. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FN/model.onnx +0 -0
  893. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  894. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2/model.onnx +0 -0
  895. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  896. onnx/backend/test/data/node/test_cast_FLOAT16_to_INT4/model.onnx +0 -0
  897. onnx/backend/test/data/node/test_cast_FLOAT16_to_INT4/test_data_set_0/output_0.pb +1 -1
  898. onnx/backend/test/data/node/test_cast_FLOAT16_to_UINT4/model.onnx +0 -0
  899. onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT/model.onnx +0 -0
  900. onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT/test_data_set_0/input_0.pb +2 -0
  901. onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT/test_data_set_0/output_0.pb +0 -0
  902. onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT16/model.onnx +0 -0
  903. onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT16/test_data_set_0/input_0.pb +2 -0
  904. onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
  905. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT/model.onnx +0 -0
  906. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT16/model.onnx +0 -0
  907. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT/model.onnx +0 -0
  908. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT16/model.onnx +0 -0
  909. onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT/model.onnx +0 -0
  910. onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT16/model.onnx +0 -0
  911. onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT/model.onnx +0 -0
  912. onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT16/model.onnx +0 -0
  913. onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/model.onnx +0 -0
  914. onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/model.onnx +0 -0
  915. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/model.onnx +0 -0
  916. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT4E2M1/model.onnx +0 -0
  917. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT4E2M1/test_data_set_0/input_0.pb +0 -0
  918. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT4E2M1/test_data_set_0/output_0.pb +2 -0
  919. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
  920. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  921. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
  922. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  923. onnx/backend/test/data/node/test_cast_FLOAT_to_INT4/model.onnx +0 -0
  924. onnx/backend/test/data/node/test_cast_FLOAT_to_INT4/test_data_set_0/output_0.pb +1 -1
  925. onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/model.onnx +0 -0
  926. onnx/backend/test/data/node/test_cast_FLOAT_to_UINT4/model.onnx +0 -0
  927. onnx/backend/test/data/node/test_cast_INT4_to_FLOAT/model.onnx +0 -0
  928. onnx/backend/test/data/node/test_cast_INT4_to_FLOAT/test_data_set_0/input_0.pb +1 -1
  929. onnx/backend/test/data/node/test_cast_INT4_to_FLOAT16/model.onnx +0 -0
  930. onnx/backend/test/data/node/test_cast_INT4_to_FLOAT16/test_data_set_0/input_0.pb +1 -1
  931. onnx/backend/test/data/node/test_cast_INT4_to_INT8/model.onnx +0 -0
  932. onnx/backend/test/data/node/test_cast_INT4_to_INT8/test_data_set_0/input_0.pb +1 -1
  933. onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/model.onnx +0 -0
  934. onnx/backend/test/data/node/test_cast_UINT4_to_FLOAT/model.onnx +0 -0
  935. onnx/backend/test/data/node/test_cast_UINT4_to_FLOAT16/model.onnx +0 -0
  936. onnx/backend/test/data/node/test_cast_UINT4_to_UINT8/model.onnx +0 -0
  937. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FN/model.onnx +0 -0
  938. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  939. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2/model.onnx +0 -0
  940. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  941. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
  942. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  943. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
  944. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  945. onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/model.onnx +0 -0
  946. onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/model.onnx +0 -0
  947. onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/model.onnx +0 -0
  948. onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/model.onnx +0 -0
  949. onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16_expanded/model.onnx +0 -0
  950. onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/model.onnx +0 -0
  951. onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/model.onnx +0 -0
  952. onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/model.onnx +0 -0
  953. onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT/model.onnx +0 -0
  954. onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT_expanded/model.onnx +0 -0
  955. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT/model.onnx +0 -0
  956. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_expanded/model.onnx +0 -0
  957. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT/model.onnx +0 -0
  958. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT_expanded/model.onnx +0 -0
  959. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT/model.onnx +0 -0
  960. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_expanded/model.onnx +0 -0
  961. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT/model.onnx +0 -0
  962. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT_expanded/model.onnx +0 -0
  963. onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/model.onnx +0 -0
  964. onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/model.onnx +0 -0
  965. onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/model.onnx +0 -0
  966. onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/model.onnx +0 -0
  967. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/model.onnx +0 -0
  968. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/model.onnx +0 -0
  969. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
  970. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  971. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_expanded/model.onnx +0 -0
  972. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN_expanded/model.onnx +0 -0
  973. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
  974. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  975. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_expanded/model.onnx +0 -0
  976. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2_expanded/model.onnx +0 -0
  977. onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/model.onnx +0 -0
  978. onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/model.onnx +0 -0
  979. onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/model.onnx +0 -0
  980. onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/model.onnx +0 -0
  981. onnx/backend/test/data/node/test_clip_min_greater_than_max/model.onnx +0 -0
  982. onnx/backend/test/data/node/test_clip_min_greater_than_max/test_data_set_0/input_0.pb +0 -0
  983. onnx/backend/test/data/node/test_clip_min_greater_than_max/test_data_set_0/input_1.pb +0 -0
  984. onnx/backend/test/data/node/test_clip_min_greater_than_max/test_data_set_0/input_2.pb +0 -0
  985. onnx/backend/test/data/node/test_clip_min_greater_than_max/test_data_set_0/output_0.pb +0 -0
  986. onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/model.onnx +0 -0
  987. onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/test_data_set_0/input_0.pb +0 -0
  988. onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/test_data_set_0/input_1.pb +0 -0
  989. onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/test_data_set_0/input_2.pb +0 -0
  990. onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/test_data_set_0/output_0.pb +0 -0
  991. onnx/backend/test/data/node/test_constant/model.onnx +0 -0
  992. onnx/backend/test/data/node/test_constant_pad/model.onnx +0 -0
  993. onnx/backend/test/data/node/test_constant_pad_axes/model.onnx +0 -0
  994. onnx/backend/test/data/node/test_constant_pad_negative_axes/model.onnx +0 -0
  995. onnx/backend/test/data/node/test_constantofshape_float_ones/model.onnx +0 -0
  996. onnx/backend/test/data/node/test_constantofshape_int_shape_zero/model.onnx +0 -0
  997. onnx/backend/test/data/node/test_constantofshape_int_zeros/model.onnx +0 -0
  998. onnx/backend/test/data/node/test_conv_with_autopad_same/model.onnx +0 -0
  999. onnx/backend/test/data/node/test_conv_with_strides_and_asymmetric_padding/model.onnx +0 -0
  1000. onnx/backend/test/data/node/test_conv_with_strides_no_padding/model.onnx +0 -0
  1001. onnx/backend/test/data/node/test_conv_with_strides_padding/model.onnx +0 -0
  1002. onnx/backend/test/data/node/test_convtranspose/model.onnx +0 -0
  1003. onnx/backend/test/data/node/test_convtranspose_1d/model.onnx +0 -0
  1004. onnx/backend/test/data/node/test_convtranspose_3d/model.onnx +0 -0
  1005. onnx/backend/test/data/node/test_convtranspose_autopad_same/model.onnx +0 -0
  1006. onnx/backend/test/data/node/test_convtranspose_dilations/model.onnx +0 -0
  1007. onnx/backend/test/data/node/test_convtranspose_group_2/model.onnx +0 -0
  1008. onnx/backend/test/data/node/test_convtranspose_group_2/test_data_set_0/input_0.pb +0 -0
  1009. onnx/backend/test/data/node/test_convtranspose_group_2/test_data_set_0/input_1.pb +0 -0
  1010. onnx/backend/test/data/node/test_convtranspose_group_2/test_data_set_0/output_0.pb +0 -0
  1011. onnx/backend/test/data/node/test_convtranspose_group_2_image_3/model.onnx +0 -0
  1012. onnx/backend/test/data/node/test_convtranspose_group_2_image_3/test_data_set_0/input_0.pb +0 -0
  1013. onnx/backend/test/data/node/test_convtranspose_group_2_image_3/test_data_set_0/input_1.pb +0 -0
  1014. onnx/backend/test/data/node/test_convtranspose_group_2_image_3/test_data_set_0/output_0.pb +0 -0
  1015. onnx/backend/test/data/node/test_convtranspose_kernel_shape/model.onnx +0 -0
  1016. onnx/backend/test/data/node/test_convtranspose_output_shape/model.onnx +0 -0
  1017. onnx/backend/test/data/node/test_convtranspose_pad/model.onnx +0 -0
  1018. onnx/backend/test/data/node/test_convtranspose_pads/model.onnx +0 -0
  1019. onnx/backend/test/data/node/test_cos/model.onnx +0 -0
  1020. onnx/backend/test/data/node/test_cos_example/model.onnx +0 -0
  1021. onnx/backend/test/data/node/test_cosh/model.onnx +0 -0
  1022. onnx/backend/test/data/node/test_cosh_example/model.onnx +0 -0
  1023. onnx/backend/test/data/node/test_deform_conv_with_mask_bias/model.onnx +0 -0
  1024. onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups/model.onnx +0 -0
  1025. onnx/backend/test/data/node/test_dequantizelinear/model.onnx +0 -0
  1026. onnx/backend/test/data/node/test_dequantizelinear_axis/model.onnx +0 -0
  1027. onnx/backend/test/data/node/test_dequantizelinear_blocked/model.onnx +0 -0
  1028. onnx/backend/test/data/node/test_dequantizelinear_e4m3fn/model.onnx +0 -0
  1029. onnx/backend/test/data/node/test_dequantizelinear_e4m3fn_float16/model.onnx +0 -0
  1030. onnx/backend/test/data/node/test_dequantizelinear_e4m3fn_zero_point/model.onnx +0 -0
  1031. onnx/backend/test/data/node/test_dequantizelinear_e5m2/model.onnx +0 -0
  1032. onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/model.onnx +0 -0
  1033. onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/test_data_set_0/input_0.pb +1 -0
  1034. onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/test_data_set_0/input_1.pb +0 -0
  1035. onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/test_data_set_0/input_2.pb +0 -0
  1036. onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/test_data_set_0/output_0.pb +0 -0
  1037. onnx/backend/test/data/node/test_dequantizelinear_int16/model.onnx +0 -0
  1038. onnx/backend/test/data/node/test_dequantizelinear_int4/model.onnx +0 -0
  1039. onnx/backend/test/data/node/test_dequantizelinear_int4/test_data_set_0/input_0.pb +1 -1
  1040. onnx/backend/test/data/node/test_dequantizelinear_uint16/model.onnx +0 -0
  1041. onnx/backend/test/data/node/test_dequantizelinear_uint4/model.onnx +0 -0
  1042. onnx/backend/test/data/node/test_det_2d/model.onnx +0 -0
  1043. onnx/backend/test/data/node/test_det_nd/model.onnx +0 -0
  1044. onnx/backend/test/data/node/test_dropout_default/model.onnx +0 -0
  1045. onnx/backend/test/data/node/test_dropout_default_mask/model.onnx +0 -0
  1046. onnx/backend/test/data/node/test_dropout_default_mask_ratio/model.onnx +0 -0
  1047. onnx/backend/test/data/node/test_dropout_default_ratio/model.onnx +0 -0
  1048. onnx/backend/test/data/node/test_edge_pad/model.onnx +0 -0
  1049. onnx/backend/test/data/node/test_elu/model.onnx +0 -0
  1050. onnx/backend/test/data/node/test_elu_default/model.onnx +0 -0
  1051. onnx/backend/test/data/node/test_elu_example/model.onnx +0 -0
  1052. onnx/backend/test/data/node/test_eyelike_populate_off_main_diagonal/model.onnx +0 -0
  1053. onnx/backend/test/data/node/test_eyelike_with_dtype/model.onnx +0 -0
  1054. onnx/backend/test/data/node/test_eyelike_without_dtype/model.onnx +0 -0
  1055. onnx/backend/test/data/node/test_flatten_axis0/model.onnx +0 -0
  1056. onnx/backend/test/data/node/test_flatten_axis1/model.onnx +0 -0
  1057. onnx/backend/test/data/node/test_flatten_axis2/model.onnx +0 -0
  1058. onnx/backend/test/data/node/test_flatten_axis3/model.onnx +0 -0
  1059. onnx/backend/test/data/node/test_flatten_default_axis/model.onnx +0 -0
  1060. onnx/backend/test/data/node/test_flatten_negative_axis1/model.onnx +0 -0
  1061. onnx/backend/test/data/node/test_flatten_negative_axis2/model.onnx +0 -0
  1062. onnx/backend/test/data/node/test_flatten_negative_axis3/model.onnx +0 -0
  1063. onnx/backend/test/data/node/test_flatten_negative_axis4/model.onnx +0 -0
  1064. onnx/backend/test/data/node/test_globalaveragepool/model.onnx +0 -0
  1065. onnx/backend/test/data/node/test_globalaveragepool_precomputed/model.onnx +0 -0
  1066. onnx/backend/test/data/node/test_globalmaxpool/model.onnx +0 -0
  1067. onnx/backend/test/data/node/test_globalmaxpool_precomputed/model.onnx +0 -0
  1068. onnx/backend/test/data/node/test_gridsample/model.onnx +0 -0
  1069. onnx/backend/test/data/node/test_gridsample_aligncorners_true/model.onnx +0 -0
  1070. onnx/backend/test/data/node/test_gridsample_bicubic/model.onnx +0 -0
  1071. onnx/backend/test/data/node/test_gridsample_bicubic_align_corners_0_additional_1/model.onnx +0 -0
  1072. onnx/backend/test/data/node/test_gridsample_bicubic_align_corners_1_additional_1/model.onnx +0 -0
  1073. onnx/backend/test/data/node/test_gridsample_bilinear/model.onnx +0 -0
  1074. onnx/backend/test/data/node/test_gridsample_bilinear_align_corners_0_additional_1/model.onnx +0 -0
  1075. onnx/backend/test/data/node/test_gridsample_bilinear_align_corners_1_additional_1/model.onnx +0 -0
  1076. onnx/backend/test/data/node/test_gridsample_border_padding/model.onnx +0 -0
  1077. onnx/backend/test/data/node/test_gridsample_nearest/model.onnx +0 -0
  1078. onnx/backend/test/data/node/test_gridsample_nearest_align_corners_0_additional_1/model.onnx +0 -0
  1079. onnx/backend/test/data/node/test_gridsample_nearest_align_corners_1_additional_1/model.onnx +0 -0
  1080. onnx/backend/test/data/node/test_gridsample_reflection_padding/model.onnx +0 -0
  1081. onnx/backend/test/data/node/test_gridsample_volumetric_bilinear_align_corners_0/model.onnx +0 -0
  1082. onnx/backend/test/data/node/test_gridsample_volumetric_bilinear_align_corners_1/model.onnx +0 -0
  1083. onnx/backend/test/data/node/test_gridsample_volumetric_nearest_align_corners_0/model.onnx +0 -0
  1084. onnx/backend/test/data/node/test_gridsample_volumetric_nearest_align_corners_1/model.onnx +0 -0
  1085. onnx/backend/test/data/node/test_gridsample_zeros_padding/model.onnx +0 -0
  1086. onnx/backend/test/data/node/test_gru_batchwise/model.onnx +0 -0
  1087. onnx/backend/test/data/node/test_gru_defaults/model.onnx +0 -0
  1088. onnx/backend/test/data/node/test_gru_seq_length/model.onnx +0 -0
  1089. onnx/backend/test/data/node/test_gru_with_initial_bias/model.onnx +0 -0
  1090. onnx/backend/test/data/node/test_hardsigmoid/model.onnx +0 -0
  1091. onnx/backend/test/data/node/test_hardsigmoid_default/model.onnx +0 -0
  1092. onnx/backend/test/data/node/test_hardsigmoid_example/model.onnx +0 -0
  1093. onnx/backend/test/data/node/test_hardswish/model.onnx +0 -0
  1094. onnx/backend/test/data/node/test_hardswish_expanded/model.onnx +0 -0
  1095. onnx/backend/test/data/node/test_identity/model.onnx +0 -0
  1096. onnx/backend/test/data/node/test_identity_sequence/model.onnx +0 -0
  1097. onnx/backend/test/data/node/test_instancenorm_epsilon/model.onnx +0 -0
  1098. onnx/backend/test/data/node/test_instancenorm_example/model.onnx +0 -0
  1099. onnx/backend/test/data/node/test_lppool_1d_default/model.onnx +0 -0
  1100. onnx/backend/test/data/node/test_lppool_1d_default/test_data_set_0/output_0.pb +2 -2
  1101. onnx/backend/test/data/node/test_lppool_2d_default/model.onnx +0 -0
  1102. onnx/backend/test/data/node/test_lppool_2d_default/test_data_set_0/output_0.pb +0 -0
  1103. onnx/backend/test/data/node/test_lppool_2d_dilations/model.onnx +0 -0
  1104. onnx/backend/test/data/node/test_lppool_2d_pads/model.onnx +0 -0
  1105. onnx/backend/test/data/node/test_lppool_2d_pads/test_data_set_0/output_0.pb +0 -0
  1106. onnx/backend/test/data/node/test_lppool_2d_same_lower/model.onnx +0 -0
  1107. onnx/backend/test/data/node/test_lppool_2d_same_lower/test_data_set_0/output_0.pb +0 -0
  1108. onnx/backend/test/data/node/test_lppool_2d_same_upper/model.onnx +0 -0
  1109. onnx/backend/test/data/node/test_lppool_2d_same_upper/test_data_set_0/output_0.pb +0 -0
  1110. onnx/backend/test/data/node/test_lppool_2d_strides/model.onnx +0 -0
  1111. onnx/backend/test/data/node/test_lppool_2d_strides/test_data_set_0/output_0.pb +0 -0
  1112. onnx/backend/test/data/node/test_lppool_3d_default/model.onnx +0 -0
  1113. onnx/backend/test/data/node/test_lppool_3d_default/test_data_set_0/output_0.pb +0 -0
  1114. onnx/backend/test/data/node/test_lrn_default/test_data_set_0/output_0.pb +0 -0
  1115. onnx/backend/test/data/node/test_lstm_batchwise/model.onnx +0 -0
  1116. onnx/backend/test/data/node/test_lstm_defaults/model.onnx +0 -0
  1117. onnx/backend/test/data/node/test_lstm_with_initial_bias/model.onnx +0 -0
  1118. onnx/backend/test/data/node/test_lstm_with_peepholes/model.onnx +0 -0
  1119. onnx/backend/test/data/node/test_maxpool_1d_default/model.onnx +0 -0
  1120. onnx/backend/test/data/node/test_maxpool_2d_ceil/model.onnx +0 -0
  1121. onnx/backend/test/data/node/test_maxpool_2d_ceil_output_size_reduce_by_one/model.onnx +0 -0
  1122. onnx/backend/test/data/node/test_maxpool_2d_default/model.onnx +0 -0
  1123. onnx/backend/test/data/node/test_maxpool_2d_dilations/model.onnx +0 -0
  1124. onnx/backend/test/data/node/test_maxpool_2d_pads/model.onnx +0 -0
  1125. onnx/backend/test/data/node/test_maxpool_2d_precomputed_pads/model.onnx +0 -0
  1126. onnx/backend/test/data/node/test_maxpool_2d_precomputed_same_upper/model.onnx +0 -0
  1127. onnx/backend/test/data/node/test_maxpool_2d_precomputed_strides/model.onnx +0 -0
  1128. onnx/backend/test/data/node/test_maxpool_2d_same_lower/model.onnx +0 -0
  1129. onnx/backend/test/data/node/test_maxpool_2d_same_upper/model.onnx +0 -0
  1130. onnx/backend/test/data/node/test_maxpool_2d_strides/model.onnx +0 -0
  1131. onnx/backend/test/data/node/test_maxpool_2d_uint8/model.onnx +0 -0
  1132. onnx/backend/test/data/node/test_maxpool_3d_default/model.onnx +0 -0
  1133. onnx/backend/test/data/node/test_maxpool_3d_dilations/model.onnx +0 -0
  1134. onnx/backend/test/data/node/test_maxpool_3d_dilations_use_ref_impl/model.onnx +0 -0
  1135. onnx/backend/test/data/node/test_maxpool_3d_dilations_use_ref_impl_large/model.onnx +0 -0
  1136. onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/model.onnx +0 -0
  1137. onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/model.onnx +0 -0
  1138. onnx/backend/test/data/node/test_maxunpool_export_with_output_shape/model.onnx +0 -0
  1139. onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/model.onnx +0 -0
  1140. onnx/backend/test/data/node/test_mish/model.onnx +0 -0
  1141. onnx/backend/test/data/node/test_mish_expanded/model.onnx +0 -0
  1142. onnx/backend/test/data/node/test_mvn/test_data_set_0/output_0.pb +1 -1
  1143. onnx/backend/test/data/node/test_mvn_expanded/test_data_set_0/output_0.pb +1 -1
  1144. onnx/backend/test/data/node/test_mvn_expanded_ver18/test_data_set_0/output_0.pb +1 -1
  1145. onnx/backend/test/data/node/test_nllloss_NC/model.onnx +0 -0
  1146. onnx/backend/test/data/node/test_nllloss_NC_expanded/model.onnx +0 -0
  1147. onnx/backend/test/data/node/test_nllloss_NCd1/model.onnx +0 -0
  1148. onnx/backend/test/data/node/test_nllloss_NCd1_expanded/model.onnx +0 -0
  1149. onnx/backend/test/data/node/test_nllloss_NCd1_ii/model.onnx +0 -0
  1150. onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/model.onnx +0 -0
  1151. onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/model.onnx +0 -0
  1152. onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/model.onnx +0 -0
  1153. onnx/backend/test/data/node/test_nllloss_NCd1_weight/model.onnx +0 -0
  1154. onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/model.onnx +0 -0
  1155. onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/model.onnx +0 -0
  1156. onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/model.onnx +0 -0
  1157. onnx/backend/test/data/node/test_nllloss_NCd1d2/model.onnx +0 -0
  1158. onnx/backend/test/data/node/test_nllloss_NCd1d2_expanded/model.onnx +0 -0
  1159. onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/model.onnx +0 -0
  1160. onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/model.onnx +0 -0
  1161. onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/model.onnx +0 -0
  1162. onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/model.onnx +0 -0
  1163. onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/model.onnx +0 -0
  1164. onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/model.onnx +0 -0
  1165. onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/model.onnx +0 -0
  1166. onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/model.onnx +0 -0
  1167. onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/model.onnx +0 -0
  1168. onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/model.onnx +0 -0
  1169. onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/model.onnx +0 -0
  1170. onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/model.onnx +0 -0
  1171. onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/model.onnx +0 -0
  1172. onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/model.onnx +0 -0
  1173. onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii/model.onnx +0 -0
  1174. onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii_expanded/model.onnx +0 -0
  1175. onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/model.onnx +0 -0
  1176. onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/model.onnx +0 -0
  1177. onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/model.onnx +0 -0
  1178. onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/model.onnx +0 -0
  1179. onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/model.onnx +0 -0
  1180. onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded/model.onnx +0 -0
  1181. onnx/backend/test/data/node/test_pow/test_data_set_0/output_0.pb +0 -0
  1182. onnx/backend/test/data/node/test_quantizelinear/model.onnx +0 -0
  1183. onnx/backend/test/data/node/test_quantizelinear_axis/model.onnx +0 -0
  1184. onnx/backend/test/data/node/test_quantizelinear_blocked_asymmetric/model.onnx +0 -0
  1185. onnx/backend/test/data/node/test_quantizelinear_blocked_symmetric/model.onnx +0 -0
  1186. onnx/backend/test/data/node/test_quantizelinear_e4m3fn/model.onnx +0 -0
  1187. onnx/backend/test/data/node/test_quantizelinear_e5m2/model.onnx +0 -0
  1188. onnx/backend/test/data/node/test_quantizelinear_float4e2m1/model.onnx +0 -0
  1189. onnx/backend/test/data/node/test_quantizelinear_float4e2m1/test_data_set_0/input_0.pb +0 -0
  1190. onnx/backend/test/data/node/test_quantizelinear_float4e2m1/test_data_set_0/input_1.pb +0 -0
  1191. onnx/backend/test/data/node/test_quantizelinear_float4e2m1/test_data_set_0/input_2.pb +0 -0
  1192. onnx/backend/test/data/node/test_quantizelinear_float4e2m1/test_data_set_0/output_0.pb +1 -0
  1193. onnx/backend/test/data/node/test_quantizelinear_int16/model.onnx +0 -0
  1194. onnx/backend/test/data/node/test_quantizelinear_int4/model.onnx +0 -0
  1195. onnx/backend/test/data/node/test_quantizelinear_int4/test_data_set_0/output_0.pb +1 -1
  1196. onnx/backend/test/data/node/test_quantizelinear_uint16/model.onnx +0 -0
  1197. onnx/backend/test/data/node/test_quantizelinear_uint4/model.onnx +0 -0
  1198. onnx/backend/test/data/node/test_reduce_max_empty_set/model.onnx +0 -0
  1199. onnx/backend/test/data/node/test_reduce_max_empty_set/test_data_set_0/input_0.pb +0 -0
  1200. onnx/backend/test/data/node/test_reduce_max_empty_set/test_data_set_0/input_1.pb +0 -0
  1201. onnx/backend/test/data/node/test_reduce_max_empty_set/test_data_set_0/output_0.pb +0 -0
  1202. onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop/model.onnx +0 -0
  1203. onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop/test_data_set_0/input_0.pb +1 -0
  1204. onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop/test_data_set_0/input_1.pb +0 -0
  1205. onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop/test_data_set_0/output_0.pb +1 -0
  1206. onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/model.onnx +0 -0
  1207. onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/input_1.pb +0 -0
  1208. onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/output_0.pb +1 -1
  1209. onnx/backend/test/data/node/test_reflect_pad/model.onnx +0 -0
  1210. onnx/backend/test/data/node/test_reshape_allowzero_reordered/model.onnx +0 -0
  1211. onnx/backend/test/data/node/test_reshape_extended_dims/model.onnx +0 -0
  1212. onnx/backend/test/data/node/test_reshape_negative_dim/model.onnx +0 -0
  1213. onnx/backend/test/data/node/test_reshape_negative_extended_dims/model.onnx +0 -0
  1214. onnx/backend/test/data/node/test_reshape_one_dim/model.onnx +0 -0
  1215. onnx/backend/test/data/node/test_reshape_reduced_dims/model.onnx +0 -0
  1216. onnx/backend/test/data/node/test_reshape_reordered_all_dims/model.onnx +0 -0
  1217. onnx/backend/test/data/node/test_reshape_reordered_last_dims/model.onnx +0 -0
  1218. onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/model.onnx +0 -0
  1219. onnx/backend/test/data/node/test_reshape_zero_dim/model.onnx +0 -0
  1220. onnx/backend/test/data/node/test_resize_tf_crop_and_resize/model.onnx +0 -0
  1221. onnx/backend/test/data/node/test_resize_tf_crop_and_resize/test_data_set_0/input_1.pb +0 -0
  1222. onnx/backend/test/data/node/test_resize_tf_crop_and_resize/test_data_set_0/output_0.pb +0 -0
  1223. onnx/backend/test/data/node/test_resize_tf_crop_and_resize_extrapolation_value/model.onnx +0 -0
  1224. onnx/backend/test/data/node/test_resize_tf_crop_and_resize_extrapolation_value/test_data_set_0/input_0.pb +0 -0
  1225. onnx/backend/test/data/node/test_resize_tf_crop_and_resize_extrapolation_value/test_data_set_0/input_1.pb +0 -0
  1226. onnx/backend/test/data/node/test_resize_tf_crop_and_resize_extrapolation_value/test_data_set_0/input_2.pb +0 -0
  1227. onnx/backend/test/data/node/test_resize_tf_crop_and_resize_extrapolation_value/test_data_set_0/output_0.pb +0 -0
  1228. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_larger/model.onnx +0 -0
  1229. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_larger/test_data_set_0/output_0.pb +0 -0
  1230. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_smaller/model.onnx +0 -0
  1231. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_smaller/test_data_set_0/input_0.pb +0 -0
  1232. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_smaller/test_data_set_0/input_1.pb +0 -0
  1233. onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_not_smaller/test_data_set_0/output_0.pb +0 -0
  1234. onnx/backend/test/data/node/test_rms_normalization_2d_axis0/model.onnx +0 -0
  1235. onnx/backend/test/data/node/test_rms_normalization_2d_axis0/test_data_set_0/input_0.pb +1 -0
  1236. onnx/backend/test/data/node/test_rms_normalization_2d_axis0/test_data_set_0/input_1.pb +1 -0
  1237. onnx/backend/test/data/node/test_rms_normalization_2d_axis0/test_data_set_0/output_0.pb +1 -0
  1238. onnx/backend/test/data/node/test_rms_normalization_2d_axis0_expanded/model.onnx +0 -0
  1239. onnx/backend/test/data/node/test_rms_normalization_2d_axis0_expanded/test_data_set_0/input_0.pb +1 -0
  1240. onnx/backend/test/data/node/test_rms_normalization_2d_axis0_expanded/test_data_set_0/input_1.pb +1 -0
  1241. onnx/backend/test/data/node/test_rms_normalization_2d_axis0_expanded/test_data_set_0/output_0.pb +1 -0
  1242. onnx/backend/test/data/node/test_rms_normalization_2d_axis1/model.onnx +0 -0
  1243. onnx/backend/test/data/node/test_rms_normalization_2d_axis1/test_data_set_0/input_0.pb +1 -0
  1244. onnx/backend/test/data/node/test_rms_normalization_2d_axis1/test_data_set_0/input_1.pb +1 -0
  1245. onnx/backend/test/data/node/test_rms_normalization_2d_axis1/test_data_set_0/output_0.pb +1 -0
  1246. onnx/backend/test/data/node/test_rms_normalization_2d_axis1_expanded/model.onnx +0 -0
  1247. onnx/backend/test/data/node/test_rms_normalization_2d_axis1_expanded/test_data_set_0/input_0.pb +1 -0
  1248. onnx/backend/test/data/node/test_rms_normalization_2d_axis1_expanded/test_data_set_0/input_1.pb +1 -0
  1249. onnx/backend/test/data/node/test_rms_normalization_2d_axis1_expanded/test_data_set_0/output_0.pb +1 -0
  1250. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1/model.onnx +0 -0
  1251. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1/test_data_set_0/input_0.pb +1 -0
  1252. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1/test_data_set_0/input_1.pb +1 -0
  1253. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1/test_data_set_0/output_0.pb +1 -0
  1254. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1_expanded/model.onnx +0 -0
  1255. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_0.pb +1 -0
  1256. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_1.pb +1 -0
  1257. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_0.pb +1 -0
  1258. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2/model.onnx +0 -0
  1259. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2/test_data_set_0/input_0.pb +1 -0
  1260. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2/test_data_set_0/input_1.pb +1 -0
  1261. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2/test_data_set_0/output_0.pb +1 -0
  1262. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2_expanded/model.onnx +0 -0
  1263. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_0.pb +1 -0
  1264. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_1.pb +1 -0
  1265. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_0.pb +1 -0
  1266. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon/model.onnx +0 -0
  1267. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon/test_data_set_0/input_0.pb +1 -0
  1268. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon/test_data_set_0/input_1.pb +1 -0
  1269. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon/test_data_set_0/output_0.pb +1 -0
  1270. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon_expanded/model.onnx +0 -0
  1271. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
  1272. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
  1273. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_0.pb +1 -0
  1274. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon/model.onnx +0 -0
  1275. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon/test_data_set_0/input_0.pb +1 -0
  1276. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon/test_data_set_0/input_1.pb +1 -0
  1277. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon/test_data_set_0/output_0.pb +1 -0
  1278. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon_expanded/model.onnx +0 -0
  1279. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
  1280. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
  1281. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_0.pb +1 -0
  1282. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon/model.onnx +0 -0
  1283. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon/test_data_set_0/input_0.pb +1 -0
  1284. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon/test_data_set_0/input_1.pb +1 -0
  1285. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon/test_data_set_0/output_0.pb +1 -0
  1286. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon_expanded/model.onnx +0 -0
  1287. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
  1288. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
  1289. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_0.pb +1 -0
  1290. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon/model.onnx +0 -0
  1291. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_0.pb +1 -0
  1292. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_1.pb +1 -0
  1293. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_0.pb +0 -0
  1294. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon_expanded/model.onnx +0 -0
  1295. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
  1296. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
  1297. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_0.pb +0 -0
  1298. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon/model.onnx +0 -0
  1299. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_0.pb +1 -0
  1300. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_1.pb +1 -0
  1301. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_0.pb +3 -0
  1302. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon_expanded/model.onnx +0 -0
  1303. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
  1304. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
  1305. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_0.pb +3 -0
  1306. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon/model.onnx +0 -0
  1307. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_0.pb +1 -0
  1308. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_1.pb +1 -0
  1309. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_0.pb +1 -0
  1310. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon_expanded/model.onnx +0 -0
  1311. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
  1312. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
  1313. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_0.pb +1 -0
  1314. onnx/backend/test/data/node/test_rms_normalization_4d_axis0/model.onnx +0 -0
  1315. onnx/backend/test/data/node/test_rms_normalization_4d_axis0/test_data_set_0/input_0.pb +1 -0
  1316. onnx/backend/test/data/node/test_rms_normalization_4d_axis0/test_data_set_0/input_1.pb +0 -0
  1317. onnx/backend/test/data/node/test_rms_normalization_4d_axis0/test_data_set_0/output_0.pb +0 -0
  1318. onnx/backend/test/data/node/test_rms_normalization_4d_axis0_expanded/model.onnx +0 -0
  1319. onnx/backend/test/data/node/test_rms_normalization_4d_axis0_expanded/test_data_set_0/input_0.pb +1 -0
  1320. onnx/backend/test/data/node/test_rms_normalization_4d_axis0_expanded/test_data_set_0/input_1.pb +0 -0
  1321. onnx/backend/test/data/node/test_rms_normalization_4d_axis0_expanded/test_data_set_0/output_0.pb +0 -0
  1322. onnx/backend/test/data/node/test_rms_normalization_4d_axis1/model.onnx +0 -0
  1323. onnx/backend/test/data/node/test_rms_normalization_4d_axis1/test_data_set_0/input_0.pb +1 -0
  1324. onnx/backend/test/data/node/test_rms_normalization_4d_axis1/test_data_set_0/input_1.pb +3 -0
  1325. onnx/backend/test/data/node/test_rms_normalization_4d_axis1/test_data_set_0/output_0.pb +1 -0
  1326. onnx/backend/test/data/node/test_rms_normalization_4d_axis1_expanded/model.onnx +0 -0
  1327. onnx/backend/test/data/node/test_rms_normalization_4d_axis1_expanded/test_data_set_0/input_0.pb +1 -0
  1328. onnx/backend/test/data/node/test_rms_normalization_4d_axis1_expanded/test_data_set_0/input_1.pb +3 -0
  1329. onnx/backend/test/data/node/test_rms_normalization_4d_axis1_expanded/test_data_set_0/output_0.pb +1 -0
  1330. onnx/backend/test/data/node/test_rms_normalization_4d_axis2/model.onnx +0 -0
  1331. onnx/backend/test/data/node/test_rms_normalization_4d_axis2/test_data_set_0/input_0.pb +1 -0
  1332. onnx/backend/test/data/node/test_rms_normalization_4d_axis2/test_data_set_0/input_1.pb +1 -0
  1333. onnx/backend/test/data/node/test_rms_normalization_4d_axis2/test_data_set_0/output_0.pb +0 -0
  1334. onnx/backend/test/data/node/test_rms_normalization_4d_axis2_expanded/model.onnx +0 -0
  1335. onnx/backend/test/data/node/test_rms_normalization_4d_axis2_expanded/test_data_set_0/input_0.pb +1 -0
  1336. onnx/backend/test/data/node/test_rms_normalization_4d_axis2_expanded/test_data_set_0/input_1.pb +1 -0
  1337. onnx/backend/test/data/node/test_rms_normalization_4d_axis2_expanded/test_data_set_0/output_0.pb +0 -0
  1338. onnx/backend/test/data/node/test_rms_normalization_4d_axis3/model.onnx +0 -0
  1339. onnx/backend/test/data/node/test_rms_normalization_4d_axis3/test_data_set_0/input_0.pb +1 -0
  1340. onnx/backend/test/data/node/test_rms_normalization_4d_axis3/test_data_set_0/input_1.pb +1 -0
  1341. onnx/backend/test/data/node/test_rms_normalization_4d_axis3/test_data_set_0/output_0.pb +2 -0
  1342. onnx/backend/test/data/node/test_rms_normalization_4d_axis3_expanded/model.onnx +0 -0
  1343. onnx/backend/test/data/node/test_rms_normalization_4d_axis3_expanded/test_data_set_0/input_0.pb +1 -0
  1344. onnx/backend/test/data/node/test_rms_normalization_4d_axis3_expanded/test_data_set_0/input_1.pb +1 -0
  1345. onnx/backend/test/data/node/test_rms_normalization_4d_axis3_expanded/test_data_set_0/output_0.pb +2 -0
  1346. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1/model.onnx +0 -0
  1347. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1/test_data_set_0/input_0.pb +1 -0
  1348. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1/test_data_set_0/input_1.pb +1 -0
  1349. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1/test_data_set_0/output_0.pb +0 -0
  1350. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1_expanded/model.onnx +0 -0
  1351. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_0.pb +1 -0
  1352. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_1.pb +1 -0
  1353. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_0.pb +0 -0
  1354. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2/model.onnx +0 -0
  1355. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2/test_data_set_0/input_0.pb +1 -0
  1356. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2/test_data_set_0/input_1.pb +1 -0
  1357. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2/test_data_set_0/output_0.pb +0 -0
  1358. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2_expanded/model.onnx +0 -0
  1359. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_0.pb +1 -0
  1360. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_1.pb +1 -0
  1361. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_0.pb +0 -0
  1362. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3/model.onnx +0 -0
  1363. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3/test_data_set_0/input_0.pb +1 -0
  1364. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3/test_data_set_0/input_1.pb +0 -0
  1365. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3/test_data_set_0/output_0.pb +4 -0
  1366. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3_expanded/model.onnx +0 -0
  1367. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_0.pb +1 -0
  1368. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_1.pb +0 -0
  1369. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_0.pb +4 -0
  1370. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4/model.onnx +0 -0
  1371. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4/test_data_set_0/input_0.pb +1 -0
  1372. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4/test_data_set_0/input_1.pb +2 -0
  1373. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4/test_data_set_0/output_0.pb +0 -0
  1374. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4_expanded/model.onnx +0 -0
  1375. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4_expanded/test_data_set_0/input_0.pb +1 -0
  1376. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4_expanded/test_data_set_0/input_1.pb +2 -0
  1377. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4_expanded/test_data_set_0/output_0.pb +0 -0
  1378. onnx/backend/test/data/node/test_rms_normalization_default_axis/model.onnx +0 -0
  1379. onnx/backend/test/data/node/test_rms_normalization_default_axis/test_data_set_0/input_0.pb +1 -0
  1380. onnx/backend/test/data/node/test_rms_normalization_default_axis/test_data_set_0/input_1.pb +1 -0
  1381. onnx/backend/test/data/node/test_rms_normalization_default_axis/test_data_set_0/output_0.pb +0 -0
  1382. onnx/backend/test/data/node/test_rms_normalization_default_axis_expanded/model.onnx +0 -0
  1383. onnx/backend/test/data/node/test_rms_normalization_default_axis_expanded/test_data_set_0/input_0.pb +1 -0
  1384. onnx/backend/test/data/node/test_rms_normalization_default_axis_expanded/test_data_set_0/input_1.pb +1 -0
  1385. onnx/backend/test/data/node/test_rms_normalization_default_axis_expanded/test_data_set_0/output_0.pb +0 -0
  1386. onnx/backend/test/data/node/test_rnn_seq_length/model.onnx +0 -0
  1387. onnx/backend/test/data/node/test_roialign_aligned_false/model.onnx +0 -0
  1388. onnx/backend/test/data/node/test_roialign_aligned_true/model.onnx +0 -0
  1389. onnx/backend/test/data/node/test_roialign_mode_max/model.onnx +0 -0
  1390. onnx/backend/test/data/node/test_rotary_embedding/model.onnx +0 -0
  1391. onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/input_0.pb +0 -0
  1392. onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/input_1.pb +0 -0
  1393. onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/input_2.pb +0 -0
  1394. onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/input_3.pb +0 -0
  1395. onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/output_0.pb +0 -0
  1396. onnx/backend/test/data/node/test_rotary_embedding_3d_input/model.onnx +0 -0
  1397. onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/input_0.pb +0 -0
  1398. onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/input_1.pb +0 -0
  1399. onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/input_2.pb +0 -0
  1400. onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/input_3.pb +0 -0
  1401. onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/output_0.pb +0 -0
  1402. onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/model.onnx +0 -0
  1403. onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/input_0.pb +0 -0
  1404. onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/input_1.pb +0 -0
  1405. onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/input_2.pb +0 -0
  1406. onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/input_3.pb +0 -0
  1407. onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/output_0.pb +0 -0
  1408. onnx/backend/test/data/node/test_rotary_embedding_expanded/model.onnx +0 -0
  1409. onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/input_0.pb +0 -0
  1410. onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/input_1.pb +0 -0
  1411. onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/input_2.pb +0 -0
  1412. onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/input_3.pb +0 -0
  1413. onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/output_0.pb +0 -0
  1414. onnx/backend/test/data/node/test_rotary_embedding_interleaved/model.onnx +0 -0
  1415. onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/input_0.pb +0 -0
  1416. onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/input_1.pb +0 -0
  1417. onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/input_2.pb +0 -0
  1418. onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/input_3.pb +0 -0
  1419. onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/output_0.pb +0 -0
  1420. onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/model.onnx +0 -0
  1421. onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/input_0.pb +0 -0
  1422. onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/input_1.pb +0 -0
  1423. onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/input_2.pb +0 -0
  1424. onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/input_3.pb +0 -0
  1425. onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/output_0.pb +0 -0
  1426. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/model.onnx +0 -0
  1427. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/test_data_set_0/input_0.pb +0 -0
  1428. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/test_data_set_0/input_1.pb +1 -0
  1429. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/test_data_set_0/input_2.pb +1 -0
  1430. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/test_data_set_0/output_0.pb +0 -0
  1431. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/model.onnx +0 -0
  1432. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/test_data_set_0/input_0.pb +0 -0
  1433. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/test_data_set_0/input_1.pb +1 -0
  1434. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/test_data_set_0/input_2.pb +1 -0
  1435. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/test_data_set_0/output_0.pb +0 -0
  1436. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/model.onnx +0 -0
  1437. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/test_data_set_0/input_0.pb +0 -0
  1438. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/test_data_set_0/input_1.pb +1 -0
  1439. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/test_data_set_0/input_2.pb +1 -0
  1440. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/test_data_set_0/output_0.pb +0 -0
  1441. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/model.onnx +0 -0
  1442. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/test_data_set_0/input_0.pb +0 -0
  1443. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/test_data_set_0/input_1.pb +1 -0
  1444. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/test_data_set_0/input_2.pb +1 -0
  1445. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/test_data_set_0/output_0.pb +0 -0
  1446. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/model.onnx +0 -0
  1447. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/test_data_set_0/input_0.pb +0 -0
  1448. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/test_data_set_0/input_1.pb +1 -0
  1449. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/test_data_set_0/input_2.pb +1 -0
  1450. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/test_data_set_0/output_0.pb +0 -0
  1451. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/model.onnx +0 -0
  1452. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/test_data_set_0/input_0.pb +0 -0
  1453. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/test_data_set_0/input_1.pb +1 -0
  1454. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/test_data_set_0/input_2.pb +1 -0
  1455. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/test_data_set_0/output_0.pb +0 -0
  1456. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/model.onnx +0 -0
  1457. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/input_0.pb +0 -0
  1458. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/input_1.pb +0 -0
  1459. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/input_2.pb +0 -0
  1460. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/input_3.pb +0 -0
  1461. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/output_0.pb +0 -0
  1462. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/model.onnx +0 -0
  1463. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/input_0.pb +0 -0
  1464. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/input_1.pb +0 -0
  1465. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/input_2.pb +0 -0
  1466. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/input_3.pb +0 -0
  1467. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/output_0.pb +0 -0
  1468. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/model.onnx +0 -0
  1469. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/input_0.pb +0 -0
  1470. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/input_1.pb +0 -0
  1471. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/input_2.pb +0 -0
  1472. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/input_3.pb +0 -0
  1473. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/output_0.pb +0 -0
  1474. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/model.onnx +0 -0
  1475. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/input_0.pb +0 -0
  1476. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/input_1.pb +0 -0
  1477. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/input_2.pb +0 -0
  1478. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/input_3.pb +0 -0
  1479. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/output_0.pb +0 -0
  1480. onnx/backend/test/data/node/test_round/model.onnx +0 -0
  1481. onnx/backend/test/data/node/test_selu/model.onnx +0 -0
  1482. onnx/backend/test/data/node/test_selu_default/model.onnx +0 -0
  1483. onnx/backend/test/data/node/test_selu_example/model.onnx +0 -0
  1484. onnx/backend/test/data/node/test_shape/model.onnx +0 -0
  1485. onnx/backend/test/data/node/test_shape_clip_end/model.onnx +0 -0
  1486. onnx/backend/test/data/node/test_shape_clip_start/model.onnx +0 -0
  1487. onnx/backend/test/data/node/test_shape_end_1/model.onnx +0 -0
  1488. onnx/backend/test/data/node/test_shape_end_negative_1/model.onnx +0 -0
  1489. onnx/backend/test/data/node/test_shape_example/model.onnx +0 -0
  1490. onnx/backend/test/data/node/test_shape_start_1/model.onnx +0 -0
  1491. onnx/backend/test/data/node/test_shape_start_1_end_2/model.onnx +0 -0
  1492. onnx/backend/test/data/node/test_shape_start_1_end_negative_1/model.onnx +0 -0
  1493. onnx/backend/test/data/node/test_shape_start_negative_1/model.onnx +0 -0
  1494. onnx/backend/test/data/node/test_simple_rnn_batchwise/model.onnx +0 -0
  1495. onnx/backend/test/data/node/test_simple_rnn_defaults/model.onnx +0 -0
  1496. onnx/backend/test/data/node/test_simple_rnn_with_initial_bias/model.onnx +0 -0
  1497. onnx/backend/test/data/node/test_sin/model.onnx +0 -0
  1498. onnx/backend/test/data/node/test_sin_example/model.onnx +0 -0
  1499. onnx/backend/test/data/node/test_sinh/model.onnx +0 -0
  1500. onnx/backend/test/data/node/test_sinh_example/model.onnx +0 -0
  1501. onnx/backend/test/data/node/test_size/model.onnx +0 -0
  1502. onnx/backend/test/data/node/test_size_example/model.onnx +0 -0
  1503. onnx/backend/test/data/node/test_softplus/model.onnx +0 -0
  1504. onnx/backend/test/data/node/test_softplus_example/model.onnx +0 -0
  1505. onnx/backend/test/data/node/test_softsign/model.onnx +0 -0
  1506. onnx/backend/test/data/node/test_softsign_example/model.onnx +0 -0
  1507. onnx/backend/test/data/node/test_squeeze/model.onnx +0 -0
  1508. onnx/backend/test/data/node/test_squeeze_negative_axes/model.onnx +0 -0
  1509. onnx/backend/test/data/node/test_tan/model.onnx +0 -0
  1510. onnx/backend/test/data/node/test_tan_example/model.onnx +0 -0
  1511. onnx/backend/test/data/node/test_thresholdedrelu/model.onnx +0 -0
  1512. onnx/backend/test/data/node/test_thresholdedrelu_default/model.onnx +0 -0
  1513. onnx/backend/test/data/node/test_thresholdedrelu_example/model.onnx +0 -0
  1514. onnx/backend/test/data/node/test_top_k_same_values/model.onnx +0 -0
  1515. onnx/backend/test/data/node/test_top_k_same_values/test_data_set_0/input_0.pb +0 -0
  1516. onnx/backend/test/data/node/test_top_k_same_values/test_data_set_0/input_1.pb +0 -0
  1517. onnx/backend/test/data/node/test_top_k_same_values/test_data_set_0/output_0.pb +0 -0
  1518. onnx/backend/test/data/node/test_top_k_same_values/test_data_set_0/output_1.pb +0 -0
  1519. onnx/backend/test/data/node/test_top_k_same_values_2d/model.onnx +0 -0
  1520. onnx/backend/test/data/node/test_top_k_same_values_2d/test_data_set_0/input_0.pb +0 -0
  1521. onnx/backend/test/data/node/test_top_k_same_values_2d/test_data_set_0/input_1.pb +0 -0
  1522. onnx/backend/test/data/node/test_top_k_same_values_2d/test_data_set_0/output_0.pb +0 -0
  1523. onnx/backend/test/data/node/test_top_k_same_values_2d/test_data_set_0/output_1.pb +0 -0
  1524. onnx/backend/test/data/node/test_top_k_same_values_largest/model.onnx +0 -0
  1525. onnx/backend/test/data/node/test_top_k_same_values_largest/test_data_set_0/input_0.pb +0 -0
  1526. onnx/backend/test/data/node/test_top_k_same_values_largest/test_data_set_0/input_1.pb +0 -0
  1527. onnx/backend/test/data/node/test_top_k_same_values_largest/test_data_set_0/output_0.pb +0 -0
  1528. onnx/backend/test/data/node/test_top_k_same_values_largest/test_data_set_0/output_1.pb +0 -0
  1529. onnx/backend/test/data/node/test_top_k_uint64/model.onnx +0 -0
  1530. onnx/backend/test/data/node/test_top_k_uint64/test_data_set_0/input_0.pb +0 -0
  1531. onnx/backend/test/data/node/test_top_k_uint64/test_data_set_0/input_1.pb +0 -0
  1532. onnx/backend/test/data/node/test_top_k_uint64/test_data_set_0/output_0.pb +0 -0
  1533. onnx/backend/test/data/node/test_top_k_uint64/test_data_set_0/output_1.pb +0 -0
  1534. onnx/backend/test/data/node/test_training_dropout/model.onnx +0 -0
  1535. onnx/backend/test/data/node/test_training_dropout_default/model.onnx +0 -0
  1536. onnx/backend/test/data/node/test_training_dropout_default_mask/model.onnx +0 -0
  1537. onnx/backend/test/data/node/test_training_dropout_mask/model.onnx +0 -0
  1538. onnx/backend/test/data/node/test_training_dropout_zero_ratio/model.onnx +0 -0
  1539. onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/model.onnx +0 -0
  1540. onnx/backend/test/data/node/test_transpose_all_permutations_0/model.onnx +0 -0
  1541. onnx/backend/test/data/node/test_transpose_all_permutations_1/model.onnx +0 -0
  1542. onnx/backend/test/data/node/test_transpose_all_permutations_2/model.onnx +0 -0
  1543. onnx/backend/test/data/node/test_transpose_all_permutations_3/model.onnx +0 -0
  1544. onnx/backend/test/data/node/test_transpose_all_permutations_4/model.onnx +0 -0
  1545. onnx/backend/test/data/node/test_transpose_all_permutations_5/model.onnx +0 -0
  1546. onnx/backend/test/data/node/test_transpose_default/model.onnx +0 -0
  1547. onnx/backend/test/data/node/test_unique_length_1/model.onnx +0 -0
  1548. onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/input_0.pb +0 -0
  1549. onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/output_0.pb +0 -0
  1550. onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/output_1.pb +0 -0
  1551. onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/output_2.pb +0 -0
  1552. onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/output_3.pb +0 -0
  1553. onnx/backend/test/data/node/test_unsqueeze_axis_0/model.onnx +0 -0
  1554. onnx/backend/test/data/node/test_unsqueeze_axis_1/model.onnx +0 -0
  1555. onnx/backend/test/data/node/test_unsqueeze_axis_2/model.onnx +0 -0
  1556. onnx/backend/test/data/node/test_unsqueeze_negative_axes/model.onnx +0 -0
  1557. onnx/backend/test/data/node/test_unsqueeze_three_axes/model.onnx +0 -0
  1558. onnx/backend/test/data/node/test_unsqueeze_two_axes/model.onnx +0 -0
  1559. onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/model.onnx +0 -0
  1560. onnx/backend/test/data/node/test_wrap_pad/model.onnx +0 -0
  1561. onnx/backend/test/loader/__init__.py +11 -6
  1562. onnx/backend/test/report/__init__.py +11 -5
  1563. onnx/backend/test/report/base.py +1 -0
  1564. onnx/backend/test/report/coverage.py +27 -30
  1565. onnx/backend/test/runner/__init__.py +39 -33
  1566. onnx/backend/test/runner/item.py +5 -3
  1567. onnx/backend/test/stat_coverage.py +11 -7
  1568. onnx/bin/checker.py +1 -0
  1569. onnx/checker.cc +30 -30
  1570. onnx/checker.h +9 -6
  1571. onnx/checker.py +8 -7
  1572. onnx/common/array_ref.h +12 -8
  1573. onnx/common/assertions.h +1 -0
  1574. onnx/common/file_utils.h +9 -3
  1575. onnx/common/interned_strings.cc +3 -5
  1576. onnx/common/interned_strings.h +12 -7
  1577. onnx/common/ir.h +37 -60
  1578. onnx/common/ir_pb_converter.cc +18 -17
  1579. onnx/common/ir_pb_converter.h +0 -1
  1580. onnx/common/model_helpers.cc +3 -6
  1581. onnx/common/model_helpers.h +1 -1
  1582. onnx/common/path.h +40 -11
  1583. onnx/common/proto_util.h +3 -3
  1584. onnx/common/status.cc +14 -13
  1585. onnx/common/status.h +12 -10
  1586. onnx/common/tensor.h +30 -87
  1587. onnx/common/version.h +1 -1
  1588. onnx/common/visitor.h +2 -2
  1589. onnx/compose.py +88 -69
  1590. onnx/cpp2py_export.cc +29 -20
  1591. onnx/defs/__init__.py +10 -6
  1592. onnx/defs/controlflow/defs.cc +13 -13
  1593. onnx/defs/controlflow/old.cc +220 -39
  1594. onnx/defs/controlflow/utils.cc +3 -3
  1595. onnx/defs/data_propagators.h +10 -7
  1596. onnx/defs/data_type_utils.cc +14 -16
  1597. onnx/defs/data_type_utils.h +1 -2
  1598. onnx/defs/function.cc +5 -9
  1599. onnx/defs/function.h +36 -11
  1600. onnx/defs/gen_doc.py +12 -8
  1601. onnx/defs/gen_shape_inference_information.py +1 -0
  1602. onnx/defs/generator/defs.cc +46 -113
  1603. onnx/defs/generator/old.cc +498 -5
  1604. onnx/defs/generator/utils.cc +1 -1
  1605. onnx/defs/logical/defs.cc +3 -3
  1606. onnx/defs/logical/old.cc +4 -4
  1607. onnx/defs/math/defs.cc +328 -354
  1608. onnx/defs/math/old.cc +1041 -50
  1609. onnx/defs/math/utils.cc +14 -3
  1610. onnx/defs/math/utils.h +4 -0
  1611. onnx/defs/nn/defs.cc +1097 -105
  1612. onnx/defs/nn/old.cc +1608 -21
  1613. onnx/defs/object_detection/defs.cc +4 -7
  1614. onnx/defs/object_detection/old.cc +117 -0
  1615. onnx/defs/operator_sets.h +182 -22
  1616. onnx/defs/operator_sets_ml.h +5 -5
  1617. onnx/defs/operator_sets_preview.h +1 -1
  1618. onnx/defs/operator_sets_training.h +1 -1
  1619. onnx/defs/optional/defs.cc +0 -4
  1620. onnx/defs/optional/old.cc +0 -4
  1621. onnx/defs/parser.cc +70 -36
  1622. onnx/defs/parser.h +57 -31
  1623. onnx/defs/printer.cc +62 -21
  1624. onnx/defs/quantization/defs.cc +55 -21
  1625. onnx/defs/quantization/old.cc +200 -1
  1626. onnx/defs/reduction/defs.cc +6 -6
  1627. onnx/defs/reduction/old.cc +18 -15
  1628. onnx/defs/reduction/utils.cc +10 -10
  1629. onnx/defs/reduction/utils.h +1 -1
  1630. onnx/defs/rnn/defs.cc +12 -15
  1631. onnx/defs/rnn/old.cc +522 -7
  1632. onnx/defs/schema.cc +550 -100
  1633. onnx/defs/schema.h +106 -373
  1634. onnx/defs/sequence/defs.cc +16 -18
  1635. onnx/defs/shape_inference.cc +39 -32
  1636. onnx/defs/shape_inference.h +113 -46
  1637. onnx/defs/tensor/defs.cc +81 -66
  1638. onnx/defs/tensor/old.cc +802 -22
  1639. onnx/defs/tensor/utils.cc +10 -8
  1640. onnx/defs/tensor/utils.h +2 -3
  1641. onnx/defs/tensor_proto_util.cc +2 -2
  1642. onnx/defs/tensor_proto_util.h +2 -2
  1643. onnx/defs/tensor_util.cc +2 -2
  1644. onnx/defs/tensor_util.h +2 -2
  1645. onnx/defs/traditionalml/defs.cc +16 -4
  1646. onnx/defs/traditionalml/utils.h +1 -2
  1647. onnx/external_data_helper.py +38 -16
  1648. onnx/gen_proto.py +8 -4
  1649. onnx/helper.py +210 -116
  1650. onnx/hub.py +33 -32
  1651. onnx/inliner/inliner.cc +8 -10
  1652. onnx/mapping.py +11 -6
  1653. onnx/model_container.py +12 -8
  1654. onnx/numpy_helper.py +261 -66
  1655. onnx/onnx-ml.proto +116 -10
  1656. onnx/onnx.in.proto +116 -10
  1657. onnx/onnx.proto +116 -10
  1658. onnx/onnx_cpp2py_export/defs.pyi +3 -4
  1659. onnx/onnx_cpp2py_export/inliner.pyi +0 -4
  1660. onnx/onnx_cpp2py_export/parser.pyi +0 -4
  1661. onnx/onnx_cpp2py_export.cp311-win32.pyd +0 -0
  1662. onnx/onnx_data_pb2.py +17 -16
  1663. onnx/onnx_data_pb2.pyi +82 -142
  1664. onnx/onnx_ml_pb2.py +84 -71
  1665. onnx/onnx_ml_pb2.pyi +483 -645
  1666. onnx/onnx_operators_ml_pb2.py +11 -10
  1667. onnx/onnx_operators_ml_pb2.pyi +38 -64
  1668. onnx/parser.py +2 -0
  1669. onnx/printer.py +2 -3
  1670. onnx/py_utils.h +1 -1
  1671. onnx/reference/__init__.py +1 -0
  1672. onnx/reference/custom_element_types.py +80 -9
  1673. onnx/reference/op_run.py +25 -67
  1674. onnx/reference/ops/__init__.py +1 -0
  1675. onnx/reference/ops/_helpers.py +7 -4
  1676. onnx/reference/ops/_op.py +19 -6
  1677. onnx/reference/ops/_op_common_indices.py +1 -1
  1678. onnx/reference/ops/_op_common_pool.py +38 -29
  1679. onnx/reference/ops/_op_common_random.py +1 -1
  1680. onnx/reference/ops/_op_common_window.py +2 -2
  1681. onnx/reference/ops/_op_list.py +22 -18
  1682. onnx/reference/ops/aionnx_preview_training/__init__.py +1 -0
  1683. onnx/reference/ops/aionnx_preview_training/_op_list.py +10 -17
  1684. onnx/reference/ops/aionnx_preview_training/_op_run_training.py +1 -1
  1685. onnx/reference/ops/aionnx_preview_training/op_adagrad.py +14 -5
  1686. onnx/reference/ops/aionnx_preview_training/op_adam.py +2 -2
  1687. onnx/reference/ops/aionnx_preview_training/op_momentum.py +14 -2
  1688. onnx/reference/ops/aionnxml/__init__.py +1 -0
  1689. onnx/reference/ops/aionnxml/_common_classifier.py +1 -0
  1690. onnx/reference/ops/aionnxml/_op_list.py +9 -14
  1691. onnx/reference/ops/aionnxml/_op_run_aionnxml.py +1 -1
  1692. onnx/reference/ops/aionnxml/op_array_feature_extractor.py +1 -1
  1693. onnx/reference/ops/aionnxml/op_binarizer.py +1 -1
  1694. onnx/reference/ops/aionnxml/op_dict_vectorizer.py +11 -20
  1695. onnx/reference/ops/aionnxml/op_feature_vectorizer.py +1 -1
  1696. onnx/reference/ops/aionnxml/op_imputer.py +3 -3
  1697. onnx/reference/ops/aionnxml/op_label_encoder.py +1 -1
  1698. onnx/reference/ops/aionnxml/op_linear_classifier.py +2 -2
  1699. onnx/reference/ops/aionnxml/op_linear_regressor.py +1 -1
  1700. onnx/reference/ops/aionnxml/op_normalizer.py +1 -1
  1701. onnx/reference/ops/aionnxml/op_one_hot_encoder.py +1 -1
  1702. onnx/reference/ops/aionnxml/op_scaler.py +1 -1
  1703. onnx/reference/ops/aionnxml/op_svm_classifier.py +11 -9
  1704. onnx/reference/ops/aionnxml/op_svm_helper.py +2 -2
  1705. onnx/reference/ops/aionnxml/op_svm_regressor.py +1 -1
  1706. onnx/reference/ops/aionnxml/op_tree_ensemble.py +3 -3
  1707. onnx/reference/ops/aionnxml/op_tree_ensemble_classifier.py +1 -1
  1708. onnx/reference/ops/aionnxml/op_tree_ensemble_helper.py +4 -3
  1709. onnx/reference/ops/aionnxml/op_tree_ensemble_regressor.py +5 -3
  1710. onnx/reference/ops/experimental/__init__.py +1 -0
  1711. onnx/reference/ops/experimental/_op_list.py +24 -41
  1712. onnx/reference/ops/experimental/_op_run_experimental.py +1 -1
  1713. onnx/reference/ops/experimental/op_im2col.py +1 -1
  1714. onnx/reference/ops/op_abs.py +1 -1
  1715. onnx/reference/ops/op_acos.py +1 -1
  1716. onnx/reference/ops/op_acosh.py +1 -1
  1717. onnx/reference/ops/op_add.py +1 -1
  1718. onnx/reference/ops/op_affine_grid.py +4 -4
  1719. onnx/reference/ops/op_and.py +1 -1
  1720. onnx/reference/ops/op_argmax.py +1 -1
  1721. onnx/reference/ops/op_argmin.py +1 -1
  1722. onnx/reference/ops/op_asin.py +1 -1
  1723. onnx/reference/ops/op_asinh.py +1 -1
  1724. onnx/reference/ops/op_atan.py +1 -1
  1725. onnx/reference/ops/op_atanh.py +1 -1
  1726. onnx/reference/ops/op_attention.py +211 -0
  1727. onnx/reference/ops/op_attribute_has_value.py +15 -15
  1728. onnx/reference/ops/op_average_pool.py +1 -1
  1729. onnx/reference/ops/op_batch_normalization.py +13 -2
  1730. onnx/reference/ops/op_bernoulli.py +1 -1
  1731. onnx/reference/ops/op_bitshift.py +1 -1
  1732. onnx/reference/ops/op_bitwise_and.py +1 -1
  1733. onnx/reference/ops/op_bitwise_not.py +1 -1
  1734. onnx/reference/ops/op_bitwise_or.py +1 -1
  1735. onnx/reference/ops/op_bitwise_xor.py +1 -1
  1736. onnx/reference/ops/op_blackman_window.py +1 -1
  1737. onnx/reference/ops/op_cast.py +27 -10
  1738. onnx/reference/ops/op_cast_like.py +4 -1
  1739. onnx/reference/ops/op_ceil.py +1 -1
  1740. onnx/reference/ops/op_celu.py +1 -1
  1741. onnx/reference/ops/op_center_crop_pad.py +1 -1
  1742. onnx/reference/ops/op_clip.py +1 -1
  1743. onnx/reference/ops/op_col2im.py +10 -4
  1744. onnx/reference/ops/op_compress.py +1 -1
  1745. onnx/reference/ops/op_concat.py +1 -1
  1746. onnx/reference/ops/op_concat_from_sequence.py +9 -5
  1747. onnx/reference/ops/op_constant.py +5 -3
  1748. onnx/reference/ops/op_constant_of_shape.py +1 -1
  1749. onnx/reference/ops/op_conv.py +24 -23
  1750. onnx/reference/ops/op_conv_integer.py +1 -1
  1751. onnx/reference/ops/op_conv_transpose.py +35 -6
  1752. onnx/reference/ops/op_cos.py +1 -1
  1753. onnx/reference/ops/op_cosh.py +1 -1
  1754. onnx/reference/ops/op_cum_sum.py +3 -8
  1755. onnx/reference/ops/op_deform_conv.py +1 -1
  1756. onnx/reference/ops/op_depth_to_space.py +1 -1
  1757. onnx/reference/ops/op_dequantize_linear.py +37 -11
  1758. onnx/reference/ops/op_det.py +1 -1
  1759. onnx/reference/ops/op_dft.py +16 -2
  1760. onnx/reference/ops/op_div.py +1 -1
  1761. onnx/reference/ops/op_dropout.py +9 -8
  1762. onnx/reference/ops/op_dynamic_quantize_linear.py +1 -1
  1763. onnx/reference/ops/op_einsum.py +1 -1
  1764. onnx/reference/ops/op_elu.py +1 -1
  1765. onnx/reference/ops/op_equal.py +1 -1
  1766. onnx/reference/ops/op_erf.py +1 -1
  1767. onnx/reference/ops/op_exp.py +1 -1
  1768. onnx/reference/ops/op_expand.py +1 -1
  1769. onnx/reference/ops/op_eyelike.py +2 -2
  1770. onnx/reference/ops/op_flatten.py +1 -1
  1771. onnx/reference/ops/op_floor.py +1 -1
  1772. onnx/reference/ops/op_gather.py +1 -1
  1773. onnx/reference/ops/op_gather_elements.py +3 -3
  1774. onnx/reference/ops/op_gathernd.py +2 -4
  1775. onnx/reference/ops/op_gemm.py +12 -2
  1776. onnx/reference/ops/op_global_average_pool.py +1 -1
  1777. onnx/reference/ops/op_global_max_pool.py +1 -1
  1778. onnx/reference/ops/op_greater.py +1 -1
  1779. onnx/reference/ops/op_greater_or_equal.py +1 -1
  1780. onnx/reference/ops/op_grid_sample.py +2 -3
  1781. onnx/reference/ops/op_gru.py +7 -7
  1782. onnx/reference/ops/op_hamming_window.py +1 -1
  1783. onnx/reference/ops/op_hann_window.py +1 -1
  1784. onnx/reference/ops/op_hard_sigmoid.py +1 -1
  1785. onnx/reference/ops/op_hardmax.py +5 -2
  1786. onnx/reference/ops/op_identity.py +3 -3
  1787. onnx/reference/ops/op_if.py +6 -3
  1788. onnx/reference/ops/op_instance_normalization.py +1 -1
  1789. onnx/reference/ops/op_isinf.py +1 -1
  1790. onnx/reference/ops/op_isnan.py +1 -1
  1791. onnx/reference/ops/op_layer_normalization.py +2 -4
  1792. onnx/reference/ops/op_leaky_relu.py +5 -2
  1793. onnx/reference/ops/op_less.py +1 -1
  1794. onnx/reference/ops/op_less_or_equal.py +1 -1
  1795. onnx/reference/ops/op_log.py +1 -1
  1796. onnx/reference/ops/op_log_softmax.py +1 -1
  1797. onnx/reference/ops/op_loop.py +5 -3
  1798. onnx/reference/ops/op_lp_normalization.py +1 -1
  1799. onnx/reference/ops/op_lp_pool.py +4 -2
  1800. onnx/reference/ops/op_lrn.py +1 -1
  1801. onnx/reference/ops/op_lstm.py +9 -11
  1802. onnx/reference/ops/op_matmul.py +1 -1
  1803. onnx/reference/ops/op_matmul_integer.py +1 -1
  1804. onnx/reference/ops/op_max.py +1 -1
  1805. onnx/reference/ops/op_max_pool.py +8 -8
  1806. onnx/reference/ops/op_max_unpool.py +5 -3
  1807. onnx/reference/ops/op_mean.py +1 -1
  1808. onnx/reference/ops/op_mel_weight_matrix.py +1 -1
  1809. onnx/reference/ops/op_min.py +1 -1
  1810. onnx/reference/ops/op_mod.py +1 -1
  1811. onnx/reference/ops/op_mul.py +1 -1
  1812. onnx/reference/ops/op_neg.py +1 -1
  1813. onnx/reference/ops/op_negative_log_likelihood_loss.py +4 -2
  1814. onnx/reference/ops/op_non_max_suppression.py +16 -19
  1815. onnx/reference/ops/op_non_zero.py +1 -1
  1816. onnx/reference/ops/op_not.py +1 -1
  1817. onnx/reference/ops/op_one_hot.py +1 -1
  1818. onnx/reference/ops/op_optional.py +1 -1
  1819. onnx/reference/ops/op_optional_get_element.py +1 -1
  1820. onnx/reference/ops/op_optional_has_element.py +1 -1
  1821. onnx/reference/ops/op_or.py +1 -1
  1822. onnx/reference/ops/op_pad.py +1 -1
  1823. onnx/reference/ops/op_pool_common.py +52 -34
  1824. onnx/reference/ops/op_pow.py +1 -1
  1825. onnx/reference/ops/op_prelu.py +3 -3
  1826. onnx/reference/ops/op_qlinear_conv.py +14 -1
  1827. onnx/reference/ops/op_qlinear_matmul.py +1 -1
  1828. onnx/reference/ops/op_quantize_linear.py +57 -13
  1829. onnx/reference/ops/op_random_normal.py +1 -1
  1830. onnx/reference/ops/op_random_normal_like.py +1 -1
  1831. onnx/reference/ops/op_random_uniform.py +1 -1
  1832. onnx/reference/ops/op_random_uniform_like.py +1 -1
  1833. onnx/reference/ops/op_range.py +1 -1
  1834. onnx/reference/ops/op_reciprocal.py +1 -1
  1835. onnx/reference/ops/op_reduce_l1.py +1 -1
  1836. onnx/reference/ops/op_reduce_l2.py +1 -1
  1837. onnx/reference/ops/op_reduce_log_sum.py +1 -1
  1838. onnx/reference/ops/op_reduce_log_sum_exp.py +1 -1
  1839. onnx/reference/ops/op_reduce_max.py +1 -1
  1840. onnx/reference/ops/op_reduce_mean.py +2 -2
  1841. onnx/reference/ops/op_reduce_min.py +1 -1
  1842. onnx/reference/ops/op_reduce_prod.py +1 -1
  1843. onnx/reference/ops/op_reduce_sum.py +2 -2
  1844. onnx/reference/ops/op_reduce_sum_square.py +1 -1
  1845. onnx/reference/ops/op_regex_full_match.py +1 -1
  1846. onnx/reference/ops/op_relu.py +1 -1
  1847. onnx/reference/ops/op_reshape.py +1 -1
  1848. onnx/reference/ops/op_reverse_sequence.py +1 -1
  1849. onnx/reference/ops/op_rms_normalization.py +49 -0
  1850. onnx/reference/ops/op_rnn.py +10 -8
  1851. onnx/reference/ops/op_roi_align.py +5 -5
  1852. onnx/reference/ops/op_rotary_embedding.py +117 -0
  1853. onnx/reference/ops/op_round.py +1 -1
  1854. onnx/reference/ops/op_scan.py +12 -13
  1855. onnx/reference/ops/op_scatter_elements.py +19 -50
  1856. onnx/reference/ops/op_scatternd.py +1 -1
  1857. onnx/reference/ops/op_selu.py +1 -1
  1858. onnx/reference/ops/op_sequence_at.py +1 -1
  1859. onnx/reference/ops/op_sequence_construct.py +1 -1
  1860. onnx/reference/ops/op_sequence_empty.py +2 -2
  1861. onnx/reference/ops/op_sequence_erase.py +1 -1
  1862. onnx/reference/ops/op_sequence_insert.py +6 -6
  1863. onnx/reference/ops/op_sequence_length.py +1 -1
  1864. onnx/reference/ops/op_sequence_map.py +1 -1
  1865. onnx/reference/ops/op_shape.py +2 -6
  1866. onnx/reference/ops/op_shrink.py +1 -1
  1867. onnx/reference/ops/op_sigmoid.py +1 -1
  1868. onnx/reference/ops/op_sign.py +1 -1
  1869. onnx/reference/ops/op_sin.py +1 -1
  1870. onnx/reference/ops/op_sinh.py +1 -1
  1871. onnx/reference/ops/op_size.py +1 -1
  1872. onnx/reference/ops/op_slice.py +3 -5
  1873. onnx/reference/ops/op_softmax.py +1 -1
  1874. onnx/reference/ops/op_softmax_cross_entropy_loss.py +1 -1
  1875. onnx/reference/ops/op_softplus.py +1 -1
  1876. onnx/reference/ops/op_softsign.py +1 -1
  1877. onnx/reference/ops/op_space_to_depth.py +1 -1
  1878. onnx/reference/ops/op_split.py +1 -1
  1879. onnx/reference/ops/op_split_to_sequence.py +12 -11
  1880. onnx/reference/ops/op_sqrt.py +1 -1
  1881. onnx/reference/ops/op_squeeze.py +1 -1
  1882. onnx/reference/ops/op_stft.py +3 -2
  1883. onnx/reference/ops/op_string_concat.py +1 -1
  1884. onnx/reference/ops/op_string_normalizer.py +8 -8
  1885. onnx/reference/ops/op_string_split.py +4 -4
  1886. onnx/reference/ops/op_sub.py +1 -1
  1887. onnx/reference/ops/op_sum.py +1 -1
  1888. onnx/reference/ops/op_tan.py +1 -1
  1889. onnx/reference/ops/op_tanh.py +1 -1
  1890. onnx/reference/ops/op_tfidf_vectorizer.py +11 -12
  1891. onnx/reference/ops/op_thresholded_relu.py +1 -1
  1892. onnx/reference/ops/op_tile.py +1 -1
  1893. onnx/reference/ops/op_topk.py +13 -23
  1894. onnx/reference/ops/op_transpose.py +1 -1
  1895. onnx/reference/ops/op_trilu.py +1 -1
  1896. onnx/reference/ops/op_unique.py +3 -1
  1897. onnx/reference/ops/op_unsqueeze.py +2 -2
  1898. onnx/reference/ops/op_upsample.py +1 -1
  1899. onnx/reference/ops/op_where.py +1 -1
  1900. onnx/reference/ops/op_xor.py +1 -1
  1901. onnx/reference/ops_optimized/__init__.py +1 -0
  1902. onnx/reference/ops_optimized/op_conv_optimized.py +1 -1
  1903. onnx/reference/reference_evaluator.py +35 -27
  1904. onnx/serialization.py +5 -2
  1905. onnx/shape_inference/attribute_binder.h +1 -1
  1906. onnx/shape_inference/implementation.cc +25 -12
  1907. onnx/shape_inference/implementation.h +51 -19
  1908. onnx/shape_inference.py +8 -5
  1909. onnx/subbyte.py +134 -12
  1910. onnx/test/basic_test.py +1 -0
  1911. onnx/test/checker_test.py +41 -3
  1912. onnx/test/compose_test.py +15 -11
  1913. onnx/test/cpp/data_propagation_test.cc +19 -7
  1914. onnx/test/cpp/function_context_test.cc +18 -19
  1915. onnx/test/cpp/function_verify_test.cc +33 -29
  1916. onnx/test/cpp/parser_test.cc +97 -0
  1917. onnx/test/cpp/schema_registration_test.cc +3 -3
  1918. onnx/test/cpp/shape_inference_test.cc +48 -11
  1919. onnx/test/cpp/test_main.cc +1 -1
  1920. onnx/test/cpp/utf8_conversion_test.cc +27 -0
  1921. onnx/test/data_propagation_test.py +116 -2
  1922. onnx/test/function_inference_test.py +6 -1
  1923. onnx/test/function_test.py +2 -1
  1924. onnx/test/helper_test.py +140 -112
  1925. onnx/test/hub_test.py +1 -1
  1926. onnx/test/inference_function_test.py +31 -9
  1927. onnx/test/inliner_test.py +2 -0
  1928. onnx/test/model_container_refeval_test.py +2 -1
  1929. onnx/test/model_container_test.py +2 -1
  1930. onnx/test/model_inference_test.py +2 -0
  1931. onnx/test/numpy_helper_test.py +64 -12
  1932. onnx/test/parser_test.py +71 -2
  1933. onnx/test/printer_test.py +2 -0
  1934. onnx/test/reference_evaluator_ml_test.py +2 -3
  1935. onnx/test/reference_evaluator_model_test.py +2 -0
  1936. onnx/test/reference_evaluator_test.py +417 -56
  1937. onnx/test/schema_test.py +7 -2
  1938. onnx/test/serialization_test.py +2 -0
  1939. onnx/test/shape_inference_test.py +920 -160
  1940. onnx/test/symbolic_shape_test.py +3 -3
  1941. onnx/test/test_backend_reference.py +33 -3
  1942. onnx/test/test_backend_test.py +12 -10
  1943. onnx/test/test_external_data.py +99 -4
  1944. onnx/test/tools_test.py +15 -14
  1945. onnx/test/training_tool_test.py +1 -0
  1946. onnx/test/utils_test.py +2 -1
  1947. onnx/test/version_converter/automatic_conversion_test_base.py +6 -3
  1948. onnx/test/version_converter/automatic_downgrade_test.py +2 -0
  1949. onnx/test/version_converter/automatic_upgrade_test.py +176 -2
  1950. onnx/test/version_converter_test.py +43 -9
  1951. onnx/test/version_utils.py +8 -0
  1952. onnx/tools/net_drawer.py +6 -5
  1953. onnx/tools/replace_constants.py +11 -11
  1954. onnx/tools/update_model_dims.py +8 -7
  1955. onnx/utils.py +109 -72
  1956. onnx/version.py +2 -2
  1957. onnx/version_converter/BaseConverter.h +2 -7
  1958. onnx/version_converter/adapters/adapter.h +6 -3
  1959. onnx/version_converter/adapters/axes_attribute_to_input.h +1 -1
  1960. onnx/version_converter/adapters/axes_input_to_attribute.h +4 -4
  1961. onnx/version_converter/adapters/axis_attribute_to_input.h +2 -2
  1962. onnx/version_converter/adapters/axis_input_to_attribute.h +4 -6
  1963. onnx/version_converter/adapters/broadcast_backward_compatibility.h +1 -1
  1964. onnx/version_converter/adapters/broadcast_forward_compatibility.h +2 -2
  1965. onnx/version_converter/adapters/cast_9_8.h +1 -1
  1966. onnx/version_converter/adapters/clip_10_11.h +4 -2
  1967. onnx/version_converter/adapters/dropout_11_12.h +5 -2
  1968. onnx/version_converter/adapters/extend_supported_types.h +3 -3
  1969. onnx/version_converter/adapters/gemm_6_7.h +1 -1
  1970. onnx/version_converter/adapters/gemm_7_6.h +1 -1
  1971. onnx/version_converter/adapters/gridsample_19_20.h +3 -1
  1972. onnx/version_converter/adapters/group_normalization_20_21.h +2 -2
  1973. onnx/version_converter/adapters/maxpool_8_7.h +1 -1
  1974. onnx/version_converter/adapters/pad_10_11.h +3 -1
  1975. onnx/version_converter/adapters/q_dq_21_20.h +2 -2
  1976. onnx/version_converter/adapters/reshape_4_5.h +1 -1
  1977. onnx/version_converter/adapters/reshape_5_4.h +5 -5
  1978. onnx/version_converter/adapters/resize_10_11.h +3 -1
  1979. onnx/version_converter/adapters/scan_8_9.h +3 -3
  1980. onnx/version_converter/adapters/scan_9_8.h +2 -2
  1981. onnx/version_converter/adapters/scatter_10_11.h +3 -1
  1982. onnx/version_converter/adapters/slice_9_10.h +4 -2
  1983. onnx/version_converter/adapters/softmax_12_13.h +2 -2
  1984. onnx/version_converter/adapters/softmax_13_12.h +66 -0
  1985. onnx/version_converter/adapters/split_12_13.h +1 -1
  1986. onnx/version_converter/adapters/split_13_12.h +4 -4
  1987. onnx/version_converter/adapters/split_17_18.h +2 -2
  1988. onnx/version_converter/adapters/sum_8_7.h +1 -1
  1989. onnx/version_converter/adapters/topk_9_10.h +3 -1
  1990. onnx/version_converter/adapters/transformers.h +6 -5
  1991. onnx/version_converter/adapters/type_restriction.h +4 -4
  1992. onnx/version_converter/adapters/upsample_6_7.h +1 -1
  1993. onnx/version_converter/adapters/upsample_8_9.h +1 -1
  1994. onnx/version_converter/adapters/upsample_9_10.h +4 -1
  1995. onnx/version_converter/adapters/upsample_9_8.h +11 -11
  1996. onnx/version_converter/convert.cc +14 -11
  1997. onnx/version_converter/convert.h +160 -5
  1998. onnx/version_converter/helper.cc +4 -9
  1999. onnx/version_converter.py +4 -2
  2000. onnx-1.18.0.dist-info/METADATA +134 -0
  2001. {onnx-1.16.2.dist-info → onnx-1.18.0.dist-info}/RECORD +2005 -1042
  2002. {onnx-1.16.2.dist-info → onnx-1.18.0.dist-info}/WHEEL +1 -1
  2003. onnx/test/elu_test.py +0 -17
  2004. onnx/test/relu_test.py +0 -16
  2005. onnx/test/test_backend_onnxruntime.py +0 -328
  2006. onnx/test/test_with_ort.py +0 -50
  2007. onnx-1.16.2.dist-info/METADATA +0 -353
  2008. {onnx-1.16.2.dist-info → onnx-1.18.0.dist-info}/entry_points.txt +0 -0
  2009. {onnx-1.16.2.dist-info → onnx-1.18.0.dist-info/licenses}/LICENSE +0 -0
  2010. {onnx-1.16.2.dist-info → onnx-1.18.0.dist-info}/top_level.txt +0 -0
onnx/defs/nn/defs.cc CHANGED
@@ -4,13 +4,14 @@
4
4
 
5
5
  #include <algorithm>
6
6
  #include <cmath>
7
+ #include <limits>
7
8
 
8
9
  #include "onnx/common/assertions.h"
9
10
  #include "onnx/defs/function.h"
10
11
  #include "onnx/defs/schema.h"
11
12
 
12
13
  namespace ONNX_NAMESPACE {
13
- const char* pads_doc =
14
+ static const char* pads_doc =
14
15
  "Padding for the beginning and ending along each spatial axis, it can take any value greater "
15
16
  "than or equal to 0. The value represent the number of pixels added to the beginning "
16
17
  "and end part of the corresponding axis. `pads` format should be as follow "
@@ -18,7 +19,7 @@ const char* pads_doc =
18
19
  "added at the beginning of axis `i` and xi_end, the number of pixels added at "
19
20
  "the end of axis `i`. This attribute cannot be used simultaneously with "
20
21
  "auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.";
21
- const char* conv_auto_pad_doc =
22
+ static const char* conv_auto_pad_doc =
22
23
  "auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where "
23
24
  "default value is NOTSET, which means explicit padding is used. "
24
25
  "SAME_UPPER or SAME_LOWER mean pad the input so that "
@@ -26,7 +27,7 @@ const char* conv_auto_pad_doc =
26
27
  "The padding is split between the two sides equally or almost equally (depending "
27
28
  "on whether it is even or odd). In case the padding is an odd number, the extra "
28
29
  "padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.";
29
- const char* conv_transpose_auto_pad_doc =
30
+ static const char* conv_transpose_auto_pad_doc =
30
31
  "auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where "
31
32
  "default value is NOTSET, which means explicit padding is used. "
32
33
  "SAME_UPPER or SAME_LOWER mean pad the input so that "
@@ -35,7 +36,7 @@ const char* conv_transpose_auto_pad_doc =
35
36
  "on whether it is even or odd). In case the padding is an odd number, the extra "
36
37
  "padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.";
37
38
 
38
- void convPoolShapeInference(
39
+ static void convPoolShapeInference(
39
40
  InferenceContext& ctx,
40
41
  bool use_dilation,
41
42
  bool require_kernel_shape,
@@ -126,6 +127,9 @@ void convPoolShapeInference(
126
127
  residual -= stride;
127
128
  }
128
129
  }
130
+ if (i >= static_cast<int>(effective_kernel_shape.size())) {
131
+ fail_shape_inference("kernel shape should have ", input_dims_size, " values in ", ctx.getDisplayName(), ".");
132
+ }
129
133
  int64_t total_pad = residual == 0 ? effective_kernel_shape[i] - stride : effective_kernel_shape[i] - residual;
130
134
  if (total_pad < 0)
131
135
  total_pad = 0;
@@ -190,14 +194,14 @@ void convPoolShapeInference(
190
194
  }
191
195
  }
192
196
 
193
- std::vector<std::string> GetSupportedDataTypesForPoolingOps(bool supports8bit) {
197
+ static std::vector<std::string> GetSupportedDataTypesForPoolingOps(bool supports8bit) {
194
198
  if (supports8bit) {
195
- return {"tensor(float16)", "tensor(float)", "tensor(double)", "tensor(int8)", "tensor(uint8)"};
199
+ return OpSchema::all_float_types_plus_Xint8_ir4();
196
200
  }
197
- return {"tensor(float16)", "tensor(float)", "tensor(double)"};
201
+ return OpSchema::all_float_types_ir4();
198
202
  }
199
203
 
200
- std::function<void(OpSchema&)> PoolOpSchemaGenerator(
204
+ static std::function<void(OpSchema&)> PoolOpSchemaGenerator(
201
205
  const char* name,
202
206
  const char* opName,
203
207
  const char* additionalDescription,
@@ -313,7 +317,7 @@ std::function<void(OpSchema&)> PoolOpSchemaGenerator(
313
317
 
314
318
  ONNX_OPERATOR_SET_SCHEMA(
315
319
  AveragePool,
316
- 19,
320
+ 22,
317
321
  OpSchema()
318
322
  .FillUsing(PoolOpSchemaGenerator(
319
323
  "AveragePool",
@@ -334,7 +338,7 @@ ONNX_OPERATOR_SET_SCHEMA(
334
338
 
335
339
  ONNX_OPERATOR_SET_SCHEMA(
336
340
  MaxPool,
337
- 12,
341
+ 22,
338
342
  OpSchema()
339
343
  .FillUsing(PoolOpSchemaGenerator(
340
344
  "MaxPool",
@@ -370,7 +374,7 @@ ONNX_OPERATOR_SET_SCHEMA(
370
374
  OpSchema::NonDifferentiable)
371
375
  .TypeConstraint("I", {"tensor(int64)"}, "Constrain index tensor to int64"));
372
376
 
373
- void maxUnpoolShapeInference(InferenceContext& ctx) {
377
+ static void maxUnpoolShapeInference(InferenceContext& ctx) {
374
378
  // we need at least two inputs to have a shape for this inference.
375
379
  if (ctx.getNumInputs() != 2 && ctx.getNumInputs() != 3) {
376
380
  fail_type_inference("MaxUnpool op must have either two or three inputs.");
@@ -454,7 +458,7 @@ void maxUnpoolShapeInference(InferenceContext& ctx) {
454
458
  }
455
459
  }
456
460
 
457
- static const char* MaxUnpool_ver11_doc = R"DOC(
461
+ static const char* MaxUnpool_ver22_doc = R"DOC(
458
462
  MaxUnpool essentially computes the partial inverse of the MaxPool op.
459
463
  The input information to this op is typically the output information from a MaxPool op. The first
460
464
  input tensor X is the tensor that needs to be unpooled, which is typically the pooled tensor (first output)
@@ -477,9 +481,9 @@ In addition to the inputs, MaxUnpool takes three attributes, namely kernel_shape
477
481
 
478
482
  ONNX_OPERATOR_SET_SCHEMA(
479
483
  MaxUnpool,
480
- 11,
484
+ 22,
481
485
  OpSchema()
482
- .SetDoc(MaxUnpool_ver11_doc)
486
+ .SetDoc(MaxUnpool_ver22_doc)
483
487
  .Attr("kernel_shape", "The size of the kernel along each axis.", AttributeProto::INTS)
484
488
  .Attr(
485
489
  "strides",
@@ -541,14 +545,11 @@ ONNX_OPERATOR_SET_SCHEMA(
541
545
  true,
542
546
  1,
543
547
  OpSchema::Differentiable)
544
- .TypeConstraint(
545
- "T1",
546
- {"tensor(float16)", "tensor(float)", "tensor(double)"},
547
- "Constrain input and output types to float tensors.")
548
+ .TypeConstraint("T1", OpSchema::all_float_types_ir4(), "Constrain input and output types to float tensors.")
548
549
  .TypeConstraint("T2", {"tensor(int64)"}, "Constrain index tensor to int64")
549
550
  .TypeAndShapeInferenceFunction([](InferenceContext& ctx) { maxUnpoolShapeInference(ctx); }));
550
551
 
551
- std::function<void(OpSchema&)> LpPoolOpSchemaGenerator(const char* name) {
552
+ static std::function<void(OpSchema&)> LpPoolOpSchemaGenerator(const char* name) {
552
553
  return [=](OpSchema& schema) {
553
554
  std::string doc;
554
555
  POPULATE_OP_DOC_STR(doc = R"DOC(
@@ -624,10 +625,7 @@ std::function<void(OpSchema&)> LpPoolOpSchemaGenerator(const char* name) {
624
625
  true,
625
626
  1,
626
627
  OpSchema::Differentiable);
627
- schema.TypeConstraint(
628
- "T",
629
- {"tensor(float16)", "tensor(float)", "tensor(double)"},
630
- "Constrain input and output types to float tensors.");
628
+ schema.TypeConstraint("T", OpSchema::all_float_types_ir4(), "Constrain input and output types to float tensors.");
631
629
  schema.TypeAndShapeInferenceFunction([](InferenceContext& ctx) {
632
630
  propagateElemTypeFromInputToOutput(ctx, 0, 0);
633
631
  convPoolShapeInference(ctx, true, true, 0, 1);
@@ -635,10 +633,10 @@ std::function<void(OpSchema&)> LpPoolOpSchemaGenerator(const char* name) {
635
633
  };
636
634
  }
637
635
 
638
- ONNX_OPERATOR_SET_SCHEMA(LpPool, 18, OpSchema().FillUsing(LpPoolOpSchemaGenerator("LpPool")));
636
+ ONNX_OPERATOR_SET_SCHEMA(LpPool, 22, OpSchema().FillUsing(LpPoolOpSchemaGenerator("LpPool")));
639
637
 
640
638
  // For ROI pool operations.
641
- void roiPoolTypeShapeInference(InferenceContext& ctx) {
639
+ static void roiPoolTypeShapeInference(InferenceContext& ctx) {
642
640
  propagateElemTypeFromInputToOutput(ctx, 0, 0);
643
641
 
644
642
  // rois is the second input.
@@ -677,7 +675,7 @@ void roiPoolTypeShapeInference(InferenceContext& ctx) {
677
675
  output_shape->add_dim()->set_dim_value(pooled_shape[1]);
678
676
  }
679
677
 
680
- std::function<void(OpSchema&)> RoiPoolOpSchemaGenerator(const char* name) {
678
+ static std::function<void(OpSchema&)> RoiPoolOpSchemaGenerator(const char* name) {
681
679
  return [=](OpSchema& schema) {
682
680
  std::string doc;
683
681
  POPULATE_OP_DOC_STR(doc = R"DOC(
@@ -725,17 +723,14 @@ std::function<void(OpSchema&)> RoiPoolOpSchemaGenerator(const char* name) {
725
723
  true,
726
724
  1,
727
725
  OpSchema::Differentiable);
728
- schema.TypeConstraint(
729
- "T",
730
- {"tensor(float16)", "tensor(float)", "tensor(double)"},
731
- "Constrain input and output types to float tensors.");
726
+ schema.TypeConstraint("T", OpSchema::all_float_types_ir4(), "Constrain input and output types to float tensors.");
732
727
  schema.TypeAndShapeInferenceFunction([](InferenceContext& ctx) { roiPoolTypeShapeInference(ctx); });
733
728
  };
734
729
  }
735
730
 
736
- ONNX_OPERATOR_SET_SCHEMA(MaxRoiPool, 1, OpSchema().FillUsing(RoiPoolOpSchemaGenerator("max")));
731
+ ONNX_OPERATOR_SET_SCHEMA(MaxRoiPool, 22, OpSchema().FillUsing(RoiPoolOpSchemaGenerator("max")));
737
732
 
738
- std::function<void(OpSchema&)> ConvOpSchemaGenerator(const char* filter_desc) {
733
+ static std::function<void(OpSchema&)> ConvOpSchemaGenerator(const char* filter_desc) {
739
734
  return [=](OpSchema& schema) {
740
735
  std::string doc;
741
736
  POPULATE_OP_DOC_STR(doc = R"DOC(
@@ -806,10 +801,7 @@ computes the output.)DOC";
806
801
  true,
807
802
  1,
808
803
  OpSchema::Differentiable);
809
- schema.TypeConstraint(
810
- "T",
811
- {"tensor(float16)", "tensor(float)", "tensor(double)"},
812
- "Constrain input and output types to float tensors.");
804
+ schema.TypeConstraint("T", OpSchema::all_float_types_ir4(), "Constrain input and output types to float tensors.");
813
805
  schema.Attr(
814
806
  "kernel_shape",
815
807
  "The shape of the convolution kernel. If not present, should be inferred from input W.",
@@ -839,7 +831,7 @@ computes the output.)DOC";
839
831
  };
840
832
  }
841
833
 
842
- ONNX_OPERATOR_SET_SCHEMA(Conv, 11, OpSchema().FillUsing(ConvOpSchemaGenerator("a filter")));
834
+ ONNX_OPERATOR_SET_SCHEMA(Conv, 22, OpSchema().FillUsing(ConvOpSchemaGenerator("a filter")));
843
835
 
844
836
  static const char* QLinearConv_ver10_doc = R"DOC(
845
837
  The convolution operator consumes a quantized input tensor, its scale and zero point,
@@ -971,19 +963,21 @@ ONNX_OPERATOR_SET_SCHEMA(
971
963
  auto w_type = ctx.getInputType(3);
972
964
  if (nullptr == x_type || nullptr == w_type || x_type->value_case() != TypeProto::kTensorType ||
973
965
  w_type->value_case() != TypeProto::kTensorType) {
974
- fail_type_inference("inputs are expected to have tensor type.");
966
+ fail_type_inference("inputs are expected to have tensor type in ", ctx.getDisplayName(), ".");
975
967
  }
976
968
 
977
969
  auto x_zero_point_type = ctx.getInputType(2);
978
970
  if (nullptr == x_zero_point_type ||
979
971
  x_zero_point_type->tensor_type().elem_type() != x_type->tensor_type().elem_type()) {
980
- fail_type_inference("input and zero_point pair is expected to have be same type.");
972
+ fail_type_inference(
973
+ "input and zero_point pair is expected to have be same type in ", ctx.getDisplayName(), ".");
981
974
  }
982
975
 
983
976
  auto w_zero_point_type = ctx.getInputType(5);
984
977
  if (nullptr == w_zero_point_type ||
985
978
  w_zero_point_type->tensor_type().elem_type() != w_type->tensor_type().elem_type()) {
986
- fail_type_inference("weight and zero_point pair is expected to have same type.");
979
+ fail_type_inference(
980
+ "weight and zero_point pair is expected to have same type in ", ctx.getDisplayName(), ".");
987
981
  }
988
982
 
989
983
  propagateElemTypeFromInputToOutput(ctx, 7, 0);
@@ -1108,7 +1102,7 @@ ONNX_OPERATOR_SET_SCHEMA(
1108
1102
  convPoolShapeInference(ctx, true, false, 0, 1);
1109
1103
  }));
1110
1104
 
1111
- void convTransposeShapeInference(InferenceContext& ctx) {
1105
+ static void convTransposeShapeInference(InferenceContext& ctx) {
1112
1106
  propagateElemTypeFromInputToOutput(ctx, 0, 0);
1113
1107
 
1114
1108
  // we need at least two inputs to have a shape for this inference.
@@ -1222,7 +1216,7 @@ void convTransposeShapeInference(InferenceContext& ctx) {
1222
1216
  ctx.getInputType(1)->tensor_type().shape().dim(1) * group; // channels should be the second dim of second input
1223
1217
  // multiply group.
1224
1218
 
1225
- int size_of_output;
1219
+ int size_of_output = 0;
1226
1220
  if (output_shape_presented) {
1227
1221
  size_of_output = static_cast<int>(output_shape.size());
1228
1222
  for (int i = 0; i < size_of_output; ++i) {
@@ -1251,7 +1245,7 @@ void convTransposeShapeInference(InferenceContext& ctx) {
1251
1245
  }
1252
1246
  }
1253
1247
 
1254
- std::function<void(OpSchema&)> ConvTransposeOpSchemaGenerator(const char* filter_desc) {
1248
+ static std::function<void(OpSchema&)> ConvTransposeOpSchemaGenerator(const char* filter_desc) {
1255
1249
  return [=](OpSchema& schema) {
1256
1250
  std::string doc;
1257
1251
  POPULATE_OP_DOC_STR(doc = R"DOC(
@@ -1322,10 +1316,7 @@ output_shape can also be explicitly specified in which case pads values are auto
1322
1316
  true,
1323
1317
  1,
1324
1318
  OpSchema::Differentiable);
1325
- schema.TypeConstraint(
1326
- "T",
1327
- {"tensor(float16)", "tensor(float)", "tensor(double)"},
1328
- "Constrain input and output types to float tensors.");
1319
+ schema.TypeConstraint("T", OpSchema::all_float_types_ir4(), "Constrain input and output types to float tensors.");
1329
1320
  schema.Attr(
1330
1321
  "kernel_shape",
1331
1322
  "The shape of the convolution kernel. If not present, should be inferred from input W.",
@@ -1373,18 +1364,18 @@ output_shape can also be explicitly specified in which case pads values are auto
1373
1364
  };
1374
1365
  }
1375
1366
 
1376
- ONNX_OPERATOR_SET_SCHEMA(ConvTranspose, 11, OpSchema().FillUsing(ConvTransposeOpSchemaGenerator("a filter")));
1367
+ ONNX_OPERATOR_SET_SCHEMA(ConvTranspose, 22, OpSchema().FillUsing(ConvTransposeOpSchemaGenerator("a filter")));
1377
1368
 
1378
- static const char* DeformConv_ver19_doc = R"DOC(
1369
+ static const char* DeformConv_ver22_doc = R"DOC(
1379
1370
  Performs deformable convolution as described in https://arxiv.org/abs/1703.06211 and https://arxiv.org/abs/1811.11168.
1380
1371
  This operator specification supports the general N-D case. Note that most common use cases have 2D or 3D data.
1381
1372
  )DOC";
1382
1373
 
1383
1374
  ONNX_OPERATOR_SET_SCHEMA(
1384
1375
  DeformConv,
1385
- 19,
1376
+ 22,
1386
1377
  OpSchema()
1387
- .SetDoc(DeformConv_ver19_doc)
1378
+ .SetDoc(DeformConv_ver22_doc)
1388
1379
  .Input(
1389
1380
  0,
1390
1381
  "X",
@@ -1429,10 +1420,7 @@ ONNX_OPERATOR_SET_SCHEMA(
1429
1420
  "Output data tensor that contains the result of convolution. It has shape (N, oC, oH, oW) "
1430
1421
  "for 2D data or (N, oC, o1, o2, ..., on) for nD data",
1431
1422
  "T")
1432
- .TypeConstraint(
1433
- "T",
1434
- {"tensor(float16)", "tensor(float)", "tensor(double)"},
1435
- "Constrain input and output types to float tensors.")
1423
+ .TypeConstraint("T", OpSchema::all_float_types_ir4(), "Constrain input and output types to float tensors.")
1436
1424
  .Attr(
1437
1425
  "dilations",
1438
1426
  "Dilation value along each spatial axis of the kernel. Default is 1 along each axis.",
@@ -1474,7 +1462,7 @@ ONNX_OPERATOR_SET_SCHEMA(
1474
1462
  }));
1475
1463
 
1476
1464
  // For GlobalPool operations.
1477
- void globalPoolTypeShapeInference(InferenceContext& ctx) {
1465
+ static void globalPoolTypeShapeInference(InferenceContext& ctx) {
1478
1466
  propagateElemTypeFromInputToOutput(ctx, 0, 0);
1479
1467
 
1480
1468
  // needs at least one input with shape.
@@ -1500,7 +1488,7 @@ void globalPoolTypeShapeInference(InferenceContext& ctx) {
1500
1488
  }
1501
1489
  }
1502
1490
 
1503
- std::function<void(OpSchema&)> GlobalPoolingOpSchemaGenerator(const char* op_type, const char* op) {
1491
+ static std::function<void(OpSchema&)> GlobalPoolingOpSchemaGenerator(const char* op_type, const char* op) {
1504
1492
  return [=](OpSchema& schema) {
1505
1493
  std::string doc;
1506
1494
  POPULATE_OP_DOC_STR(doc = R"DOC(
@@ -1537,20 +1525,17 @@ std::function<void(OpSchema&)> GlobalPoolingOpSchemaGenerator(const char* op_typ
1537
1525
  true,
1538
1526
  1,
1539
1527
  OpSchema::Differentiable);
1540
- schema.TypeConstraint(
1541
- "T",
1542
- {"tensor(float16)", "tensor(float)", "tensor(double)"},
1543
- "Constrain input and output types to float tensors.");
1528
+ schema.TypeConstraint("T", OpSchema::all_float_types_ir4(), "Constrain input and output types to float tensors.");
1544
1529
  schema.TypeAndShapeInferenceFunction([](InferenceContext& ctx) { globalPoolTypeShapeInference(ctx); });
1545
1530
  };
1546
1531
  }
1547
1532
  ONNX_OPERATOR_SET_SCHEMA(
1548
1533
  GlobalAveragePool,
1549
- 1,
1534
+ 22,
1550
1535
  OpSchema().FillUsing(GlobalPoolingOpSchemaGenerator("AveragePool", "average")));
1551
- ONNX_OPERATOR_SET_SCHEMA(GlobalMaxPool, 1, OpSchema().FillUsing(GlobalPoolingOpSchemaGenerator("MaxPool", "max")));
1536
+ ONNX_OPERATOR_SET_SCHEMA(GlobalMaxPool, 22, OpSchema().FillUsing(GlobalPoolingOpSchemaGenerator("MaxPool", "max")));
1552
1537
 
1553
- std::function<void(OpSchema&)> GlobalLpPoolingOpSchemaGenerator(const char* op_type, const char* op) {
1538
+ static std::function<void(OpSchema&)> GlobalLpPoolingOpSchemaGenerator(const char* op_type, const char* op) {
1554
1539
  return [=](OpSchema& schema) {
1555
1540
  std::string doc;
1556
1541
  POPULATE_OP_DOC_STR(doc = R"DOC(
@@ -1589,15 +1574,12 @@ std::function<void(OpSchema&)> GlobalLpPoolingOpSchemaGenerator(const char* op_t
1589
1574
  true,
1590
1575
  1,
1591
1576
  OpSchema::Differentiable);
1592
- schema.TypeConstraint(
1593
- "T",
1594
- {"tensor(float16)", "tensor(float)", "tensor(double)"},
1595
- "Constrain input and output types to float tensors.");
1577
+ schema.TypeConstraint("T", OpSchema::all_float_types_ir4(), "Constrain input and output types to float tensors.");
1596
1578
  schema.TypeAndShapeInferenceFunction([](InferenceContext& ctx) { globalPoolTypeShapeInference(ctx); });
1597
1579
  };
1598
1580
  }
1599
1581
 
1600
- ONNX_OPERATOR_SET_SCHEMA(GlobalLpPool, 2, OpSchema().FillUsing(GlobalLpPoolingOpSchemaGenerator("LpPool", "lp pool")));
1582
+ ONNX_OPERATOR_SET_SCHEMA(GlobalLpPool, 22, OpSchema().FillUsing(GlobalLpPoolingOpSchemaGenerator("LpPool", "lp pool")));
1601
1583
 
1602
1584
  static const char* BatchNormalization_ver15_doc = R"DOC(
1603
1585
  Carries out batch normalization as described in the paper
@@ -1779,7 +1761,7 @@ ONNX_OPERATOR_SET_SCHEMA(
1779
1761
  }
1780
1762
  }));
1781
1763
 
1782
- static const char* InstanceNormalization_ver6_doc = R"DOC(
1764
+ static const char* InstanceNormalization_ver22_doc = R"DOC(
1783
1765
  Carries out instance normalization as described in the paper
1784
1766
  https://arxiv.org/abs/1607.08022.
1785
1767
 
@@ -1790,9 +1772,9 @@ where mean and variance are computed per instance per channel.
1790
1772
 
1791
1773
  ONNX_OPERATOR_SET_SCHEMA(
1792
1774
  InstanceNormalization,
1793
- 6,
1775
+ 22,
1794
1776
  OpSchema()
1795
- .SetDoc(InstanceNormalization_ver6_doc)
1777
+ .SetDoc(InstanceNormalization_ver22_doc)
1796
1778
  .Attr("epsilon", "The epsilon value to use to avoid division by zero.", AttributeProto::FLOAT, 1e-5f)
1797
1779
  .Input(
1798
1780
  0,
@@ -1837,27 +1819,21 @@ ONNX_OPERATOR_SET_SCHEMA(
1837
1819
  true,
1838
1820
  1,
1839
1821
  OpSchema::Differentiable)
1840
- .TypeConstraint(
1841
- "T",
1842
- {"tensor(float16)", "tensor(float)", "tensor(double)"},
1843
- "Constrain input and output types to float tensors.")
1822
+ .TypeConstraint("T", OpSchema::all_float_types_ir4(), "Constrain input and output types to float tensors.")
1844
1823
  .TypeAndShapeInferenceFunction([](InferenceContext& ctx) { propagateShapeAndTypeFromFirstInput(ctx); }));
1845
1824
 
1846
- static const char* LpNormalization_ver1_doc = R"DOC(
1825
+ static const char* LpNormalization_ver22_doc = R"DOC(
1847
1826
  Given a matrix, apply Lp-normalization along the provided axis.
1848
1827
  )DOC";
1849
1828
 
1850
1829
  ONNX_OPERATOR_SET_SCHEMA(
1851
1830
  LpNormalization,
1852
- 1,
1831
+ 22,
1853
1832
  OpSchema()
1854
1833
  .Input(0, "input", "Input matrix", "T", OpSchema::Single, true, 1, OpSchema::Differentiable)
1855
1834
  .Output(0, "output", "Matrix after normalization", "T", OpSchema::Single, true, 1, OpSchema::Differentiable)
1856
- .TypeConstraint(
1857
- "T",
1858
- {"tensor(float16)", "tensor(float)", "tensor(double)"},
1859
- "Constrain input and output types to float tensors.")
1860
- .SetDoc(LpNormalization_ver1_doc)
1835
+ .TypeConstraint("T", OpSchema::all_float_types_ir4(), "Constrain input and output types to float tensors.")
1836
+ .SetDoc(LpNormalization_ver22_doc)
1861
1837
  .Attr(
1862
1838
  "axis",
1863
1839
  "The axis on which to apply normalization, -1 mean last axis.",
@@ -1870,7 +1846,7 @@ ONNX_OPERATOR_SET_SCHEMA(
1870
1846
  static_cast<int64_t>(2))
1871
1847
  .TypeAndShapeInferenceFunction([](InferenceContext& ctx) { propagateShapeAndTypeFromFirstInput(ctx); }));
1872
1848
 
1873
- static const char* Dropout_ver13_doc = R"DOC(
1849
+ static const char* Dropout_ver22_doc = R"DOC(
1874
1850
  Dropout takes an input floating-point tensor, an optional input ratio (floating-point scalar) and an optional input training_mode (boolean scalar). It produces two tensor outputs,
1875
1851
  output (floating-point tensor) and mask (optional `Tensor<bool>`). If `training_mode` is true then the output Y will be a random dropout;
1876
1852
  Note that this Dropout scales the masked input data by the following equation, so to convert the trained model into inference mode,
@@ -1886,9 +1862,9 @@ scale = 1. / (1. - ratio).
1886
1862
 
1887
1863
  ONNX_OPERATOR_SET_SCHEMA(
1888
1864
  Dropout,
1889
- 13,
1865
+ 22,
1890
1866
  OpSchema()
1891
- .SetDoc(GET_OP_DOC_STR(std::string(Dropout_ver13_doc) + GenerateOptionalArgumentsDoc()))
1867
+ .SetDoc(GET_OP_DOC_STR(std::string(Dropout_ver22_doc) + GenerateOptionalArgumentsDoc()))
1892
1868
  .Attr(
1893
1869
  "seed",
1894
1870
  "(Optional) Seed to the random generator, if not specified we will auto generate one.",
@@ -1920,14 +1896,8 @@ ONNX_OPERATOR_SET_SCHEMA(
1920
1896
  OpSchema::NonDifferentiable)
1921
1897
  .Output(0, "output", "The output.", "T", OpSchema::Single, true, 1, OpSchema::Differentiable)
1922
1898
  .Output(1, "mask", "The output mask.", "T2", OpSchema::Optional, true, 1, OpSchema::NonDifferentiable)
1923
- .TypeConstraint(
1924
- "T",
1925
- {"tensor(float16)", "tensor(float)", "tensor(double)", "tensor(bfloat16)"},
1926
- "Constrain input and output types to float tensors.")
1927
- .TypeConstraint(
1928
- "T1",
1929
- {"tensor(float16)", "tensor(float)", "tensor(double)"},
1930
- "Constrain input 'ratio' types to float tensors.")
1899
+ .TypeConstraint("T", OpSchema::all_float_types_ir10(), "Constrain input and output types to float tensors.")
1900
+ .TypeConstraint("T1", OpSchema::all_float_types_ir10(), "Constrain input 'ratio' types to float tensors.")
1931
1901
  .TypeConstraint("T2", {"tensor(bool)"}, "Constrain output 'mask' types to boolean tensors.")
1932
1902
  .TypeAndShapeInferenceFunction([](InferenceContext& ctx) {
1933
1903
  propagateElemTypeFromInputToOutput(ctx, 0, 0);
@@ -1991,7 +1961,7 @@ ONNX_OPERATOR_SET_SCHEMA(
1991
1961
  LambdaLessThanInput = Less (LambdCast, input)
1992
1962
  InputSubBiasOrZero = Where (LambdaLessThanInput, InputSubBias, ZeroCast)
1993
1963
  output = Where(InputLessThanNegLambda, InputAddBias, InputSubBiasOrZero)
1994
- }
1964
+ }
1995
1965
  )ONNX",
1996
1966
  18));
1997
1967
 
@@ -2003,7 +1973,7 @@ Flattens the input tensor into a 2D matrix. If input tensor has shape
2003
1973
 
2004
1974
  ONNX_OPERATOR_SET_SCHEMA(
2005
1975
  Flatten,
2006
- 21,
1976
+ 23,
2007
1977
  OpSchema()
2008
1978
  .SetDoc(Flatten_ver11_doc)
2009
1979
  .Input(0, "input", "A tensor of rank >= axis.", "T", OpSchema::Single, true, 1, OpSchema::Differentiable)
@@ -2021,7 +1991,7 @@ ONNX_OPERATOR_SET_SCHEMA(
2021
1991
  OpSchema::Differentiable)
2022
1992
  .TypeConstraint(
2023
1993
  "T",
2024
- OpSchema::all_tensor_types_ir10(),
1994
+ OpSchema::all_tensor_types_ir11(),
2025
1995
  "Constrain input and output to all tensor types up to IRv10.")
2026
1996
  .Attr(
2027
1997
  "axis",
@@ -2293,7 +2263,7 @@ ONNX_OPERATOR_SET_SCHEMA(
2293
2263
  )ONNX",
2294
2264
  18));
2295
2265
 
2296
- void col2imShapeInference(InferenceContext& ctx) {
2266
+ static void col2imShapeInference(InferenceContext& ctx) {
2297
2267
  propagateElemTypeFromInputToOutput(ctx, 0, 0);
2298
2268
 
2299
2269
  // All inputs shapes are required
@@ -2377,7 +2347,7 @@ void col2imShapeInference(InferenceContext& ctx) {
2377
2347
  // Image dimensions are dynamic
2378
2348
  for (auto i = 0; i < n_input_dims.dim_value(); ++i) {
2379
2349
  Dim image_dim_i;
2380
- if (image_shape.size() > 0) {
2350
+ if (!image_shape.empty()) {
2381
2351
  image_dim_i.set_dim_value(image_shape[i]); // Otherwise, spatial dimensions are unknown
2382
2352
  }
2383
2353
  *final_image_shape->add_dim() = image_dim_i;
@@ -2522,7 +2492,7 @@ static const char* LayerNormalization_ver17_doc = R"DOC(
2522
2492
  for more details please check [the doc](Broadcasting.md).
2523
2493
  )DOC";
2524
2494
 
2525
- bool BuildContextDependentFunctionBodyLayerNormalization(
2495
+ static bool BuildContextDependentFunctionBodyLayerNormalization(
2526
2496
  const FunctionBodyBuildContext& ctx,
2527
2497
  const OpSchema& schema,
2528
2498
  FunctionProto& functionProto,
@@ -2612,14 +2582,14 @@ bool BuildContextDependentFunctionBodyLayerNormalization(
2612
2582
  return true;
2613
2583
  }
2614
2584
 
2615
- bool BuildContextDependentFunctionBodyLayerNormalizationVer17(
2585
+ static bool BuildContextDependentFunctionBodyLayerNormalizationVer17(
2616
2586
  const FunctionBodyBuildContext& ctx,
2617
2587
  const OpSchema& schema,
2618
2588
  FunctionProto& functionProto) {
2619
2589
  return BuildContextDependentFunctionBodyLayerNormalization(ctx, schema, functionProto, 17);
2620
2590
  }
2621
2591
 
2622
- bool BuildContextDependentFunctionBodyLayerNormalizationVer18(
2592
+ static bool BuildContextDependentFunctionBodyLayerNormalizationVer18(
2623
2593
  const FunctionBodyBuildContext& ctx,
2624
2594
  const OpSchema& schema,
2625
2595
  FunctionProto& functionProto) {
@@ -2680,7 +2650,8 @@ ONNX_OPERATOR_SET_SCHEMA(
2680
2650
  if (!hasNInputShapes(ctx, 1)) {
2681
2651
  return;
2682
2652
  }
2683
- auto& input_shape = ctx.getInputType(0)->tensor_type().shape();
2653
+
2654
+ auto& input_shape = getInputShape(ctx, 0);
2684
2655
  int64_t input_ndim = input_shape.dim_size();
2685
2656
  int64_t axis = -1;
2686
2657
  auto axis_proto = ctx.getAttribute("axis");
@@ -2692,7 +2663,16 @@ ONNX_OPERATOR_SET_SCHEMA(
2692
2663
  // positive value.
2693
2664
  axis += input_ndim;
2694
2665
  }
2695
-
2666
+ if (axis < 0) {
2667
+ fail_shape_inference(
2668
+ "Unexpected axis value (",
2669
+ axis,
2670
+ ") rank of first input is ",
2671
+ input_ndim,
2672
+ " in ",
2673
+ ctx.getDisplayName(),
2674
+ ".");
2675
+ }
2696
2676
  if (ctx.getNumOutputs() > 1) {
2697
2677
  auto mean_shape = ctx.getOutputType(1)->mutable_tensor_type()->mutable_shape();
2698
2678
  mean_shape->CopyFrom(input_shape);
@@ -2717,7 +2697,7 @@ This operator transforms input according to
2717
2697
  y = scale * (x - mean) / sqrt(variance + epsilon) + bias,
2718
2698
  ```
2719
2699
  where the mean and variance are computed per instance per group of channels, and
2720
- `scale` and `bias` should be specified for each group of channels. The number of
2700
+ `scale` and `bias` should be specified for each channel. The number of
2721
2701
  groups `num_groups` should be divisible by the number of channels so that there are
2722
2702
  an equal number of channels per group.
2723
2703
 
@@ -2850,4 +2830,1016 @@ ONNX_OPERATOR_SET_SCHEMA(
2850
2830
  schema.BuildFunction(functionProto);
2851
2831
  return true;
2852
2832
  }));
2833
+
2834
+ static const char* RMSNormalization_ver23_doc = R"DOC(
2835
+ This is RMS normalization defined in ONNX as function as described in the paper https://arxiv.org/pdf/1910.07467.
2836
+ The overall computation can be split into two stages. The root mean squared norm is taken over the last D dimensions,
2837
+ where D is the dimension of normalized_shape. For example, if normalized_shape is (3, 5) (a 2-dimensional shape),
2838
+ the rms norm is computed over the last 2 dimensions of the input. The computation required by standardization can be
2839
+ described by the following equations.
2840
+ ```
2841
+ XSquared = Mul(X, X)
2842
+ XSquaredMean = ReduceMean<axes=normalized_axes>(XSquared)
2843
+ MeanSquareEpsilon = Add(XSquaredMean, epsilon)
2844
+ RMS = Sqrt(MeanSquareEpsilon)
2845
+ Normalized = Div(X, RMS)
2846
+ ```
2847
+ where `normalized_axes` is `[axis, ..., rank of X - 1]`. The variables `RMS` stand for root mean square,
2848
+ Depending on `stash_type` attribute, the actual computation
2849
+ must happen in different floating-point precision.
2850
+ For example, if `stash_type` is 1, this operator casts
2851
+ all input variables to 32-bit float, perform the computation, and
2852
+ finally cast `Normalized` back to the original type of `X`.
2853
+ The second stage then scales the outcome of the first stage using:
2854
+ ```
2855
+ Y= Mul(Normalized, Scale)
2856
+ ```
2857
+ Let `d[i]` indicate the i-th dimension of `X`.
2858
+ If `X`'s shape is `[d[0], ..., d[axis-1], d[axis], ..., d[rank-1]]`,
2859
+ the shape of `RMS` is `[d[0], ..., d[axis-1], 1, ..., 1]`.
2860
+ `Y` and `X` have the same shape. This operator supports unidirectional broadcasting
2861
+ (`Scale` should be unidirectional broadcastable to tensor `X`);
2862
+ for more details please check [the doc](Broadcasting.md).
2863
+ )DOC";
2864
+
2865
+ ONNX_OPERATOR_SET_SCHEMA(
2866
+ RMSNormalization,
2867
+ 23,
2868
+ OpSchema()
2869
+ .SetDoc(RMSNormalization_ver23_doc)
2870
+ .Attr(
2871
+ "axis",
2872
+ "The first normalization dimension. If rank(X) is r, axis' allowed range is [-r, r). "
2873
+ "Negative value means counting dimensions from the back.",
2874
+ AttributeProto::INT,
2875
+ static_cast<int64_t>(-1))
2876
+ .Attr("epsilon", "The epsilon value to use to avoid division by zero.", AttributeProto::FLOAT, 1e-5f)
2877
+ .Attr(
2878
+ "stash_type",
2879
+ "The floating-point precision used in stage one of the computation.",
2880
+ AttributeProto::INT,
2881
+ static_cast<int64_t>(ONNX_NAMESPACE::TensorProto_DataType_FLOAT))
2882
+ .Input(
2883
+ 0,
2884
+ "X",
2885
+ "The input tensor to be normalized. "
2886
+ "In general, the shape is (D1, D2, ... , Dn) for n-dimensional data, where "
2887
+ "the root mean squared norm is taken over the last D dimensions, D is determined by the axis attribute.",
2888
+ "T")
2889
+ .Input(1, "scale", "Scale tensor. Scale tensor shape should be broadcastable to the normalized shape.", "V")
2890
+ .Output(0, "Y", "Output data tensor. Same shape as X", "V")
2891
+ .TypeConstraint(
2892
+ "T",
2893
+ {"tensor(float16)", "tensor(float)", "tensor(double)", "tensor(bfloat16)"},
2894
+ "Constrain input X type to float tensors.")
2895
+ .TypeConstraint(
2896
+ "V",
2897
+ {"tensor(float16)", "tensor(float)", "tensor(double)", "tensor(bfloat16)"},
2898
+ "Constrain output Y and scale type to float tensors.")
2899
+ .TypeAndShapeInferenceFunction([](ONNX_NAMESPACE::InferenceContext& ctx) {
2900
+ propagateShapeAndTypeFromFirstInput(ctx);
2901
+ if (!hasNInputShapes(ctx, 1)) {
2902
+ return;
2903
+ }
2904
+ auto& input_shape = ctx.getInputType(0)->tensor_type().shape();
2905
+ int64_t input_ndim = input_shape.dim_size();
2906
+ int64_t axis = -1;
2907
+ auto axis_proto = ctx.getAttribute("axis");
2908
+ if (axis_proto) {
2909
+ axis = axis_proto->i();
2910
+ }
2911
+ if (axis < 0) {
2912
+ // Convert negative axis value to equivalent
2913
+ // positive value.
2914
+ axis += input_ndim;
2915
+ }
2916
+ if (axis < 0) {
2917
+ fail_shape_inference(
2918
+ "Unexpected axis value (",
2919
+ axis,
2920
+ ") rank of first input is ",
2921
+ input_ndim,
2922
+ " in ",
2923
+ ctx.getDisplayName(),
2924
+ ".");
2925
+ }
2926
+ })
2927
+ .SetContextDependentFunctionBodyBuilder([](const FunctionBodyBuildContext& ctx,
2928
+ const OpSchema& schema,
2929
+ FunctionProto& functionProto) {
2930
+ // RMSNormalization <axis, epsilon, stash_type> (X, Scale) => (Y)
2931
+ auto* tp = ctx.getInputType(0);
2932
+ if ((tp == nullptr) || (!tp->has_tensor_type()))
2933
+ return false;
2934
+ int64_t T = tp->tensor_type().elem_type();
2935
+
2936
+ auto type_attr = ctx.getAttribute("stash_type");
2937
+ int64_t U = (type_attr != nullptr) ? type_attr->i()
2938
+ : static_cast<int64_t>(ONNX_NAMESPACE::TensorProto_DataType_FLOAT);
2939
+ if ((U != ONNX_NAMESPACE::TensorProto_DataType_FLOAT) &&
2940
+ (U != ONNX_NAMESPACE::TensorProto_DataType_BFLOAT16) &&
2941
+ (U != ONNX_NAMESPACE::TensorProto_DataType_FLOAT16) && (U != ONNX_NAMESPACE::TensorProto_DataType_DOUBLE))
2942
+ return false; // Error
2943
+
2944
+ auto* axis_attr = ctx.getAttribute("axis");
2945
+ int64_t axis = (axis_attr != nullptr) ? axis_attr->i() : -1;
2946
+ auto* epsilon_attr = ctx.getAttribute("epsilon");
2947
+ float epsilon = (epsilon_attr != nullptr) ? epsilon_attr->f() : 1e-5f;
2948
+
2949
+ auto mktensor = [](int64_t val) -> ONNX_NAMESPACE::TensorProto {
2950
+ auto tp = ONNX_NAMESPACE::ToTensor(std::vector<int64_t>{val});
2951
+ tp.add_dims(1);
2952
+ return tp;
2953
+ };
2954
+
2955
+ FunctionBuilder builder(functionProto);
2956
+ builder.Const("FloatEpsilon", ToTensor<float>(epsilon))
2957
+ .Add("Epsilon = Cast (FloatEpsilon)", "to", U)
2958
+ .Add("XShape = Shape (X)") // shape of input tensor: 1D tensor
2959
+ .Add("Rank = Size (XShape)") // rank of input tensor: scalar
2960
+ .Add("Axis1D = Constant()", "value", mktensor(axis)) // [axis] : 1D tensor
2961
+ .Add(
2962
+ axis >= 0 // number of axes that are reduced =
2963
+ ? "PosAxis1D = Identity (Axis1D)" // [axis]: 1D tensor
2964
+ : "PosAxis1D = Add (Rank, Axis1D)") // [rank + axis] : 1D tensor
2965
+ .Const1D("One1D", (int64_t)1)
2966
+ .Add("ReduceAxes = Range(PosAxis1D, Rank, One1D)")
2967
+ .Add("XU = Cast (X)", "to", U);
2968
+ builder.Add("XSquared = Mul (XU, XU)")
2969
+ .Add("XSquaredMean = ReduceMean (XSquared, ReduceAxes)")
2970
+ .Add("MeanSquareEpsilon = Add (XSquaredMean, Epsilon)")
2971
+ .Add("RMS = Sqrt (MeanSquareEpsilon)")
2972
+ .Add("Normalized = Div (XU, RMS)")
2973
+ .Add("NormalizedT = Cast (Normalized)", "to", T);
2974
+ builder.Add("Y = Mul (NormalizedT, scale)");
2975
+
2976
+ schema.BuildFunction(functionProto);
2977
+ return true;
2978
+ }));
2979
+
2980
+ static const char* RotaryEmbedding_ver23_doc = R"DOC(
2981
+ RotaryEmbedding is the implementation of rotary positional embeddings (RoPE) based on the paper https://arxiv.org/pdf/2104.09864.
2982
+ The key advantage of RoPE is that it allows the model to understand both the absolute position of a token and the relative distances
2983
+ between tokens. This is achieved through a rotational mechanism where the extent of rotation is computed based on the token's absolute position (position_ids).
2984
+
2985
+ The rotational mechanism is defined by sine and cosine functions that are used to represent the rotation angles.
2986
+ For each token in the sequence, its positional embedding is computed by rotating its embedding vector. This is done by splitting the
2987
+ embedding vector either into two halves or interleaving every alternate token and applying the rotation matrix to each half of the embedding vector.
2988
+ The rotation matrix is parameterized by the token's position in the sequence. The rotated halves of the embedding vector are concatenated
2989
+ to form the final positional embedding for each token. The rotated positional embeddings are used in the self-attention mechanism.
2990
+ The rotation ensures that the model captures both absolute and relative positional information.
2991
+
2992
+ Rotary embeddings are defined using the following algorithm:
2993
+
2994
+ ```python
2995
+ def compute_rotary_embedding(
2996
+ input,
2997
+ position_ids,
2998
+ sin_cache,
2999
+ cos_cache,
3000
+ interleaved=0,
3001
+ rotary_embedding_dim=0,
3002
+ num_heads=0,
3003
+ ):
3004
+ # First ensure input to be processed has shape [batch_size, seq_len, num_heads, head_size]
3005
+ if len(input.shape) == 4:
3006
+ input = np.transpose(input, (0, 2, 1, 3))
3007
+ batch_size = input.shape[0]
3008
+ sequence_length = input.shape[1]
3009
+ if len(input.shape) == 3:
3010
+ hidden_size = input.shape[2]
3011
+ assert num_heads != 0
3012
+ head_size = int(hidden_size / num_heads)
3013
+ new_shape = [batch_size, sequence_length, num_heads, head_size]
3014
+ input = np.reshape(input, new_shape)
3015
+ assert len(input.shape) == 4
3016
+ head_size = input.shape[3]
3017
+
3018
+ # Fully or partially perform rotation on input based on rotary_embedding_dim attribute
3019
+ if rotary_embedding_dim == 0:
3020
+ # If rotary_embedding_dim not provided, perform full rotation by using head_size
3021
+ rotary_embedding_dim = head_size
3022
+ x_rotate = input[:, :, :, :rotary_embedding_dim]
3023
+ x_not_rotate = input[:, :, :, rotary_embedding_dim:]
3024
+ rotary_embedding_dim_half = int(rotary_embedding_dim / 2)
3025
+
3026
+ # Retrieve sin and cos caches using position ids
3027
+ if position_ids is not None:
3028
+ cos = cos_cache[position_ids] # Shape: [batch_size, sequence_length, head_size/2]
3029
+ sin = sin_cache[position_ids] # Shape: [batch_size, sequence_length, head_size/2]
3030
+ else:
3031
+ cos = cos_cache
3032
+ sin = sin_cache
3033
+ cos = cos[:, :, :rotary_embedding_dim_half] # Shape: [batch_size, sequence_length, rotary_embedding_dim/2]
3034
+ sin = sin[:, :, :rotary_embedding_dim_half] # Shape: [batch_size, sequence_length, rotary_embedding_dim/2]
3035
+ cos = np.expand_dims(cos, axis=2) # Shape: [batch_size, sequence_length, 1, rotary_embedding_dim/2]
3036
+ sin = np.expand_dims(sin, axis=2) # Shape: [batch_size, sequence_length, 1, rotary_embedding_dim/2]
3037
+
3038
+ # Either divide the input in halves or interleave (based on interleaved attribute)
3039
+ if interleaved:
3040
+ x1 = x_rotate[:, :, :, 0::2]
3041
+ x2 = x_rotate[:, :, :, 1::2]
3042
+ else:
3043
+ x1, x2 = np.split(x_rotate, 2, axis=-1)
3044
+
3045
+ # Calculate real and imaginary values
3046
+ real = cos * x1 - sin * x2
3047
+ imag = sin * x1 + cos * x2
3048
+
3049
+ # Inserted rotated embeddings back to the original input
3050
+ if interleaved:
3051
+ # x_rotate[:, :, :, 0::2] = real
3052
+ # x_rotate[:, :, :, 1::2] = imag
3053
+ real = np.expand_dims(real, axis=-1)
3054
+ imag = np.expand_dims(imag, axis=-1)
3055
+ x_rotate_concat = np.concatenate((real, imag), axis=-1)
3056
+ x_rotate = np.reshape(x_rotate_concat, x_rotate.shape)
3057
+ else:
3058
+ x_rotate = np.concatenate((real, imag), axis=-1)
3059
+ output = np.concatenate((x_rotate, x_not_rotate), axis=-1)
3060
+ if len(original_input_shape) == 3:
3061
+ output = np.reshape(output, input.shape)
3062
+ else:
3063
+ output = np.transpose(output, (0, 2, 1, 3))
3064
+ return output
3065
+ ```
3066
+ )DOC";
3067
+
3068
+ ONNX_OPERATOR_SET_SCHEMA(
3069
+ RotaryEmbedding,
3070
+ 23,
3071
+ OpSchema()
3072
+ .SetDoc(RotaryEmbedding_ver23_doc)
3073
+ .Attr(
3074
+ "interleaved",
3075
+ "Rotate using interleaved pattern. Default value is 0 (False).",
3076
+ AttributeProto::INT,
3077
+ static_cast<int64_t>(0))
3078
+ .Attr(
3079
+ "rotary_embedding_dim",
3080
+ "Rotary embedding dimension used to apply partial rotary embeddings.",
3081
+ AttributeProto::INT,
3082
+ static_cast<int64_t>(0))
3083
+ .Attr(
3084
+ "num_heads",
3085
+ "Number of attention heads. Must be provided when input is a 3D tensor. ",
3086
+ AttributeProto::INT,
3087
+ OPTIONAL_VALUE)
3088
+ .Input(
3089
+ 0,
3090
+ "X",
3091
+ "The input tensor representing the token embeddings. "
3092
+ "4D tensor with shape `(batch_size, num_heads, sequence_length, head_size)` or 3D tensor with shape `(batch_size, sequence_length, hidden_size)`. "
3093
+ "For cases with a 4D input tensor, `head_size` has to be even. For cases with a 3D input tensor, `num_heads` attribute must be provided and "
3094
+ "`hidden_size` must be an even multiple of `num_heads` where `hidden_size = num_heads * head_size`",
3095
+ "T")
3096
+ .Input(
3097
+ 1,
3098
+ "cos_cache",
3099
+ "The cosine values for the rotation. "
3100
+ "2D tensor with shape `(max_position_id_plus_1, head_size / 2)` for full rotation or `(max_position_id_plus_1, rotary_embedding_dim / 2)` "
3101
+ "for partial rotation when `position_ids` are provided. 3D tensor with shape `(batch_size, sequence_length, head_size / 2)` "
3102
+ "for full rotation or `(batch_size, sequence_length, rotary_embedding_dim / 2)` for partial rotation when `position_ids` are not provided. "
3103
+ "`max_position_id_plus_1` is a parameter to the model.",
3104
+ "T")
3105
+ .Input(
3106
+ 2,
3107
+ "sin_cache",
3108
+ "The sine values for the rotation. "
3109
+ "2D tensor with shape `(max_position_id_plus_1, head_size / 2)` for full rotation or `(max_position_id_plus_1, rotary_embedding_dim / 2)` "
3110
+ "for partial rotation when `position_ids` are provided. 3D tensor with shape `(batch_size, sequence_length, head_size / 2)` "
3111
+ "for full rotation or `(batch_size, sequence_length, rotary_embedding_dim / 2)` for partial rotation when `position_ids` are not provided. "
3112
+ "`max_position_id_plus_1` is a parameter to the model.",
3113
+ "T")
3114
+ .Input(
3115
+ 3,
3116
+ "position_ids",
3117
+ "The position indices for the tokens. 2D tensor with shape `(batch_size, sequence_length)`",
3118
+ "M",
3119
+ OpSchema::Optional)
3120
+ .Output(0, "Y", "Tensor with same shape as input.", "T")
3121
+ .TypeConstraint(
3122
+ "T",
3123
+ {"tensor(float)", "tensor(float16)", "tensor(bfloat16)"},
3124
+ "Constrain input and output types to float tensors.")
3125
+ .TypeConstraint("M", {"tensor(int64)"}, "Constrain input and output types to integer tensors.")
3126
+ .TypeAndShapeInferenceFunction([](ONNX_NAMESPACE::InferenceContext& ctx) {
3127
+ propagateElemTypeFromInputToOutput(ctx, 0, 0);
3128
+ propagateShapeFromInputToOutput(ctx, 0, 0);
3129
+
3130
+ // we need at least one input to have a shape for this inference.
3131
+ if (!hasNInputShapes(ctx, 1)) {
3132
+ return;
3133
+ }
3134
+
3135
+ auto input_shape = ctx.getInputType(0)->tensor_type().shape();
3136
+ if ((input_shape.dim_size() < 3) || (input_shape.dim_size() > 4)) {
3137
+ fail_shape_inference("Input tensor must have at least 3 and at most 4 dimensions");
3138
+ }
3139
+
3140
+ auto* num_heads_attr = ctx.getAttribute("num_heads");
3141
+ if ((input_shape.dim_size() == 3) && (num_heads_attr == nullptr)) {
3142
+ fail_shape_inference("Input shape is 3D, num_heads attribute must be provided");
3143
+ }
3144
+ })
3145
+ .SetContextDependentFunctionBodyBuilder([](const FunctionBodyBuildContext& ctx,
3146
+ const OpSchema& schema,
3147
+ FunctionProto& functionProto) {
3148
+ // RotaryEmbedding <scale, interleaved, rotary_embedding_dim, num_heads> (X, position_ids, cos_cache,
3149
+ // sin_cache) => Y
3150
+
3151
+ int64_t int_type = ONNX_NAMESPACE::TensorProto_DataType_INT64;
3152
+ auto* interleaved_attr = ctx.getAttribute("interleaved");
3153
+ int64_t interleaved = (interleaved_attr != nullptr) ? interleaved_attr->i() : 0;
3154
+ auto* rotary_embedding_dim_attr = ctx.getAttribute("rotary_embedding_dim");
3155
+ int64_t rotary_embedding_dim = (rotary_embedding_dim_attr != nullptr) ? rotary_embedding_dim_attr->i() : 0;
3156
+ auto* num_heads_attr = ctx.getAttribute("num_heads");
3157
+ int64_t num_heads = (num_heads_attr != nullptr) ? num_heads_attr->i() : 0;
3158
+
3159
+ // Ensure that num_heads does not control reshaping of input tensor
3160
+ // when input tensor is 4D
3161
+ int64_t is_input_4d = 1;
3162
+ auto* x_tp = ctx.getInputType(0);
3163
+ if ((x_tp == nullptr) || (!x_tp->has_tensor_type()))
3164
+ return false;
3165
+ if (!(x_tp->tensor_type().has_shape())) {
3166
+ return false;
3167
+ }
3168
+ if (x_tp->tensor_type().shape().dim_size() == 4) {
3169
+ is_input_4d = 1;
3170
+ } else if (x_tp->tensor_type().shape().dim_size() == 3) {
3171
+ is_input_4d = 0;
3172
+ } else {
3173
+ return false;
3174
+ }
3175
+
3176
+ FunctionBuilder builder(functionProto);
3177
+ // Set input tensor to the correct shape if input shape is 3D
3178
+ // NewShape = [batch_size, sequence_length, num_heads, head_size]
3179
+
3180
+ // Reshape tensor to 4D if input is 3D
3181
+ builder.Const1D("Zero1D", (int64_t)0)
3182
+ .Const1D("NumHeads", num_heads) // num_heads
3183
+ .Const1D("NegOne", (int64_t)(-1)); // head_size, inferred from other dimensions
3184
+
3185
+ if (is_input_4d == 0) {
3186
+ builder.Add("NewShape = Concat <axis = 0> (Zero1D, Zero1D, NumHeads, NegOne)")
3187
+ .Add("XIn = Reshape (X, NewShape)"); // new shape of input tensor: 4D tensor
3188
+ } else {
3189
+ builder.Add("XIn = Transpose <perm = [0, 2, 1, 3]> (X)");
3190
+ }
3191
+
3192
+ // Rotary embedding dimension is the value along which the input is to be split
3193
+ // There are two cases for the rotary embedding dimension:
3194
+ // 1. Complete rotation: rotary embedding dimension defaults to head_size, rotary_embedding_dim = cos.shape[3]
3195
+ // * 2 or head_size
3196
+ // 2. Partial rotation: rotary embedding dimension is provided, rotary_embedding_dim = rotary_embedding_dim
3197
+
3198
+ builder.Add("HeadSize = Shape <start = 3, end = 4> (XIn)");
3199
+ if (rotary_embedding_dim > 0) {
3200
+ builder.Const1D("RotaryEmbedDim", rotary_embedding_dim);
3201
+ } else {
3202
+ builder.Add("RotaryEmbedDim = Identity(HeadSize)");
3203
+ }
3204
+ builder.Const1D("Two1D", (int64_t)2)
3205
+ .Add("NoRotateLength = Sub(HeadSize, RotaryEmbedDim)")
3206
+ .Add("RotateSplitLengths = Concat <axis = 0> (RotaryEmbedDim, NoRotateLength)");
3207
+ // shape of input to rotate = input[:,:,:,:rotary_embedding_dim]
3208
+ // shape of input not to rotate = input[:,:,:,rotary_embedding_dim:]
3209
+ builder.Add("XToRotate, XNoRotate = Split <axis = -1> (XIn, RotateSplitLengths)");
3210
+
3211
+ // Gather the cos and sine matrices from the respective caches using position ids if provided.
3212
+ // Otherwise Gather op functions as an Identity op.
3213
+ // Unsqueeze applied to make cos and sin matrices have dimensions that are
3214
+ // valid for multiplication with input when is split. For cases where rotary_embedding_dim is provided,
3215
+ // slice the matrix values until that index only
3216
+ if (ctx.hasInput(3)) {
3217
+ builder
3218
+ .Add("CosCacheGather = Gather(cos_cache, position_ids)") // shape of cos matrix: [batch_size,
3219
+ // sequence_length, head_size / 2]
3220
+ .Add("SinCacheGather = Gather(sin_cache, position_ids)"); // shape of cos matrix: [batch_size,
3221
+ // sequence_length, head_size / 2]
3222
+ } else {
3223
+ builder
3224
+ .Add("CosCacheGather = Identity(cos_cache)") // shape of cos matrix: [batch_size, sequence_length,
3225
+ // head_size / 2]
3226
+ .Add("SinCacheGather = Identity(sin_cache)"); // shape of cos matrix: [batch_size, sequence_length,
3227
+ // head_size / 2]
3228
+ }
3229
+
3230
+ builder.Add("RotaryEmbedDimHalf = Div(RotaryEmbedDim, Two1D)")
3231
+ .Add("RotaryEmbedDimHalfInt = Cast (RotaryEmbedDimHalf)", "to", int_type)
3232
+ .Add(
3233
+ "CosCacheSliced = Slice(CosCacheGather, Zero1D, RotaryEmbedDimHalfInt, Two1D)") // shape of cos
3234
+ // matrix:
3235
+ // [batch_size,
3236
+ // sequence_length,
3237
+ // rotary_embedding_dim
3238
+ // / 2]
3239
+ .Add(
3240
+ "SinCacheSliced = Slice(SinCacheGather, Zero1D, RotaryEmbedDimHalfInt, Two1D)") // shape of sin
3241
+ // matrix:
3242
+ // [batch_size,
3243
+ // sequence_length,
3244
+ // rotary_embedding_dim
3245
+ // / 2]
3246
+ .Add("CosCacheUnsqueezed = Unsqueeze(CosCacheSliced, Two1D)") // shape of cos matrix: [batch_size,
3247
+ // sequence_length, 1, rotary_embedding_dim
3248
+ // / 2]
3249
+ .Add("SinCacheUnsqueezed = Unsqueeze(SinCacheSliced, Two1D)"); // shape of sin matrix: [batch_size,
3250
+ // sequence_length, 1, rotary_embedding_dim
3251
+ // / 2]
3252
+
3253
+ // Create slices of inputs to multiply with sin and cos matrices based on interleaved parameter
3254
+ // Choose the correct slices based on interleaved parameter
3255
+ // real = cos_x * x1 - sin_x * x2
3256
+ // imag = sin_x * x1 + cos_x * x2
3257
+ if (interleaved == 0) {
3258
+ // For non-interleaved (basic) rotation, slices are created as follows,
3259
+ builder.Add(
3260
+ "X1, X2 = Split <axis = -1, num_outputs = 2> (XToRotate)"); // shape of X1 =
3261
+ // input[:,:,:,:rotary_embedding_dim/2],
3262
+ // X2 =
3263
+ // input[:,:,:,rotary_embedding_dim/2:rotary_embedding_dim]
3264
+ } else {
3265
+ // For interleaved rotation, slices are created as follows,
3266
+ builder.Const1D("One1D", (int64_t)1)
3267
+ .Const1D("AxesRotaryDim", (int64_t)3)
3268
+ .Add("RotaryEmbedDimInclusive = Add(RotaryEmbedDim, One1D)")
3269
+ .Add(
3270
+ "X1 = Slice(XToRotate, Zero1D, RotaryEmbedDim, AxesRotaryDim, Two1D)") // shape of X1 =
3271
+ // input[:,:,:,0:rotary_embedding_dim:2]
3272
+ .Add(
3273
+ "X2 = Slice(XToRotate, One1D, RotaryEmbedDimInclusive, AxesRotaryDim, Two1D)"); // shape of
3274
+ // X2 =
3275
+ // input[:,:,:,1:rotary_embedding_dim:2]
3276
+ }
3277
+
3278
+ builder.Add("CosX1 = Mul(CosCacheUnsqueezed, X1)")
3279
+ .Add("SinX2 = Mul(SinCacheUnsqueezed, X2)")
3280
+ .Add("Real = Sub(CosX1, SinX2)")
3281
+ .Add("SinX1 = Mul(SinCacheUnsqueezed, X1)")
3282
+ .Add("CosX2 = Mul(CosCacheUnsqueezed, X2)")
3283
+ .Add("Imaginary = Add(SinX1, CosX2)");
3284
+
3285
+ // Insert the real and imaginary values into the original input to be rotated based on interleaved parameter
3286
+ if (interleaved == 0) {
3287
+ builder.Add("XRotated = Concat <axis = -1> (Real, Imaginary)");
3288
+ } else {
3289
+ builder
3290
+ .Add("RealInterleave = Unsqueeze(Real, NegOne)") // shape of indices =
3291
+ // input[:,:,:,0:rotary_embedding_dim:2, 1]
3292
+ .Add("ImaginaryInterleave = Unsqueeze(Imaginary, NegOne)") // shape of indices =
3293
+ // input[:,:,:,1:rotary_embedding_dim+1:2, 1]
3294
+ .Add("XRotatedInterleavedConcat = Concat <axis = -1> (RealInterleave, ImaginaryInterleave)")
3295
+ .Add("XRotatedShape = Shape(XToRotate)")
3296
+ .Add("XRotated = Reshape(XRotatedInterleavedConcat, XRotatedShape)");
3297
+ }
3298
+
3299
+ // Combine rotated parts with non-rotated parts
3300
+ builder.Add("XConcat = Concat <axis = -1> (XRotated, XNoRotate)");
3301
+
3302
+ if (is_input_4d == 0) {
3303
+ builder.Add("YTransposed = Identity(XConcat)");
3304
+ } else {
3305
+ builder.Add("YTransposed = Transpose <perm = [0, 2, 1, 3]> (XConcat)");
3306
+ }
3307
+ // Reshape back to 3D shape if input is a 3D tensor
3308
+ builder.Add("XShape = Shape(X)").Add("Y = Reshape(YTransposed, XShape)");
3309
+
3310
+ schema.BuildFunction(functionProto);
3311
+ return true;
3312
+ }));
3313
+
3314
+ static const char* Attention_ver23_doc = R"DOC(
3315
+
3316
+ Computes scaled dot product attention on query, key and value tensors, using an optional attention mask if passed.
3317
+
3318
+ This operator covers self and cross variants of the attention operation based on sequence lengths of K, Q and V.
3319
+
3320
+ For self attention, `kv_sequence_length` equals to `q_sequence_length`.
3321
+
3322
+ For cross attention, query and key might have different lengths.
3323
+
3324
+ This operator also covers the 3 following variants based on the number of heads:
3325
+ 1) Multi-headed Attention (MHA): Described in the paper https://arxiv.org/pdf/1706.03762, `q_num_heads = kv_num_heads`.
3326
+ 2) Group-query Attention (GQA): Described in the paper https://arxiv.org/pdf/2305.13245, `q_num_heads > kv_num_heads`, `q_num_heads % kv_num_heads == 0`.
3327
+ 3) Multi-query Attention (MQA): Described in the paper https://arxiv.org/pdf/1911.02150, `q_num_heads > kv_num_heads`, `kv_num_heads=1`.
3328
+
3329
+ Attention bias to be added is calculated based on `attn_mask` input and `is_causal attribute`, only one of which can be provided.
3330
+ 1) If `is_causal` is set to `1`, the attention masking is a lower triangular matrix when the mask is a square matrix. The attention masking has the form of the upper left causal bias due to the alignment.
3331
+ 2) `attn_mask`: A boolean mask where a value of `True` indicates that the element should take part in attention or a float mask of the same type as query, key, value that is added to the attention score.
3332
+
3333
+ Both past and present state key/values are optional. They shall be used together, and not allowed to use only one of them.
3334
+ The following pattern is applied to the Q, K and V inputs after appropriate reshaping of K and V inputs based on sequence lengths and num heads provided:
3335
+
3336
+ ```
3337
+ The following pattern is applied by this operator:
3338
+ Q K V
3339
+ | | |
3340
+ Q*scale K*scale |
3341
+ | | |
3342
+ | Transpose |
3343
+ | | |
3344
+ ---MatMul--- |
3345
+ | |
3346
+ at_mask---Add |
3347
+ | |
3348
+ softcap (if provided) |
3349
+ | |
3350
+ Softmax |
3351
+ | |
3352
+ -----MatMul------
3353
+ |
3354
+ Y
3355
+ ```
3356
+
3357
+ )DOC";
3358
+
3359
+ ONNX_OPERATOR_SET_SCHEMA(
3360
+ Attention,
3361
+ 23,
3362
+ OpSchema()
3363
+ .SetDoc(Attention_ver23_doc)
3364
+ .Attr(
3365
+ "is_causal",
3366
+ "If set to `1`, the attention masking is a lower triangular matrix when the mask is a square matrix. "
3367
+ "The attention masking has the form of the upper left causal bias due to the alignment.",
3368
+ AttributeProto::INT,
3369
+ static_cast<int64_t>(0))
3370
+ .Attr(
3371
+ "scale",
3372
+ "Scaling factor applied. Scale q, k before matmul for stability see https://tinyurl.com/sudb9s96 for math. "
3373
+ "Default value is `1/sqrt(head_size)`",
3374
+ AttributeProto::FLOAT,
3375
+ OPTIONAL_VALUE)
3376
+ .Attr(
3377
+ "q_num_heads",
3378
+ "Number of heads of query. Must be used with 3D inputs of Q, K and V. ",
3379
+ AttributeProto::INT,
3380
+ OPTIONAL_VALUE)
3381
+ .Attr(
3382
+ "kv_num_heads",
3383
+ "Number of heads of key and value. Must be used with 3D inputs of Q, K and V. ",
3384
+ AttributeProto::INT,
3385
+ OPTIONAL_VALUE)
3386
+ .Attr(
3387
+ "softmax_precision",
3388
+ "The floating-point precision used in softmax computation. "
3389
+ "If softmax precision is not provided, the same precision as the input of softmax (Q and K) is used.",
3390
+ AttributeProto::INT,
3391
+ OPTIONAL_VALUE)
3392
+ .Attr(
3393
+ "softcap",
3394
+ "Softcap value for attention weights. Default value is 0.",
3395
+ AttributeProto::FLOAT,
3396
+ static_cast<float>(0))
3397
+ .Attr(
3398
+ "qk_matmul_output_mode",
3399
+ "If set to `0`, qk_matmul_output is the output of qk matmul. "
3400
+ "If set to `1`, qk_matmul_output includes the addition of the attention mask to the output of qk matmul. "
3401
+ "If set to `2`, qk_matmul_output is the output after the softcap operation. "
3402
+ "If set to `3`, qk_matmul_output is the output after the softmax operation. "
3403
+ "Default value is 0.",
3404
+ AttributeProto::INT,
3405
+ static_cast<int64_t>(0))
3406
+ .Input(
3407
+ 0,
3408
+ "Q",
3409
+ "Query tensor. "
3410
+ "4D tensor with shape `(batch_size, q_num_heads, q_sequence_length, head_size)` or 3D tensor with shape `(batch_size, q_sequence_length, q_hidden_size)`. "
3411
+ "For cases with a 3D input tensor, `q_hidden_size = q_num_heads * head_size`",
3412
+ "T1")
3413
+ .Input(
3414
+ 1,
3415
+ "K",
3416
+ "Key tensor. "
3417
+ "4D tensor with shape `(batch_size, kv_num_heads, kv_sequence_length, head_size)` or 3D tensor with shape `(batch_size, kv_sequence_length, k_hidden_size)`. "
3418
+ "For cases with a 3D input tensor, `k_hidden_size = kv_num_heads * head_size`",
3419
+ "T1")
3420
+ .Input(
3421
+ 2,
3422
+ "V",
3423
+ "Value tensor. "
3424
+ "4D tensor with shape `(batch_size, kv_num_heads, kv_sequence_length, v_head_size)` or 3D tensor with shape `(batch_size, kv_sequence_length, v_hidden_size)`. "
3425
+ "For cases with a 3D input tensor, `v_hidden_size = kv_num_heads * v_head_size`",
3426
+ "T2")
3427
+ .Input(
3428
+ 3,
3429
+ "attn_mask",
3430
+ "Attention mask. "
3431
+ "Shape must be broadcastable to "
3432
+ "4D tensor with shape `(batch_size, q_num_heads, q_sequence_length, total_sequence_length)` "
3433
+ "where `total_sequence_length = past_sequence_length + kv_sequence_length.` "
3434
+ "Two types of masks are supported. A boolean mask where a value of `True` indicates that the element should take part in attention. "
3435
+ "Also supports a float mask of the same type as query, key, value that is added to the attention score.",
3436
+ "U",
3437
+ OpSchema::Optional)
3438
+ .Input(
3439
+ 4,
3440
+ "past_key",
3441
+ "past state cache for key with shape `(batch_size, kv_num_heads, past_sequence_length, head_size)`",
3442
+ "T1",
3443
+ OpSchema::Optional)
3444
+ .Input(
3445
+ 5,
3446
+ "past_value",
3447
+ "past state cache for value with shape `(batch_size, kv_num_heads, past_sequence_length, v_head_size)`",
3448
+ "T2",
3449
+ OpSchema::Optional)
3450
+ .Output(
3451
+ 0,
3452
+ "Y",
3453
+ "The output tensor . "
3454
+ "4D tensor with shape `(batch_size, q_num_heads, q_sequence_length, v_head_size)` or 3D tensor with shape `(batch_size, q_sequence_length, hidden_size)`. "
3455
+ "For cases with a 3D input tensor, `hidden_size = q_num_heads * v_head_size`",
3456
+ "T1")
3457
+ .Output(
3458
+ 1,
3459
+ "present_key",
3460
+ "Updated key cache with shape `(batch_size, kv_num_heads, total_sequence_length, head_size)` "
3461
+ "where `total_sequence_length = past_sequence_length + kv_sequence_length`.",
3462
+ "T1",
3463
+ OpSchema::Optional)
3464
+ .Output(
3465
+ 2,
3466
+ "present_value",
3467
+ "Updated value cache with shape `(batch_size, kv_num_heads, total_sequence_length, v_head_size)` "
3468
+ "where `total_sequence_length = past_sequence_length + kv_sequence_length`.",
3469
+ "T2",
3470
+ OpSchema::Optional)
3471
+ .Output(
3472
+ 3,
3473
+ "qk_matmul_output",
3474
+ "The output of QK matmul. "
3475
+ "4D tensor with shape `(batch_size, q_num_heads, q_sequence_length, total_sequence_length)` "
3476
+ "where `total_sequence_length = past_sequence_length + kv_sequence_length`.",
3477
+ "T1",
3478
+ OpSchema::Optional)
3479
+ .TypeConstraint("T1", OpSchema::all_float_types_ir4(), "Constrain Q and K inputs types to float tensors.")
3480
+ .TypeConstraint("T2", OpSchema::all_float_types_ir4(), "Constrain V input types to float tensors.")
3481
+ .TypeConstraint(
3482
+ "U",
3483
+ OpSchema::all_non_complex_numeric_types_plus_bool_ir4(),
3484
+ "Constrain output 'mask' types to boolean tensors and input types.")
3485
+ .TypeAndShapeInferenceFunction([](InferenceContext& ctx) {
3486
+ propagateElemTypeFromInputToOutput(ctx, 0, 0);
3487
+
3488
+ int64_t kv_sequence_length = -1;
3489
+ ONNX_NAMESPACE::TensorShapeProto output_shape;
3490
+ ONNX_NAMESPACE::TensorShapeProto qk_matmul_shape;
3491
+ if (hasInputShape(ctx, 0)) {
3492
+ auto& query_shape = getInputShape(ctx, 0);
3493
+ auto& query_dims = query_shape.dim();
3494
+ if ((query_dims.size() != 3) && (query_dims.size() != 4)) {
3495
+ fail_shape_inference("Inputs 0 (query) shall be 3 or 4 dimensions");
3496
+ }
3497
+
3498
+ if (query_dims.size() == 3) {
3499
+ auto* q_num_heads_attr = ctx.getAttribute("q_num_heads");
3500
+ if (q_num_heads_attr == nullptr) {
3501
+ fail_type_inference("3D inputs expected to have q_num_heads attribute.");
3502
+ }
3503
+ auto* kv_num_heads_attr = ctx.getAttribute("kv_num_heads");
3504
+ if (kv_num_heads_attr == nullptr) {
3505
+ fail_type_inference("3D inputs expected to have q_num_heads attribute.");
3506
+ }
3507
+ }
3508
+
3509
+ *output_shape.add_dim() = query_dims[0]; // batch_size
3510
+ *output_shape.add_dim() = query_dims[1]; // num_heads for 4D, sequence_length for 3D
3511
+
3512
+ *qk_matmul_shape.add_dim() = query_dims[0]; // batch_size
3513
+
3514
+ if (hasInputShape(ctx, 1)) {
3515
+ auto& key_shape = getInputShape(ctx, 1);
3516
+ auto& key_dims = key_shape.dim();
3517
+ if ((key_dims.size() != 3) && (key_dims.size() != 4)) {
3518
+ fail_shape_inference("Inputs 1 (key) shall be 3 or 4 dimensions");
3519
+ }
3520
+ }
3521
+
3522
+ if (hasInputShape(ctx, 2)) {
3523
+ auto& value_shape = getInputShape(ctx, 2);
3524
+ auto& value_dims = value_shape.dim();
3525
+ if ((value_dims.size() != 3) && (value_dims.size() != 4)) {
3526
+ fail_shape_inference("Inputs 2 (value) shall be 3 or 4 dimensions");
3527
+ }
3528
+
3529
+ // Update Output Shape for 4D inputs
3530
+ // Input 0 (query) has shape (batch_size, q_num_heads, q_sequence_length, head_size)
3531
+ // Input 1 (key) has shape (batch_size, kv_num_heads, kv_sequence_length, head_size)
3532
+ // Input 2 (value) has shape (batch_size, kv_num_heads, kv_sequence_length, v_head_size)
3533
+ // Output 0 has shape (batch_size, q_num_heads, q_sequence_length, v_head_size)
3534
+ if (value_dims.size() == 4 && query_dims.size() == 4) {
3535
+ kv_sequence_length = value_dims[2].dim_value();
3536
+ *output_shape.add_dim() = query_dims[2]; // sequence_length
3537
+ *output_shape.add_dim() = value_dims[3]; // head_size
3538
+ updateOutputShape(ctx, 0, output_shape);
3539
+ // Update qk_matmul_shape
3540
+ *qk_matmul_shape.add_dim() = query_dims[1]; // q_num_heads
3541
+ *qk_matmul_shape.add_dim() = query_dims[2]; // q_sequence_length
3542
+ qk_matmul_shape.add_dim()->set_dim_value(kv_sequence_length);
3543
+ }
3544
+
3545
+ // Update Output Shape for 3D inputs
3546
+ // Input 0 (query) has shape (batch_size, q_sequence_length, q_hidden_size),
3547
+ // q_hidden_size = q_num_heads * head_size
3548
+ // Input 1 (key) has shape (batch_size, kv_sequence_length, k_hidden_size),
3549
+ // k_hidden_size = kv_num_heads * head_size
3550
+ // Input 2 (value) has shape (batch_size, kv_sequence_length, v_hidden_size),
3551
+ // v_hidden_size = kv_num_heads * v_head_size
3552
+ // Output 0 has shape (batch_size, q_sequence_length, hidden_size),
3553
+ // hidden_size = q_num_heads * v_head_size
3554
+ if (value_dims.size() == 3 && query_dims.size() == 3) {
3555
+ kv_sequence_length = value_dims[1].dim_value();
3556
+ auto* q_num_heads_attr = ctx.getAttribute("q_num_heads");
3557
+ if (q_num_heads_attr == nullptr) {
3558
+ fail_type_inference("3D inputs expected to have q_num_heads attribute.");
3559
+ }
3560
+ auto* kv_num_heads_attr = ctx.getAttribute("kv_num_heads");
3561
+ if (kv_num_heads_attr == nullptr) {
3562
+ fail_type_inference("3D inputs expected to have kv_num_heads attribute.");
3563
+ }
3564
+ int64_t q_num_heads = q_num_heads_attr->i();
3565
+ int64_t kv_num_heads = kv_num_heads_attr->i();
3566
+ // Calculate v_head_size
3567
+ int64_t v_head_size = value_dims[2].dim_value() / kv_num_heads;
3568
+ output_shape.add_dim()->set_dim_value(v_head_size * q_num_heads);
3569
+ updateOutputShape(ctx, 0, output_shape);
3570
+ // Update qk_matmul_shape
3571
+ qk_matmul_shape.add_dim()->set_dim_value(q_num_heads);
3572
+ *qk_matmul_shape.add_dim() = query_dims[1];
3573
+ qk_matmul_shape.add_dim()->set_dim_value(kv_sequence_length);
3574
+ }
3575
+ }
3576
+ }
3577
+
3578
+ if (ctx.hasOutput(3)) { // has qk_matmul_output
3579
+ propagateElemTypeFromInputToOutput(ctx, 0, 3);
3580
+ updateOutputShape(ctx, 3, qk_matmul_shape);
3581
+ }
3582
+
3583
+ if (ctx.hasOutput(1) && ctx.hasOutput(2)) { // has present outputs
3584
+ if (ctx.hasInput(4) && ctx.hasInput(5)) { // has past_key
3585
+ // copy the type from query to present key and value
3586
+ propagateElemTypeFromInputToOutput(ctx, 4, 1);
3587
+ propagateElemTypeFromInputToOutput(ctx, 5, 2);
3588
+
3589
+ if (hasInputShape(ctx, 4) && hasInputShape(ctx, 5)) {
3590
+ auto& past_key_shape = getInputShape(ctx, 4);
3591
+ auto& past_key_dims = past_key_shape.dim();
3592
+ auto& past_value_shape = getInputShape(ctx, 5);
3593
+ auto& past_value_dims = past_value_shape.dim();
3594
+
3595
+ // past key has shape (batch_size, kv_num_heads, past_sequence_length, head_size)
3596
+ if (past_key_dims.size() != 4) {
3597
+ fail_shape_inference("The past_key input shall be 4 dimensions");
3598
+ }
3599
+ // past value has shape (batch_size, kv_num_heads, past_sequence_length, v_head_size)
3600
+ if (past_value_dims.size() != 4) {
3601
+ fail_shape_inference("The past_value input shall be 4 dimensions");
3602
+ }
3603
+
3604
+ if (kv_sequence_length > 0 && past_key_dims[2].has_dim_value()) {
3605
+ int64_t total_sequence_length = kv_sequence_length + past_key_dims[2].dim_value();
3606
+
3607
+ ONNX_NAMESPACE::TensorShapeProto present_key_shape;
3608
+ for (auto& dim : past_key_dims) {
3609
+ *present_key_shape.add_dim() = dim;
3610
+ }
3611
+
3612
+ ONNX_NAMESPACE::TensorShapeProto present_value_shape;
3613
+ for (auto& dim : past_value_dims) {
3614
+ *present_value_shape.add_dim() = dim;
3615
+ }
3616
+
3617
+ if (ctx.hasOutput(3)) { // has qk_matmul_output with bias
3618
+ qk_matmul_shape.mutable_dim(3)->set_dim_value(total_sequence_length);
3619
+ updateOutputShape(ctx, 3, qk_matmul_shape);
3620
+ }
3621
+
3622
+ // shape of present key/value is (batch_size, kv_num_heads, total_sequence_length, head_size)
3623
+ present_key_shape.mutable_dim(2)->set_dim_value(total_sequence_length);
3624
+ present_value_shape.mutable_dim(2)->set_dim_value(total_sequence_length);
3625
+
3626
+ updateOutputShape(ctx, 1, present_key_shape);
3627
+ updateOutputShape(ctx, 2, present_value_shape);
3628
+ }
3629
+ }
3630
+ }
3631
+ }
3632
+ })
3633
+ .SetContextDependentFunctionBodyBuilder([](const FunctionBodyBuildContext& ctx,
3634
+ const OpSchema& schema,
3635
+ FunctionProto& functionProto) {
3636
+ // ScaledDotProductAttention <scale, is_causal, q_num_heads, kv_numheads> (Q, K, V, attn_mask, past_key,
3637
+ // past_value) => (Y, present_key?, present_value?)
3638
+ int64_t int_type = ONNX_NAMESPACE::TensorProto_DataType_INT64;
3639
+ int64_t float_type = ONNX_NAMESPACE::TensorProto_DataType_FLOAT;
3640
+
3641
+ // Get input types
3642
+ auto* t_qk = ctx.getInputType(0);
3643
+ if ((t_qk == nullptr) || (!t_qk->has_tensor_type()))
3644
+ return false;
3645
+ int64_t T1 = t_qk->tensor_type().elem_type();
3646
+
3647
+ // Determine precision types for Softmax
3648
+ auto softmax_precision_attr = ctx.getAttribute("softmax_precision");
3649
+ int64_t softmax_precision = (softmax_precision_attr != nullptr) ? softmax_precision_attr->i() : T1;
3650
+ if ((softmax_precision != ONNX_NAMESPACE::TensorProto_DataType_FLOAT) &&
3651
+ (softmax_precision != ONNX_NAMESPACE::TensorProto_DataType_BFLOAT16) &&
3652
+ (softmax_precision != ONNX_NAMESPACE::TensorProto_DataType_FLOAT16) &&
3653
+ (softmax_precision != ONNX_NAMESPACE::TensorProto_DataType_DOUBLE))
3654
+ return false; // Error
3655
+
3656
+ auto mkbooltensor = [](bool val) -> ONNX_NAMESPACE::TensorProto {
3657
+ auto tp = ONNX_NAMESPACE::ToTensor(std::vector<bool>{val});
3658
+ tp.add_dims(1);
3659
+ return tp;
3660
+ };
3661
+
3662
+ // If shape is 3D, q_num_heads and kv_num_heads is provided,
3663
+ // for 4D cases, set num_heads to zero for reshape purposes
3664
+ auto* q_num_heads_attr = ctx.getAttribute("q_num_heads");
3665
+ int64_t q_num_heads = (q_num_heads_attr != nullptr) ? q_num_heads_attr->i() : 0;
3666
+ auto* kv_num_heads_attr = ctx.getAttribute("kv_num_heads");
3667
+ int64_t kv_num_heads = (kv_num_heads_attr != nullptr) ? kv_num_heads_attr->i() : 0;
3668
+
3669
+ FunctionBuilder builder(functionProto);
3670
+ // Set input tensors (Q, K, V) to the correct shape if input shape is 3D
3671
+ // NewShapeQ (batch_size, q_num_heads, q_sequence_length, head_size)
3672
+ // NewShapeK (batch_size, kv_num_heads, kv_sequence_length, head_size)
3673
+ // NewShapeV (value) has shape (batch_size, kv_num_heads, kv_sequence_length, v_head_size)
3674
+ builder
3675
+ .Add("BatchSize = Shape <start = 0, end = 1> (Q)") // batch size
3676
+ .Const1D("QNumHeadsAttr", q_num_heads) // q_num_heads from attrs
3677
+ .Const1D("KVNumHeadsAttr", kv_num_heads) // kv_num_heads from attrs
3678
+ .Add("QSeqLen = Shape <start = -2, end = -1> (Q)") // q_sequence_length
3679
+ .Add("KVSeqLen = Shape <start = -2, end = -1> (K)") // kv_sequence_length
3680
+ .Const1D("NegOne", static_cast<int64_t>(-1)) // head_size, inferred from other dimensions
3681
+ .Add("QNewShape = Concat <axis = 0> (BatchSize, QNumHeadsAttr, QSeqLen, NegOne)")
3682
+ .Add("KVNewShape = Concat <axis = 0> (BatchSize, KVNumHeadsAttr, KVSeqLen, NegOne)")
3683
+ .Add("QReshaped = Reshape (Q, QNewShape)")
3684
+ .Add("KReshaped = Reshape (K, KVNewShape)")
3685
+ .Add("VReshaped = Reshape (V, KVNewShape)")
3686
+ .Add("QNumHeads = Shape <start = 1, end = 2> (QReshaped)") // q_num_heads
3687
+ .Add("KVNumHeads = Shape <start = 1, end = 2> (KReshaped)"); // kv_num_heads
3688
+
3689
+ // Calculate scaling factor if scale attribute not provided
3690
+ auto scale_attr = ctx.getAttribute("scale");
3691
+ float scale = (scale_attr != nullptr) ? scale_attr->f() : static_cast<float>(1);
3692
+ builder
3693
+ .Add("QKHeadSize = Shape <start = 3, end = 4> (QReshaped)") // head_size for Q and K
3694
+ .Add("QKHeadSizeF = Cast (QKHeadSize)", "to", float_type)
3695
+ .Add("SqrtHeadSize = Sqrt(QKHeadSizeF)")
3696
+ .Const1D("One1D", static_cast<int64_t>(1))
3697
+ .Const1D("One1DF", static_cast<float>(1))
3698
+ .Const1D("Zero1D", static_cast<int64_t>(0))
3699
+ .Add("CalculatedScale = Div(One1DF, SqrtHeadSize)")
3700
+ .Const("ScaleF", ToTensor<float>(scale))
3701
+ .Add(scale_attr != nullptr ? "ScaleFactor = Identity(ScaleF)" : "ScaleFactor = Identity(CalculatedScale)")
3702
+ .Add("ScaleFactorSqrt = Sqrt(ScaleFactor)")
3703
+ .Add("ScaleFactorF = Cast (ScaleFactorSqrt)", "to", T1);
3704
+
3705
+ // Update key and value caches for past and present states
3706
+
3707
+ if (ctx.hasInput(4)) {
3708
+ builder.Add("PresentKey = Concat <axis = 2> (past_key, KReshaped)");
3709
+ } else {
3710
+ builder.Add("PresentKey = Identity (KReshaped)");
3711
+ }
3712
+ if (ctx.hasOutput(1)) {
3713
+ builder.Add("present_key = Identity (PresentKey)");
3714
+ }
3715
+
3716
+ if (ctx.hasInput(5)) {
3717
+ builder.Add("PresentValue = Concat <axis = 2> (past_value, VReshaped)");
3718
+ } else {
3719
+ builder.Add("PresentValue = Identity (VReshaped)");
3720
+ }
3721
+ if (ctx.hasOutput(2)) {
3722
+ builder.Add("present_value = Identity (PresentValue)");
3723
+ }
3724
+
3725
+ // Create a attn_bias filled with zeros of shape (q_sequence_length, kv_sequence_length)
3726
+ builder.Add("NewKVSeqLen = Shape <start = -2, end = -1> (PresentKey)")
3727
+ .Add("AttnBiasShape = Concat <axis = -1> (QSeqLen, NewKVSeqLen)")
3728
+ .Add("AttnBiasZeros = ConstantOfShape(AttnBiasShape)");
3729
+
3730
+ // If attn_mask is provided
3731
+ float neg_inf = -std::numeric_limits<float>::infinity();
3732
+ builder.Const1D("FloatInf", neg_inf);
3733
+ if (ctx.hasInput(3)) {
3734
+ auto* up = ctx.getInputType(3);
3735
+ if ((up == nullptr) || (!up->has_tensor_type()))
3736
+ return false;
3737
+ int64_t U = up->tensor_type().elem_type();
3738
+ builder.Add(
3739
+ U == ONNX_NAMESPACE::TensorProto_DataType_BOOL ? "AttnBias = Where(attn_mask, AttnBiasZeros, FloatInf)"
3740
+ : "AttnBias = Add(attn_mask, AttnBiasZeros)");
3741
+ } else {
3742
+ // If is_causal set to true, the attention masking is a lower triangular matrix when the mask
3743
+ // is a square matrix. The attention masking has the form of the upper left causal bias due to
3744
+ // the alignment when the mask is a non-square matrix.
3745
+ // An error is thrown if both attn_mask and is_causal are set.
3746
+ auto* is_causal_attr = ctx.getAttribute("is_causal");
3747
+ int64_t is_causal = (is_causal_attr != nullptr) ? is_causal_attr->i() : 0;
3748
+ if (is_causal == 1) {
3749
+ builder.Add("TempMask = ConstantOfShape(AttnBiasShape)", "value", mkbooltensor(1))
3750
+ .Add("TempMaskTri = Trilu <upper = 0> (TempMask, Zero1D)")
3751
+ .Add("AttnBias = Where(TempMaskTri, AttnBiasZeros, FloatInf)");
3752
+ } else {
3753
+ builder.Add("AttnBias = Identity(AttnBiasZeros)");
3754
+ }
3755
+ }
3756
+ builder.Add("AttnBiasT = Cast (AttnBias)", "to", T1);
3757
+
3758
+ // Group Query Attention is applied if the following are satisfied
3759
+ // 1) q_num_heads != kv_num_heads
3760
+ // 2) q_num_heads % kv_num_heads == 0
3761
+ // 3) kv_num_heads == k_num_heads == v_num_heads
3762
+ builder.Add("NGQACond1 = Equal(QNumHeads, KVNumHeads)")
3763
+ .Add("GQACond1 = Not(NGQACond1)")
3764
+ .Add("DivNumHeads = Div(QNumHeads, KVNumHeads)")
3765
+ .Add("IDivNumHeads = Cast(DivNumHeads)", "to", int_type)
3766
+ .Add("RemainderNumHeads = Mod(QNumHeads, KVNumHeads)")
3767
+ .Add("GQACond2 = Equal(RemainderNumHeads, Zero1D)")
3768
+ .Add("GQACond = And(GQACond1, GQACond2)")
3769
+ .Add("InterleaveDim = Where(GQACond, IDivNumHeads, One1D)")
3770
+ .Add("InterleaveShape = Concat <axis = 0> (One1D, InterleaveDim, One1D, One1D)")
3771
+ .Add("KAttentionInput = Tile(PresentKey, InterleaveShape)")
3772
+ .Add("VAttentionInput = Tile(PresentValue, InterleaveShape)");
3773
+
3774
+ // The following pattern is applied
3775
+ // Q K V
3776
+ // | | |
3777
+ // Q*scale K*scale |
3778
+ // | | |
3779
+ // | Transpose |
3780
+ // | | |
3781
+ // ---MatMul--- |
3782
+ // | |
3783
+ // at_mask---Add |
3784
+ // softcap (if provided) |
3785
+ // | |
3786
+ // | |
3787
+ // Softmax |
3788
+ // | |
3789
+ // -----MatMul------
3790
+ // |
3791
+ // Y
3792
+ builder.Add("KTranspose = Transpose <perm = [0, 1 ,3, 2]> (KAttentionInput)")
3793
+ .Add("QScaled = Mul(QReshaped, ScaleFactorF)")
3794
+ .Add("KScaled = Mul(KTranspose, ScaleFactorF)")
3795
+ .Add("QKAttnWeight = MatMul(QScaled, KScaled)")
3796
+ .Add("QKAttnCast = Cast (QKAttnWeight)", "to", T1)
3797
+ .Add("QKAttnWeightWithBias = Add(QKAttnCast, AttnBiasT)");
3798
+
3799
+ // Apply softcap if provided
3800
+ auto* softcap_attr = ctx.getAttribute("softcap");
3801
+ float softcap_val = (softcap_attr != nullptr) ? softcap_attr->f() : static_cast<float>(0);
3802
+ if (softcap_val != 0) {
3803
+ builder.Const1D("Softcap", softcap_val)
3804
+ .Add("SoftcapF = Cast (Softcap)", "to", T1)
3805
+ .Add("SoftcapDiv = Div(QKAttnWeightWithBias, SoftcapF)")
3806
+ .Add("SoftcapTanh = Tanh(SoftcapDiv)")
3807
+ .Add("QKAttnWeightSoftcap = Mul(SoftcapTanh, SoftcapF)");
3808
+ } else {
3809
+ builder.Add("QKAttnWeightSoftcap = Identity(QKAttnWeightWithBias)");
3810
+ }
3811
+ builder.Add("SoftmaxCast = Cast (QKAttnWeightSoftcap)", "to", softmax_precision)
3812
+ .Add("AttnWeightSoftmax = Softmax (SoftmaxCast)")
3813
+ .Add("SoftmaxOut = Cast (AttnWeightSoftmax)", "to", T1);
3814
+
3815
+ // QK MatMul output if required
3816
+ auto* qk_matmul_output_mode_attr = ctx.getAttribute("qk_matmul_output_mode");
3817
+ int64_t qk_matmul_output_mode = (qk_matmul_output_mode_attr != nullptr) ? qk_matmul_output_mode_attr->i() : 0;
3818
+ if (ctx.hasOutput(3)) {
3819
+ if (qk_matmul_output_mode == 1) {
3820
+ builder.Add("qk_matmul_output = Identity(QKAttnWeightWithBias)");
3821
+ } else if (qk_matmul_output_mode == 2) {
3822
+ builder.Add("qk_matmul_output = Identity(QKAttnWeightSoftcap)");
3823
+ } else if (qk_matmul_output_mode == 3) {
3824
+ builder.Add("qk_matmul_output = Identity(AttnWeightSoftmax)");
3825
+ } else {
3826
+ builder.Add("qk_matmul_output = Identity(QKAttnWeight)");
3827
+ }
3828
+ }
3829
+
3830
+ builder.Add("YExtraDim = MatMul(SoftmaxOut, VAttentionInput)")
3831
+ .Add("YCast = Cast (YExtraDim)", "to", T1)
3832
+ .Add("YPreReshape = Squeeze(YCast)");
3833
+ // Reshape Y to 3D if input is a 3D tensor
3834
+ if (q_num_heads != 0 && kv_num_heads != 0) {
3835
+ builder.Add("YTranspose = Transpose <perm = [0, 2, 1, 3]> (YPreReshape)")
3836
+ .Add("YNewShape = Concat <axis = 0> (Zero1D, Zero1D, NegOne)")
3837
+ .Add("Y = Reshape(YTranspose, YNewShape)");
3838
+ } else {
3839
+ builder.Add("Y = Identity(YPreReshape)");
3840
+ }
3841
+
3842
+ schema.BuildFunction(functionProto);
3843
+ return true;
3844
+ }));
2853
3845
  } // namespace ONNX_NAMESPACE