onnx 1.17.0__cp311-cp311-macosx_12_0_universal2.whl → 1.18.0__cp311-cp311-macosx_12_0_universal2.whl

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

Potentially problematic release.


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

Files changed (1435) hide show
  1. onnx/__init__.py +14 -0
  2. onnx/_custom_element_types.py +6 -0
  3. onnx/backend/base.py +14 -5
  4. onnx/backend/sample/ops/__init__.py +6 -3
  5. onnx/backend/test/case/model/__init__.py +8 -4
  6. onnx/backend/test/case/model/expand.py +4 -1
  7. onnx/backend/test/case/model/sequence.py +26 -26
  8. onnx/backend/test/case/model/stringnormalizer.py +4 -1
  9. onnx/backend/test/case/node/__init__.py +26 -27
  10. onnx/backend/test/case/node/abs.py +1 -2
  11. onnx/backend/test/case/node/adagrad.py +1 -1
  12. onnx/backend/test/case/node/adam.py +1 -1
  13. onnx/backend/test/case/node/add.py +19 -7
  14. onnx/backend/test/case/node/attention.py +1399 -0
  15. onnx/backend/test/case/node/averagepool.py +95 -14
  16. onnx/backend/test/case/node/batchnorm.py +2 -2
  17. onnx/backend/test/case/node/bernoulli.py +1 -1
  18. onnx/backend/test/case/node/bitwiseand.py +1 -1
  19. onnx/backend/test/case/node/bitwisenot.py +1 -1
  20. onnx/backend/test/case/node/bitwiseor.py +1 -1
  21. onnx/backend/test/case/node/bitwisexor.py +1 -1
  22. onnx/backend/test/case/node/cast.py +59 -1
  23. onnx/backend/test/case/node/clip.py +11 -0
  24. onnx/backend/test/case/node/concat.py +4 -1
  25. onnx/backend/test/case/node/cumsum.py +24 -0
  26. onnx/backend/test/case/node/dequantizelinear.py +22 -0
  27. onnx/backend/test/case/node/div.py +25 -0
  28. onnx/backend/test/case/node/dropout.py +1 -1
  29. onnx/backend/test/case/node/equal.py +30 -0
  30. onnx/backend/test/case/node/gatherelements.py +1 -1
  31. onnx/backend/test/case/node/greater.py +30 -0
  32. onnx/backend/test/case/node/greater_equal.py +30 -0
  33. onnx/backend/test/case/node/gru.py +2 -2
  34. onnx/backend/test/case/node/if.py +1 -1
  35. onnx/backend/test/case/node/layernormalization.py +2 -2
  36. onnx/backend/test/case/node/less.py +30 -0
  37. onnx/backend/test/case/node/less_equal.py +30 -0
  38. onnx/backend/test/case/node/loop.py +1 -1
  39. onnx/backend/test/case/node/lppool.py +24 -5
  40. onnx/backend/test/case/node/lstm.py +2 -2
  41. onnx/backend/test/case/node/maxpool.py +17 -6
  42. onnx/backend/test/case/node/momentum.py +2 -2
  43. onnx/backend/test/case/node/mul.py +25 -0
  44. onnx/backend/test/case/node/negativeloglikelihoodloss.py +1 -1
  45. onnx/backend/test/case/node/onehot.py +1 -1
  46. onnx/backend/test/case/node/pad.py +1 -1
  47. onnx/backend/test/case/node/quantizelinear.py +38 -0
  48. onnx/backend/test/case/node/rmsnormalization.py +126 -0
  49. onnx/backend/test/case/node/rnn.py +2 -2
  50. onnx/backend/test/case/node/roialign.py +1 -1
  51. onnx/backend/test/case/node/rotaryembedding.py +231 -0
  52. onnx/backend/test/case/node/sub.py +25 -0
  53. onnx/backend/test/case/node/topk.py +129 -2
  54. onnx/backend/test/case/node/trilu.py +2 -2
  55. onnx/backend/test/case/node/unique.py +36 -4
  56. onnx/backend/test/case/test_case.py +6 -3
  57. onnx/backend/test/case/utils.py +5 -3
  58. onnx/backend/test/data/node/test_acos/test_data_set_0/output_0.pb +0 -0
  59. onnx/backend/test/data/node/test_acosh/test_data_set_0/output_0.pb +1 -1
  60. onnx/backend/test/data/node/test_asin/test_data_set_0/output_0.pb +1 -1
  61. onnx/backend/test/data/node/test_asinh/test_data_set_0/output_0.pb +1 -1
  62. onnx/backend/test/data/node/test_atan/test_data_set_0/output_0.pb +1 -1
  63. onnx/backend/test/data/node/test_atanh/test_data_set_0/output_0.pb +2 -2
  64. onnx/backend/test/data/node/test_attention_3d/model.onnx +0 -0
  65. onnx/backend/test/data/node/test_attention_3d/test_data_set_0/input_0.pb +0 -0
  66. onnx/backend/test/data/node/test_attention_3d/test_data_set_0/input_1.pb +0 -0
  67. onnx/backend/test/data/node/test_attention_3d/test_data_set_0/input_2.pb +0 -0
  68. onnx/backend/test/data/node/test_attention_3d/test_data_set_0/output_0.pb +0 -0
  69. onnx/backend/test/data/node/test_attention_3d_attn_mask/model.onnx +0 -0
  70. onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/input_0.pb +0 -0
  71. onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/input_1.pb +0 -0
  72. onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/input_2.pb +0 -0
  73. onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/input_3.pb +1 -0
  74. onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/output_0.pb +0 -0
  75. onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/model.onnx +0 -0
  76. onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
  77. onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
  78. onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
  79. onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/input_3.pb +1 -0
  80. onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
  81. onnx/backend/test/data/node/test_attention_3d_causal/model.onnx +0 -0
  82. onnx/backend/test/data/node/test_attention_3d_causal/test_data_set_0/input_0.pb +0 -0
  83. onnx/backend/test/data/node/test_attention_3d_causal/test_data_set_0/input_1.pb +0 -0
  84. onnx/backend/test/data/node/test_attention_3d_causal/test_data_set_0/input_2.pb +0 -0
  85. onnx/backend/test/data/node/test_attention_3d_causal/test_data_set_0/output_0.pb +0 -0
  86. onnx/backend/test/data/node/test_attention_3d_causal_expanded/model.onnx +0 -0
  87. onnx/backend/test/data/node/test_attention_3d_causal_expanded/test_data_set_0/input_0.pb +0 -0
  88. onnx/backend/test/data/node/test_attention_3d_causal_expanded/test_data_set_0/input_1.pb +0 -0
  89. onnx/backend/test/data/node/test_attention_3d_causal_expanded/test_data_set_0/input_2.pb +0 -0
  90. onnx/backend/test/data/node/test_attention_3d_causal_expanded/test_data_set_0/output_0.pb +0 -0
  91. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/model.onnx +0 -0
  92. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/test_data_set_0/input_0.pb +0 -0
  93. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/test_data_set_0/input_1.pb +0 -0
  94. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/test_data_set_0/input_2.pb +0 -0
  95. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/test_data_set_0/output_0.pb +0 -0
  96. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/model.onnx +0 -0
  97. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/input_0.pb +0 -0
  98. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/input_1.pb +0 -0
  99. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/input_2.pb +0 -0
  100. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/input_3.pb +0 -0
  101. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/output_0.pb +0 -0
  102. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/model.onnx +0 -0
  103. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
  104. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
  105. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
  106. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_3.pb +0 -0
  107. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
  108. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/model.onnx +0 -0
  109. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/test_data_set_0/input_0.pb +0 -0
  110. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/test_data_set_0/input_1.pb +0 -0
  111. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/test_data_set_0/input_2.pb +0 -0
  112. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/test_data_set_0/output_0.pb +0 -0
  113. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/model.onnx +0 -0
  114. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/test_data_set_0/input_0.pb +0 -0
  115. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/test_data_set_0/input_1.pb +0 -0
  116. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/test_data_set_0/input_2.pb +0 -0
  117. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/test_data_set_0/output_0.pb +0 -0
  118. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/model.onnx +0 -0
  119. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/test_data_set_0/input_0.pb +0 -0
  120. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/test_data_set_0/input_1.pb +0 -0
  121. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/test_data_set_0/input_2.pb +0 -0
  122. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/test_data_set_0/output_0.pb +0 -0
  123. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/model.onnx +0 -0
  124. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/test_data_set_0/input_0.pb +0 -0
  125. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/test_data_set_0/input_1.pb +0 -0
  126. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/test_data_set_0/input_2.pb +0 -0
  127. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/test_data_set_0/output_0.pb +0 -0
  128. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/model.onnx +0 -0
  129. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_0.pb +0 -0
  130. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_1.pb +0 -0
  131. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_2.pb +0 -0
  132. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/test_data_set_0/output_0.pb +0 -0
  133. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/model.onnx +0 -0
  134. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/test_data_set_0/input_0.pb +0 -0
  135. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/test_data_set_0/input_1.pb +0 -0
  136. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/test_data_set_0/input_2.pb +0 -0
  137. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/test_data_set_0/output_0.pb +0 -0
  138. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/model.onnx +0 -0
  139. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  140. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  141. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  142. onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  143. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/model.onnx +0 -0
  144. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_0.pb +0 -0
  145. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_1.pb +0 -0
  146. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_2.pb +0 -0
  147. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_3.pb +0 -0
  148. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_4.pb +0 -0
  149. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_5.pb +0 -0
  150. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/output_0.pb +0 -0
  151. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/output_1.pb +0 -0
  152. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/output_2.pb +0 -0
  153. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/model.onnx +0 -0
  154. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
  155. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
  156. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
  157. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
  158. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
  159. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
  160. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
  161. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
  162. onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
  163. onnx/backend/test/data/node/test_attention_3d_expanded/model.onnx +0 -0
  164. onnx/backend/test/data/node/test_attention_3d_expanded/test_data_set_0/input_0.pb +0 -0
  165. onnx/backend/test/data/node/test_attention_3d_expanded/test_data_set_0/input_1.pb +0 -0
  166. onnx/backend/test/data/node/test_attention_3d_expanded/test_data_set_0/input_2.pb +0 -0
  167. onnx/backend/test/data/node/test_attention_3d_expanded/test_data_set_0/output_0.pb +0 -0
  168. onnx/backend/test/data/node/test_attention_3d_gqa/model.onnx +0 -0
  169. onnx/backend/test/data/node/test_attention_3d_gqa/test_data_set_0/input_0.pb +0 -0
  170. onnx/backend/test/data/node/test_attention_3d_gqa/test_data_set_0/input_1.pb +0 -0
  171. onnx/backend/test/data/node/test_attention_3d_gqa/test_data_set_0/input_2.pb +0 -0
  172. onnx/backend/test/data/node/test_attention_3d_gqa/test_data_set_0/output_0.pb +0 -0
  173. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/model.onnx +0 -0
  174. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/input_0.pb +0 -0
  175. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/input_1.pb +0 -0
  176. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/input_2.pb +0 -0
  177. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/input_3.pb +1 -0
  178. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/output_0.pb +0 -0
  179. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/model.onnx +0 -0
  180. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
  181. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
  182. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
  183. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/input_3.pb +1 -0
  184. onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
  185. onnx/backend/test/data/node/test_attention_3d_gqa_causal/model.onnx +0 -0
  186. onnx/backend/test/data/node/test_attention_3d_gqa_causal/test_data_set_0/input_0.pb +0 -0
  187. onnx/backend/test/data/node/test_attention_3d_gqa_causal/test_data_set_0/input_1.pb +0 -0
  188. onnx/backend/test/data/node/test_attention_3d_gqa_causal/test_data_set_0/input_2.pb +0 -0
  189. onnx/backend/test/data/node/test_attention_3d_gqa_causal/test_data_set_0/output_0.pb +0 -0
  190. onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/model.onnx +0 -0
  191. onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/test_data_set_0/input_0.pb +0 -0
  192. onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/test_data_set_0/input_1.pb +0 -0
  193. onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/test_data_set_0/input_2.pb +0 -0
  194. onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/test_data_set_0/output_0.pb +0 -0
  195. onnx/backend/test/data/node/test_attention_3d_gqa_expanded/model.onnx +0 -0
  196. onnx/backend/test/data/node/test_attention_3d_gqa_expanded/test_data_set_0/input_0.pb +0 -0
  197. onnx/backend/test/data/node/test_attention_3d_gqa_expanded/test_data_set_0/input_1.pb +0 -0
  198. onnx/backend/test/data/node/test_attention_3d_gqa_expanded/test_data_set_0/input_2.pb +0 -0
  199. onnx/backend/test/data/node/test_attention_3d_gqa_expanded/test_data_set_0/output_0.pb +0 -0
  200. onnx/backend/test/data/node/test_attention_3d_gqa_scaled/model.onnx +0 -0
  201. onnx/backend/test/data/node/test_attention_3d_gqa_scaled/test_data_set_0/input_0.pb +0 -0
  202. onnx/backend/test/data/node/test_attention_3d_gqa_scaled/test_data_set_0/input_1.pb +0 -0
  203. onnx/backend/test/data/node/test_attention_3d_gqa_scaled/test_data_set_0/input_2.pb +0 -0
  204. onnx/backend/test/data/node/test_attention_3d_gqa_scaled/test_data_set_0/output_0.pb +0 -0
  205. onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/model.onnx +0 -0
  206. onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/test_data_set_0/input_0.pb +0 -0
  207. onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/test_data_set_0/input_1.pb +0 -0
  208. onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/test_data_set_0/input_2.pb +0 -0
  209. onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/test_data_set_0/output_0.pb +0 -0
  210. onnx/backend/test/data/node/test_attention_3d_gqa_softcap/model.onnx +0 -0
  211. onnx/backend/test/data/node/test_attention_3d_gqa_softcap/test_data_set_0/input_0.pb +0 -0
  212. onnx/backend/test/data/node/test_attention_3d_gqa_softcap/test_data_set_0/input_1.pb +0 -0
  213. onnx/backend/test/data/node/test_attention_3d_gqa_softcap/test_data_set_0/input_2.pb +0 -0
  214. onnx/backend/test/data/node/test_attention_3d_gqa_softcap/test_data_set_0/output_0.pb +0 -0
  215. onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/model.onnx +0 -0
  216. onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  217. onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  218. onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  219. onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  220. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/model.onnx +0 -0
  221. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_0.pb +0 -0
  222. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_1.pb +0 -0
  223. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_2.pb +0 -0
  224. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_3.pb +0 -0
  225. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_4.pb +0 -0
  226. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_5.pb +0 -0
  227. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/output_0.pb +0 -0
  228. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/output_1.pb +0 -0
  229. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/output_2.pb +0 -0
  230. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/model.onnx +0 -0
  231. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
  232. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
  233. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
  234. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
  235. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
  236. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
  237. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
  238. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
  239. onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
  240. onnx/backend/test/data/node/test_attention_3d_scaled/model.onnx +0 -0
  241. onnx/backend/test/data/node/test_attention_3d_scaled/test_data_set_0/input_0.pb +0 -0
  242. onnx/backend/test/data/node/test_attention_3d_scaled/test_data_set_0/input_1.pb +0 -0
  243. onnx/backend/test/data/node/test_attention_3d_scaled/test_data_set_0/input_2.pb +0 -0
  244. onnx/backend/test/data/node/test_attention_3d_scaled/test_data_set_0/output_0.pb +0 -0
  245. onnx/backend/test/data/node/test_attention_3d_scaled_expanded/model.onnx +0 -0
  246. onnx/backend/test/data/node/test_attention_3d_scaled_expanded/test_data_set_0/input_0.pb +0 -0
  247. onnx/backend/test/data/node/test_attention_3d_scaled_expanded/test_data_set_0/input_1.pb +0 -0
  248. onnx/backend/test/data/node/test_attention_3d_scaled_expanded/test_data_set_0/input_2.pb +0 -0
  249. onnx/backend/test/data/node/test_attention_3d_scaled_expanded/test_data_set_0/output_0.pb +0 -0
  250. onnx/backend/test/data/node/test_attention_3d_softcap/model.onnx +0 -0
  251. onnx/backend/test/data/node/test_attention_3d_softcap/test_data_set_0/input_0.pb +0 -0
  252. onnx/backend/test/data/node/test_attention_3d_softcap/test_data_set_0/input_1.pb +0 -0
  253. onnx/backend/test/data/node/test_attention_3d_softcap/test_data_set_0/input_2.pb +0 -0
  254. onnx/backend/test/data/node/test_attention_3d_softcap/test_data_set_0/output_0.pb +0 -0
  255. onnx/backend/test/data/node/test_attention_3d_softcap_expanded/model.onnx +0 -0
  256. onnx/backend/test/data/node/test_attention_3d_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  257. onnx/backend/test/data/node/test_attention_3d_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  258. onnx/backend/test/data/node/test_attention_3d_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  259. onnx/backend/test/data/node/test_attention_3d_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  260. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/model.onnx +0 -0
  261. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_0.pb +0 -0
  262. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_1.pb +0 -0
  263. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_2.pb +0 -0
  264. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_3.pb +0 -0
  265. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_4.pb +0 -0
  266. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_5.pb +0 -0
  267. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/output_0.pb +0 -0
  268. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/output_1.pb +0 -0
  269. onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/output_2.pb +0 -0
  270. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/model.onnx +0 -0
  271. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
  272. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
  273. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
  274. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
  275. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
  276. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
  277. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
  278. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
  279. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
  280. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/model.onnx +0 -0
  281. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_0.pb +0 -0
  282. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_1.pb +0 -0
  283. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_2.pb +0 -0
  284. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_3.pb +0 -0
  285. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_4.pb +0 -0
  286. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_5.pb +0 -0
  287. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/output_0.pb +0 -0
  288. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/output_1.pb +0 -0
  289. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/output_2.pb +0 -0
  290. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/output_3.pb +0 -0
  291. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/model.onnx +0 -0
  292. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_0.pb +0 -0
  293. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_1.pb +0 -0
  294. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_2.pb +0 -0
  295. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_3.pb +0 -0
  296. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_4.pb +0 -0
  297. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_5.pb +0 -0
  298. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_0.pb +0 -0
  299. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_1.pb +0 -0
  300. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_2.pb +0 -0
  301. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_3.pb +0 -0
  302. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/model.onnx +0 -0
  303. 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
  304. 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
  305. 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
  306. 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
  307. 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
  308. 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
  309. 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
  310. 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
  311. 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
  312. 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
  313. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/model.onnx +0 -0
  314. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_0.pb +0 -0
  315. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_1.pb +0 -0
  316. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_2.pb +0 -0
  317. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_3.pb +0 -0
  318. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_4.pb +0 -0
  319. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_5.pb +0 -0
  320. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_0.pb +0 -0
  321. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_1.pb +0 -0
  322. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_2.pb +0 -0
  323. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_3.pb +0 -0
  324. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/model.onnx +0 -0
  325. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_0.pb +0 -0
  326. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_1.pb +0 -0
  327. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_2.pb +0 -0
  328. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_3.pb +0 -0
  329. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_4.pb +0 -0
  330. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_5.pb +0 -0
  331. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/output_0.pb +0 -0
  332. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/output_1.pb +0 -0
  333. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/output_2.pb +0 -0
  334. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/output_3.pb +0 -0
  335. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/model.onnx +0 -0
  336. 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
  337. 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
  338. 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
  339. 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
  340. 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
  341. 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
  342. 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
  343. 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
  344. 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
  345. 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
  346. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/model.onnx +0 -0
  347. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_0.pb +0 -0
  348. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_1.pb +0 -0
  349. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_2.pb +0 -0
  350. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_3.pb +0 -0
  351. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_4.pb +0 -0
  352. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_5.pb +0 -0
  353. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/output_0.pb +0 -0
  354. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/output_1.pb +0 -0
  355. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/output_2.pb +0 -0
  356. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/output_3.pb +0 -0
  357. onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/model.onnx +0 -0
  358. 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
  359. 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
  360. 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
  361. 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
  362. 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
  363. 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
  364. 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
  365. 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
  366. 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
  367. 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
  368. onnx/backend/test/data/node/test_attention_4d/model.onnx +0 -0
  369. onnx/backend/test/data/node/test_attention_4d/test_data_set_0/input_0.pb +0 -0
  370. onnx/backend/test/data/node/test_attention_4d/test_data_set_0/input_1.pb +0 -0
  371. onnx/backend/test/data/node/test_attention_4d/test_data_set_0/input_2.pb +0 -0
  372. onnx/backend/test/data/node/test_attention_4d/test_data_set_0/output_0.pb +0 -0
  373. onnx/backend/test/data/node/test_attention_4d_attn_mask/model.onnx +0 -0
  374. onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/input_0.pb +0 -0
  375. onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/input_1.pb +0 -0
  376. onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/input_2.pb +0 -0
  377. onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/input_3.pb +1 -0
  378. onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/output_0.pb +0 -0
  379. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/model.onnx +0 -0
  380. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/input_0.pb +0 -0
  381. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/input_1.pb +0 -0
  382. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/input_2.pb +0 -0
  383. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/input_3.pb +1 -0
  384. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/output_0.pb +0 -0
  385. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/model.onnx +0 -0
  386. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/input_0.pb +0 -0
  387. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/input_1.pb +0 -0
  388. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/input_2.pb +0 -0
  389. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/input_3.pb +1 -0
  390. onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/output_0.pb +0 -0
  391. onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/model.onnx +0 -0
  392. onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
  393. onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
  394. onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
  395. onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/input_3.pb +1 -0
  396. onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
  397. onnx/backend/test/data/node/test_attention_4d_causal/model.onnx +0 -0
  398. onnx/backend/test/data/node/test_attention_4d_causal/test_data_set_0/input_0.pb +0 -0
  399. onnx/backend/test/data/node/test_attention_4d_causal/test_data_set_0/input_1.pb +0 -0
  400. onnx/backend/test/data/node/test_attention_4d_causal/test_data_set_0/input_2.pb +0 -0
  401. onnx/backend/test/data/node/test_attention_4d_causal/test_data_set_0/output_0.pb +0 -0
  402. onnx/backend/test/data/node/test_attention_4d_causal_expanded/model.onnx +0 -0
  403. onnx/backend/test/data/node/test_attention_4d_causal_expanded/test_data_set_0/input_0.pb +0 -0
  404. onnx/backend/test/data/node/test_attention_4d_causal_expanded/test_data_set_0/input_1.pb +0 -0
  405. onnx/backend/test/data/node/test_attention_4d_causal_expanded/test_data_set_0/input_2.pb +0 -0
  406. onnx/backend/test/data/node/test_attention_4d_causal_expanded/test_data_set_0/output_0.pb +0 -0
  407. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/model.onnx +0 -0
  408. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/test_data_set_0/input_0.pb +0 -0
  409. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/test_data_set_0/input_1.pb +0 -0
  410. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/test_data_set_0/input_2.pb +0 -0
  411. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/test_data_set_0/output_0.pb +0 -0
  412. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/model.onnx +0 -0
  413. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/input_0.pb +0 -0
  414. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/input_1.pb +0 -0
  415. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/input_2.pb +0 -0
  416. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/input_3.pb +0 -0
  417. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/output_0.pb +0 -0
  418. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/model.onnx +0 -0
  419. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
  420. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
  421. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
  422. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_3.pb +0 -0
  423. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
  424. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/model.onnx +0 -0
  425. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/test_data_set_0/input_0.pb +0 -0
  426. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/test_data_set_0/input_1.pb +0 -0
  427. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/test_data_set_0/input_2.pb +0 -0
  428. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/test_data_set_0/output_0.pb +0 -0
  429. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/model.onnx +0 -0
  430. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/test_data_set_0/input_0.pb +0 -0
  431. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/test_data_set_0/input_1.pb +0 -0
  432. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/test_data_set_0/input_2.pb +0 -0
  433. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/test_data_set_0/output_0.pb +0 -0
  434. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/model.onnx +0 -0
  435. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/test_data_set_0/input_0.pb +0 -0
  436. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/test_data_set_0/input_1.pb +0 -0
  437. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/test_data_set_0/input_2.pb +0 -0
  438. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/test_data_set_0/output_0.pb +0 -0
  439. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/model.onnx +0 -0
  440. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/test_data_set_0/input_0.pb +0 -0
  441. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/test_data_set_0/input_1.pb +0 -0
  442. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/test_data_set_0/input_2.pb +0 -0
  443. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/test_data_set_0/output_0.pb +0 -0
  444. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/model.onnx +0 -0
  445. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_0.pb +0 -0
  446. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_1.pb +0 -0
  447. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_2.pb +0 -0
  448. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/test_data_set_0/output_0.pb +0 -0
  449. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/model.onnx +0 -0
  450. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/test_data_set_0/input_0.pb +0 -0
  451. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/test_data_set_0/input_1.pb +0 -0
  452. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/test_data_set_0/input_2.pb +0 -0
  453. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/test_data_set_0/output_0.pb +0 -0
  454. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/model.onnx +0 -0
  455. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  456. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  457. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  458. onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  459. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/model.onnx +0 -0
  460. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_0.pb +0 -0
  461. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_1.pb +0 -0
  462. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_2.pb +0 -0
  463. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_3.pb +0 -0
  464. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_4.pb +0 -0
  465. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_5.pb +0 -0
  466. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/output_0.pb +0 -0
  467. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/output_1.pb +0 -0
  468. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/output_2.pb +0 -0
  469. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/model.onnx +0 -0
  470. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
  471. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
  472. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
  473. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
  474. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
  475. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
  476. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
  477. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
  478. onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
  479. onnx/backend/test/data/node/test_attention_4d_expanded/model.onnx +0 -0
  480. onnx/backend/test/data/node/test_attention_4d_expanded/test_data_set_0/input_0.pb +0 -0
  481. onnx/backend/test/data/node/test_attention_4d_expanded/test_data_set_0/input_1.pb +0 -0
  482. onnx/backend/test/data/node/test_attention_4d_expanded/test_data_set_0/input_2.pb +0 -0
  483. onnx/backend/test/data/node/test_attention_4d_expanded/test_data_set_0/output_0.pb +0 -0
  484. onnx/backend/test/data/node/test_attention_4d_gqa/model.onnx +0 -0
  485. onnx/backend/test/data/node/test_attention_4d_gqa/test_data_set_0/input_0.pb +0 -0
  486. onnx/backend/test/data/node/test_attention_4d_gqa/test_data_set_0/input_1.pb +0 -0
  487. onnx/backend/test/data/node/test_attention_4d_gqa/test_data_set_0/input_2.pb +0 -0
  488. onnx/backend/test/data/node/test_attention_4d_gqa/test_data_set_0/output_0.pb +0 -0
  489. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/model.onnx +0 -0
  490. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/input_0.pb +0 -0
  491. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/input_1.pb +0 -0
  492. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/input_2.pb +0 -0
  493. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/input_3.pb +1 -0
  494. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/output_0.pb +0 -0
  495. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/model.onnx +0 -0
  496. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
  497. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
  498. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
  499. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/input_3.pb +1 -0
  500. onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
  501. onnx/backend/test/data/node/test_attention_4d_gqa_causal/model.onnx +0 -0
  502. onnx/backend/test/data/node/test_attention_4d_gqa_causal/test_data_set_0/input_0.pb +0 -0
  503. onnx/backend/test/data/node/test_attention_4d_gqa_causal/test_data_set_0/input_1.pb +0 -0
  504. onnx/backend/test/data/node/test_attention_4d_gqa_causal/test_data_set_0/input_2.pb +0 -0
  505. onnx/backend/test/data/node/test_attention_4d_gqa_causal/test_data_set_0/output_0.pb +0 -0
  506. onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/model.onnx +0 -0
  507. onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/test_data_set_0/input_0.pb +0 -0
  508. onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/test_data_set_0/input_1.pb +0 -0
  509. onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/test_data_set_0/input_2.pb +0 -0
  510. onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/test_data_set_0/output_0.pb +0 -0
  511. onnx/backend/test/data/node/test_attention_4d_gqa_expanded/model.onnx +0 -0
  512. onnx/backend/test/data/node/test_attention_4d_gqa_expanded/test_data_set_0/input_0.pb +0 -0
  513. onnx/backend/test/data/node/test_attention_4d_gqa_expanded/test_data_set_0/input_1.pb +0 -0
  514. onnx/backend/test/data/node/test_attention_4d_gqa_expanded/test_data_set_0/input_2.pb +0 -0
  515. onnx/backend/test/data/node/test_attention_4d_gqa_expanded/test_data_set_0/output_0.pb +0 -0
  516. onnx/backend/test/data/node/test_attention_4d_gqa_scaled/model.onnx +0 -0
  517. onnx/backend/test/data/node/test_attention_4d_gqa_scaled/test_data_set_0/input_0.pb +0 -0
  518. onnx/backend/test/data/node/test_attention_4d_gqa_scaled/test_data_set_0/input_1.pb +0 -0
  519. onnx/backend/test/data/node/test_attention_4d_gqa_scaled/test_data_set_0/input_2.pb +0 -0
  520. onnx/backend/test/data/node/test_attention_4d_gqa_scaled/test_data_set_0/output_0.pb +0 -0
  521. onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/model.onnx +0 -0
  522. onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/test_data_set_0/input_0.pb +0 -0
  523. onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/test_data_set_0/input_1.pb +0 -0
  524. onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/test_data_set_0/input_2.pb +0 -0
  525. onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/test_data_set_0/output_0.pb +0 -0
  526. onnx/backend/test/data/node/test_attention_4d_gqa_softcap/model.onnx +0 -0
  527. onnx/backend/test/data/node/test_attention_4d_gqa_softcap/test_data_set_0/input_0.pb +0 -0
  528. onnx/backend/test/data/node/test_attention_4d_gqa_softcap/test_data_set_0/input_1.pb +0 -0
  529. onnx/backend/test/data/node/test_attention_4d_gqa_softcap/test_data_set_0/input_2.pb +0 -0
  530. onnx/backend/test/data/node/test_attention_4d_gqa_softcap/test_data_set_0/output_0.pb +0 -0
  531. onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/model.onnx +0 -0
  532. onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  533. onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  534. onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  535. onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  536. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/model.onnx +0 -0
  537. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_0.pb +0 -0
  538. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_1.pb +0 -0
  539. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_2.pb +0 -0
  540. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_3.pb +0 -0
  541. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_4.pb +0 -0
  542. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_5.pb +0 -0
  543. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/output_0.pb +0 -0
  544. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/output_1.pb +0 -0
  545. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/output_2.pb +0 -0
  546. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/model.onnx +0 -0
  547. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
  548. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
  549. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
  550. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
  551. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
  552. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
  553. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
  554. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
  555. onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
  556. onnx/backend/test/data/node/test_attention_4d_scaled/model.onnx +0 -0
  557. onnx/backend/test/data/node/test_attention_4d_scaled/test_data_set_0/input_0.pb +0 -0
  558. onnx/backend/test/data/node/test_attention_4d_scaled/test_data_set_0/input_1.pb +0 -0
  559. onnx/backend/test/data/node/test_attention_4d_scaled/test_data_set_0/input_2.pb +0 -0
  560. onnx/backend/test/data/node/test_attention_4d_scaled/test_data_set_0/output_0.pb +0 -0
  561. onnx/backend/test/data/node/test_attention_4d_scaled_expanded/model.onnx +0 -0
  562. onnx/backend/test/data/node/test_attention_4d_scaled_expanded/test_data_set_0/input_0.pb +0 -0
  563. onnx/backend/test/data/node/test_attention_4d_scaled_expanded/test_data_set_0/input_1.pb +0 -0
  564. onnx/backend/test/data/node/test_attention_4d_scaled_expanded/test_data_set_0/input_2.pb +0 -0
  565. onnx/backend/test/data/node/test_attention_4d_scaled_expanded/test_data_set_0/output_0.pb +0 -0
  566. onnx/backend/test/data/node/test_attention_4d_softcap/model.onnx +0 -0
  567. onnx/backend/test/data/node/test_attention_4d_softcap/test_data_set_0/input_0.pb +0 -0
  568. onnx/backend/test/data/node/test_attention_4d_softcap/test_data_set_0/input_1.pb +0 -0
  569. onnx/backend/test/data/node/test_attention_4d_softcap/test_data_set_0/input_2.pb +0 -0
  570. onnx/backend/test/data/node/test_attention_4d_softcap/test_data_set_0/output_0.pb +0 -0
  571. onnx/backend/test/data/node/test_attention_4d_softcap_expanded/model.onnx +0 -0
  572. onnx/backend/test/data/node/test_attention_4d_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  573. onnx/backend/test/data/node/test_attention_4d_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  574. onnx/backend/test/data/node/test_attention_4d_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  575. onnx/backend/test/data/node/test_attention_4d_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  576. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/model.onnx +0 -0
  577. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_0.pb +0 -0
  578. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_1.pb +0 -0
  579. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_2.pb +0 -0
  580. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_3.pb +0 -0
  581. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_4.pb +0 -0
  582. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_5.pb +0 -0
  583. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/output_0.pb +0 -0
  584. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/output_1.pb +0 -0
  585. onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/output_2.pb +0 -0
  586. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/model.onnx +0 -0
  587. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
  588. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
  589. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
  590. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
  591. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
  592. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
  593. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
  594. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
  595. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
  596. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/model.onnx +0 -0
  597. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_0.pb +0 -0
  598. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_1.pb +0 -0
  599. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_2.pb +0 -0
  600. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_3.pb +0 -0
  601. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_4.pb +0 -0
  602. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_5.pb +0 -0
  603. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/output_0.pb +0 -0
  604. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/output_1.pb +0 -0
  605. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/output_2.pb +0 -0
  606. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/output_3.pb +0 -0
  607. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/model.onnx +0 -0
  608. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_0.pb +0 -0
  609. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_1.pb +0 -0
  610. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_2.pb +0 -0
  611. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_3.pb +0 -0
  612. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_4.pb +0 -0
  613. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_5.pb +0 -0
  614. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_0.pb +0 -0
  615. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_1.pb +0 -0
  616. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_2.pb +0 -0
  617. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_3.pb +0 -0
  618. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/model.onnx +0 -0
  619. 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
  620. 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
  621. 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
  622. 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
  623. 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
  624. 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
  625. 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
  626. 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
  627. 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
  628. 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
  629. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/model.onnx +0 -0
  630. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_0.pb +0 -0
  631. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_1.pb +0 -0
  632. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_2.pb +0 -0
  633. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_3.pb +0 -0
  634. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_4.pb +0 -0
  635. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_5.pb +0 -0
  636. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_0.pb +0 -0
  637. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_1.pb +0 -0
  638. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_2.pb +0 -0
  639. onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_3.pb +0 -0
  640. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/model.onnx +0 -0
  641. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/input_0.pb +0 -0
  642. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/input_1.pb +0 -0
  643. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/input_2.pb +0 -0
  644. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/output_0.pb +0 -0
  645. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/output_1.pb +0 -0
  646. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/model.onnx +0 -0
  647. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/input_0.pb +0 -0
  648. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/input_1.pb +0 -0
  649. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/input_2.pb +0 -0
  650. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/input_3.pb +1 -0
  651. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/output_0.pb +0 -0
  652. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/output_1.pb +0 -0
  653. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/model.onnx +0 -0
  654. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/input_0.pb +0 -0
  655. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/input_1.pb +0 -0
  656. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/input_2.pb +0 -0
  657. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/input_3.pb +1 -0
  658. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/output_0.pb +0 -0
  659. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/output_1.pb +0 -0
  660. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/model.onnx +0 -0
  661. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/input_0.pb +0 -0
  662. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/input_1.pb +0 -0
  663. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/input_2.pb +0 -0
  664. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/output_0.pb +0 -0
  665. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/output_1.pb +0 -0
  666. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/model.onnx +0 -0
  667. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/input_0.pb +0 -0
  668. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/input_1.pb +0 -0
  669. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/input_2.pb +0 -0
  670. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/input_3.pb +1 -0
  671. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/output_0.pb +0 -0
  672. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/output_1.pb +0 -0
  673. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/model.onnx +0 -0
  674. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/input_0.pb +0 -0
  675. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/input_1.pb +0 -0
  676. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/input_2.pb +0 -0
  677. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/input_3.pb +1 -0
  678. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/output_0.pb +0 -0
  679. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/output_1.pb +0 -0
  680. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/model.onnx +0 -0
  681. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/input_0.pb +0 -0
  682. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/input_1.pb +0 -0
  683. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/input_2.pb +0 -0
  684. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/input_3.pb +1 -0
  685. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/output_0.pb +0 -0
  686. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/output_1.pb +0 -0
  687. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/model.onnx +0 -0
  688. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/input_0.pb +0 -0
  689. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/input_1.pb +0 -0
  690. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/input_2.pb +0 -0
  691. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/input_3.pb +1 -0
  692. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/output_0.pb +0 -0
  693. onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/output_1.pb +0 -0
  694. onnx/backend/test/data/node/test_averagepool_2d_ceil_last_window_starts_on_pad/model.onnx +0 -0
  695. onnx/backend/test/data/node/test_averagepool_2d_ceil_last_window_starts_on_pad/test_data_set_0/input_0.pb +1 -0
  696. onnx/backend/test/data/node/test_averagepool_2d_ceil_last_window_starts_on_pad/test_data_set_0/output_0.pb +1 -0
  697. 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
  698. onnx/backend/test/data/node/test_blackmanwindow/test_data_set_0/output_0.pb +0 -0
  699. onnx/backend/test/data/node/test_blackmanwindow_expanded/test_data_set_0/output_0.pb +0 -0
  700. onnx/backend/test/data/node/test_blackmanwindow_symmetric/test_data_set_0/output_0.pb +0 -0
  701. onnx/backend/test/data/node/test_blackmanwindow_symmetric_expanded/test_data_set_0/output_0.pb +0 -0
  702. onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/model.onnx +0 -0
  703. onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/model.onnx +0 -0
  704. onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/model.onnx +0 -0
  705. onnx/backend/test/data/node/test_cast_FLOAT16_to_DOUBLE/model.onnx +0 -0
  706. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT/model.onnx +0 -0
  707. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT4E2M1/model.onnx +0 -0
  708. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT4E2M1/test_data_set_0/input_0.pb +2 -0
  709. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT4E2M1/test_data_set_0/output_0.pb +2 -0
  710. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FN/model.onnx +0 -0
  711. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  712. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2/model.onnx +0 -0
  713. onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  714. onnx/backend/test/data/node/test_cast_FLOAT16_to_INT4/model.onnx +0 -0
  715. onnx/backend/test/data/node/test_cast_FLOAT16_to_UINT4/model.onnx +0 -0
  716. onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT/model.onnx +0 -0
  717. onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT/test_data_set_0/input_0.pb +2 -0
  718. onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT/test_data_set_0/output_0.pb +0 -0
  719. onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT16/model.onnx +0 -0
  720. onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT16/test_data_set_0/input_0.pb +2 -0
  721. onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
  722. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT/model.onnx +0 -0
  723. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT16/model.onnx +0 -0
  724. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT/model.onnx +0 -0
  725. onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT16/model.onnx +0 -0
  726. onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT/model.onnx +0 -0
  727. onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT16/model.onnx +0 -0
  728. onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT/model.onnx +0 -0
  729. onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT16/model.onnx +0 -0
  730. onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/model.onnx +0 -0
  731. onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/model.onnx +0 -0
  732. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/model.onnx +0 -0
  733. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT4E2M1/model.onnx +0 -0
  734. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT4E2M1/test_data_set_0/input_0.pb +0 -0
  735. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT4E2M1/test_data_set_0/output_0.pb +2 -0
  736. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
  737. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  738. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
  739. onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  740. onnx/backend/test/data/node/test_cast_FLOAT_to_INT4/model.onnx +0 -0
  741. onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/model.onnx +0 -0
  742. onnx/backend/test/data/node/test_cast_FLOAT_to_UINT4/model.onnx +0 -0
  743. onnx/backend/test/data/node/test_cast_INT4_to_FLOAT/model.onnx +0 -0
  744. onnx/backend/test/data/node/test_cast_INT4_to_FLOAT16/model.onnx +0 -0
  745. onnx/backend/test/data/node/test_cast_INT4_to_INT8/model.onnx +0 -0
  746. onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/model.onnx +0 -0
  747. onnx/backend/test/data/node/test_cast_UINT4_to_FLOAT/model.onnx +0 -0
  748. onnx/backend/test/data/node/test_cast_UINT4_to_FLOAT16/model.onnx +0 -0
  749. onnx/backend/test/data/node/test_cast_UINT4_to_UINT8/model.onnx +0 -0
  750. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FN/model.onnx +0 -0
  751. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  752. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2/model.onnx +0 -0
  753. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  754. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
  755. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  756. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
  757. onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  758. onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/model.onnx +0 -0
  759. onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/model.onnx +0 -0
  760. onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/model.onnx +0 -0
  761. onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/model.onnx +0 -0
  762. onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16_expanded/model.onnx +0 -0
  763. onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/model.onnx +0 -0
  764. onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/model.onnx +0 -0
  765. onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/model.onnx +0 -0
  766. onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT/model.onnx +0 -0
  767. onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT_expanded/model.onnx +0 -0
  768. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT/model.onnx +0 -0
  769. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_expanded/model.onnx +0 -0
  770. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT/model.onnx +0 -0
  771. onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT_expanded/model.onnx +0 -0
  772. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT/model.onnx +0 -0
  773. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_expanded/model.onnx +0 -0
  774. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT/model.onnx +0 -0
  775. onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT_expanded/model.onnx +0 -0
  776. onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/model.onnx +0 -0
  777. onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/model.onnx +0 -0
  778. onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/model.onnx +0 -0
  779. onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/model.onnx +0 -0
  780. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/model.onnx +0 -0
  781. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/model.onnx +0 -0
  782. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
  783. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
  784. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_expanded/model.onnx +0 -0
  785. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN_expanded/model.onnx +0 -0
  786. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
  787. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
  788. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_expanded/model.onnx +0 -0
  789. onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2_expanded/model.onnx +0 -0
  790. onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/model.onnx +0 -0
  791. onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/model.onnx +0 -0
  792. onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/model.onnx +0 -0
  793. onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/model.onnx +0 -0
  794. onnx/backend/test/data/node/test_clip_min_greater_than_max/model.onnx +0 -0
  795. onnx/backend/test/data/node/test_clip_min_greater_than_max/test_data_set_0/input_0.pb +0 -0
  796. onnx/backend/test/data/node/test_clip_min_greater_than_max/test_data_set_0/input_1.pb +0 -0
  797. onnx/backend/test/data/node/test_clip_min_greater_than_max/test_data_set_0/input_2.pb +0 -0
  798. onnx/backend/test/data/node/test_clip_min_greater_than_max/test_data_set_0/output_0.pb +0 -0
  799. onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/model.onnx +0 -0
  800. onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/test_data_set_0/input_0.pb +0 -0
  801. onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/test_data_set_0/input_1.pb +0 -0
  802. onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/test_data_set_0/input_2.pb +0 -0
  803. onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/test_data_set_0/output_0.pb +0 -0
  804. onnx/backend/test/data/node/test_constant/model.onnx +0 -0
  805. onnx/backend/test/data/node/test_constant_pad/model.onnx +0 -0
  806. onnx/backend/test/data/node/test_constant_pad_axes/model.onnx +0 -0
  807. onnx/backend/test/data/node/test_constant_pad_negative_axes/model.onnx +0 -0
  808. onnx/backend/test/data/node/test_constantofshape_float_ones/model.onnx +0 -0
  809. onnx/backend/test/data/node/test_constantofshape_int_shape_zero/model.onnx +0 -0
  810. onnx/backend/test/data/node/test_constantofshape_int_zeros/model.onnx +0 -0
  811. onnx/backend/test/data/node/test_cosh/test_data_set_0/output_0.pb +1 -1
  812. onnx/backend/test/data/node/test_cosh_example/test_data_set_0/output_0.pb +0 -0
  813. onnx/backend/test/data/node/test_dequantizelinear/model.onnx +0 -0
  814. onnx/backend/test/data/node/test_dequantizelinear_axis/model.onnx +0 -0
  815. onnx/backend/test/data/node/test_dequantizelinear_blocked/model.onnx +0 -0
  816. onnx/backend/test/data/node/test_dequantizelinear_e4m3fn/model.onnx +0 -0
  817. onnx/backend/test/data/node/test_dequantizelinear_e4m3fn_float16/model.onnx +0 -0
  818. onnx/backend/test/data/node/test_dequantizelinear_e4m3fn_zero_point/model.onnx +0 -0
  819. onnx/backend/test/data/node/test_dequantizelinear_e5m2/model.onnx +0 -0
  820. onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/model.onnx +0 -0
  821. onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/test_data_set_0/input_0.pb +1 -0
  822. onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/test_data_set_0/input_1.pb +0 -0
  823. onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/test_data_set_0/input_2.pb +0 -0
  824. onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/test_data_set_0/output_0.pb +0 -0
  825. onnx/backend/test/data/node/test_dequantizelinear_int16/model.onnx +0 -0
  826. onnx/backend/test/data/node/test_dequantizelinear_int4/model.onnx +0 -0
  827. onnx/backend/test/data/node/test_dequantizelinear_uint16/model.onnx +0 -0
  828. onnx/backend/test/data/node/test_dequantizelinear_uint4/model.onnx +0 -0
  829. onnx/backend/test/data/node/test_dft/test_data_set_0/output_0.pb +0 -0
  830. onnx/backend/test/data/node/test_dft_axis/test_data_set_0/output_0.pb +0 -0
  831. onnx/backend/test/data/node/test_dft_axis_opset19/test_data_set_0/output_0.pb +0 -0
  832. onnx/backend/test/data/node/test_dft_inverse/test_data_set_0/output_0.pb +0 -0
  833. onnx/backend/test/data/node/test_dft_inverse_opset19/test_data_set_0/output_0.pb +0 -0
  834. onnx/backend/test/data/node/test_dft_opset19/test_data_set_0/output_0.pb +0 -0
  835. onnx/backend/test/data/node/test_edge_pad/model.onnx +0 -0
  836. onnx/backend/test/data/node/test_flatten_axis0/model.onnx +0 -0
  837. onnx/backend/test/data/node/test_flatten_axis1/model.onnx +0 -0
  838. onnx/backend/test/data/node/test_flatten_axis2/model.onnx +0 -0
  839. onnx/backend/test/data/node/test_flatten_axis3/model.onnx +0 -0
  840. onnx/backend/test/data/node/test_flatten_default_axis/model.onnx +0 -0
  841. onnx/backend/test/data/node/test_flatten_negative_axis1/model.onnx +0 -0
  842. onnx/backend/test/data/node/test_flatten_negative_axis2/model.onnx +0 -0
  843. onnx/backend/test/data/node/test_flatten_negative_axis3/model.onnx +0 -0
  844. onnx/backend/test/data/node/test_flatten_negative_axis4/model.onnx +0 -0
  845. onnx/backend/test/data/node/test_gelu_default_1/test_data_set_0/output_0.pb +0 -0
  846. onnx/backend/test/data/node/test_gelu_default_1_expanded/test_data_set_0/output_0.pb +0 -0
  847. onnx/backend/test/data/node/test_gelu_default_2/test_data_set_0/output_0.pb +3 -4
  848. onnx/backend/test/data/node/test_gelu_default_2_expanded/test_data_set_0/output_0.pb +3 -4
  849. onnx/backend/test/data/node/test_gelu_tanh_2/test_data_set_0/output_0.pb +0 -0
  850. onnx/backend/test/data/node/test_gelu_tanh_2_expanded/test_data_set_0/output_0.pb +0 -0
  851. onnx/backend/test/data/node/test_hammingwindow/test_data_set_0/output_0.pb +0 -0
  852. onnx/backend/test/data/node/test_hammingwindow_expanded/test_data_set_0/output_0.pb +0 -0
  853. onnx/backend/test/data/node/test_hammingwindow_symmetric/test_data_set_0/output_0.pb +1 -1
  854. onnx/backend/test/data/node/test_hammingwindow_symmetric_expanded/test_data_set_0/output_0.pb +1 -1
  855. onnx/backend/test/data/node/test_hannwindow/test_data_set_0/output_0.pb +0 -0
  856. onnx/backend/test/data/node/test_hannwindow_expanded/test_data_set_0/output_0.pb +0 -0
  857. onnx/backend/test/data/node/test_hannwindow_symmetric/test_data_set_0/output_0.pb +0 -0
  858. onnx/backend/test/data/node/test_hannwindow_symmetric_expanded/test_data_set_0/output_0.pb +0 -0
  859. onnx/backend/test/data/node/test_identity/model.onnx +0 -0
  860. onnx/backend/test/data/node/test_identity_sequence/model.onnx +0 -0
  861. onnx/backend/test/data/node/test_image_decoder_decode_jpeg2k_rgb/test_data_set_0/input_0.pb +0 -0
  862. onnx/backend/test/data/node/test_lppool_1d_default/test_data_set_0/output_0.pb +2 -2
  863. onnx/backend/test/data/node/test_lppool_2d_default/test_data_set_0/output_0.pb +0 -0
  864. onnx/backend/test/data/node/test_lppool_2d_pads/test_data_set_0/output_0.pb +0 -0
  865. onnx/backend/test/data/node/test_lppool_2d_same_lower/test_data_set_0/output_0.pb +0 -0
  866. onnx/backend/test/data/node/test_lppool_2d_same_upper/test_data_set_0/output_0.pb +0 -0
  867. onnx/backend/test/data/node/test_lppool_2d_strides/test_data_set_0/output_0.pb +0 -0
  868. onnx/backend/test/data/node/test_lppool_3d_default/test_data_set_0/output_0.pb +0 -0
  869. onnx/backend/test/data/node/test_lrn_default/test_data_set_0/output_0.pb +0 -0
  870. onnx/backend/test/data/node/test_mish/test_data_set_0/output_0.pb +0 -0
  871. onnx/backend/test/data/node/test_mish_expanded/test_data_set_0/output_0.pb +0 -0
  872. onnx/backend/test/data/node/test_mvn/test_data_set_0/output_0.pb +1 -1
  873. onnx/backend/test/data/node/test_mvn_expanded/test_data_set_0/output_0.pb +1 -1
  874. onnx/backend/test/data/node/test_mvn_expanded_ver18/test_data_set_0/output_0.pb +1 -1
  875. onnx/backend/test/data/node/test_pow/test_data_set_0/output_0.pb +0 -0
  876. onnx/backend/test/data/node/test_quantizelinear/model.onnx +0 -0
  877. onnx/backend/test/data/node/test_quantizelinear_axis/model.onnx +0 -0
  878. onnx/backend/test/data/node/test_quantizelinear_blocked_asymmetric/model.onnx +0 -0
  879. onnx/backend/test/data/node/test_quantizelinear_blocked_symmetric/model.onnx +0 -0
  880. onnx/backend/test/data/node/test_quantizelinear_e4m3fn/model.onnx +0 -0
  881. onnx/backend/test/data/node/test_quantizelinear_e5m2/model.onnx +0 -0
  882. onnx/backend/test/data/node/test_quantizelinear_float4e2m1/model.onnx +0 -0
  883. onnx/backend/test/data/node/test_quantizelinear_float4e2m1/test_data_set_0/input_0.pb +0 -0
  884. onnx/backend/test/data/node/test_quantizelinear_float4e2m1/test_data_set_0/input_1.pb +0 -0
  885. onnx/backend/test/data/node/test_quantizelinear_float4e2m1/test_data_set_0/input_2.pb +0 -0
  886. onnx/backend/test/data/node/test_quantizelinear_float4e2m1/test_data_set_0/output_0.pb +1 -0
  887. onnx/backend/test/data/node/test_quantizelinear_int16/model.onnx +0 -0
  888. onnx/backend/test/data/node/test_quantizelinear_int4/model.onnx +0 -0
  889. onnx/backend/test/data/node/test_quantizelinear_uint16/model.onnx +0 -0
  890. onnx/backend/test/data/node/test_quantizelinear_uint4/model.onnx +0 -0
  891. onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_random/test_data_set_0/output_0.pb +1 -1
  892. onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_random_expanded/test_data_set_0/output_0.pb +1 -1
  893. onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random/test_data_set_0/output_0.pb +1 -1
  894. onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random_expanded/test_data_set_0/output_0.pb +1 -1
  895. onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_random/test_data_set_0/output_0.pb +1 -1
  896. onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_random_expanded/test_data_set_0/output_0.pb +1 -1
  897. onnx/backend/test/data/node/test_reflect_pad/model.onnx +0 -0
  898. onnx/backend/test/data/node/test_reshape_allowzero_reordered/model.onnx +0 -0
  899. onnx/backend/test/data/node/test_reshape_extended_dims/model.onnx +0 -0
  900. onnx/backend/test/data/node/test_reshape_negative_dim/model.onnx +0 -0
  901. onnx/backend/test/data/node/test_reshape_negative_extended_dims/model.onnx +0 -0
  902. onnx/backend/test/data/node/test_reshape_one_dim/model.onnx +0 -0
  903. onnx/backend/test/data/node/test_reshape_reduced_dims/model.onnx +0 -0
  904. onnx/backend/test/data/node/test_reshape_reordered_all_dims/model.onnx +0 -0
  905. onnx/backend/test/data/node/test_reshape_reordered_last_dims/model.onnx +0 -0
  906. onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/model.onnx +0 -0
  907. onnx/backend/test/data/node/test_reshape_zero_dim/model.onnx +0 -0
  908. onnx/backend/test/data/node/test_rms_normalization_2d_axis0/model.onnx +0 -0
  909. onnx/backend/test/data/node/test_rms_normalization_2d_axis0/test_data_set_0/input_0.pb +1 -0
  910. onnx/backend/test/data/node/test_rms_normalization_2d_axis0/test_data_set_0/input_1.pb +1 -0
  911. onnx/backend/test/data/node/test_rms_normalization_2d_axis0/test_data_set_0/output_0.pb +1 -0
  912. onnx/backend/test/data/node/test_rms_normalization_2d_axis0_expanded/model.onnx +0 -0
  913. onnx/backend/test/data/node/test_rms_normalization_2d_axis0_expanded/test_data_set_0/input_0.pb +1 -0
  914. onnx/backend/test/data/node/test_rms_normalization_2d_axis0_expanded/test_data_set_0/input_1.pb +1 -0
  915. onnx/backend/test/data/node/test_rms_normalization_2d_axis0_expanded/test_data_set_0/output_0.pb +1 -0
  916. onnx/backend/test/data/node/test_rms_normalization_2d_axis1/model.onnx +0 -0
  917. onnx/backend/test/data/node/test_rms_normalization_2d_axis1/test_data_set_0/input_0.pb +1 -0
  918. onnx/backend/test/data/node/test_rms_normalization_2d_axis1/test_data_set_0/input_1.pb +1 -0
  919. onnx/backend/test/data/node/test_rms_normalization_2d_axis1/test_data_set_0/output_0.pb +1 -0
  920. onnx/backend/test/data/node/test_rms_normalization_2d_axis1_expanded/model.onnx +0 -0
  921. onnx/backend/test/data/node/test_rms_normalization_2d_axis1_expanded/test_data_set_0/input_0.pb +1 -0
  922. onnx/backend/test/data/node/test_rms_normalization_2d_axis1_expanded/test_data_set_0/input_1.pb +1 -0
  923. onnx/backend/test/data/node/test_rms_normalization_2d_axis1_expanded/test_data_set_0/output_0.pb +1 -0
  924. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1/model.onnx +0 -0
  925. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1/test_data_set_0/input_0.pb +1 -0
  926. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1/test_data_set_0/input_1.pb +1 -0
  927. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1/test_data_set_0/output_0.pb +1 -0
  928. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1_expanded/model.onnx +0 -0
  929. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_0.pb +1 -0
  930. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_1.pb +1 -0
  931. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_0.pb +1 -0
  932. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2/model.onnx +0 -0
  933. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2/test_data_set_0/input_0.pb +1 -0
  934. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2/test_data_set_0/input_1.pb +1 -0
  935. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2/test_data_set_0/output_0.pb +1 -0
  936. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2_expanded/model.onnx +0 -0
  937. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_0.pb +1 -0
  938. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_1.pb +1 -0
  939. onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_0.pb +1 -0
  940. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon/model.onnx +0 -0
  941. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon/test_data_set_0/input_0.pb +1 -0
  942. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon/test_data_set_0/input_1.pb +1 -0
  943. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon/test_data_set_0/output_0.pb +1 -0
  944. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon_expanded/model.onnx +0 -0
  945. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
  946. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
  947. onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_0.pb +1 -0
  948. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon/model.onnx +0 -0
  949. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon/test_data_set_0/input_0.pb +1 -0
  950. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon/test_data_set_0/input_1.pb +1 -0
  951. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon/test_data_set_0/output_0.pb +1 -0
  952. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon_expanded/model.onnx +0 -0
  953. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
  954. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
  955. onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_0.pb +1 -0
  956. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon/model.onnx +0 -0
  957. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon/test_data_set_0/input_0.pb +1 -0
  958. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon/test_data_set_0/input_1.pb +1 -0
  959. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon/test_data_set_0/output_0.pb +1 -0
  960. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon_expanded/model.onnx +0 -0
  961. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
  962. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
  963. onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_0.pb +1 -0
  964. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon/model.onnx +0 -0
  965. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_0.pb +1 -0
  966. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_1.pb +1 -0
  967. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_0.pb +0 -0
  968. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon_expanded/model.onnx +0 -0
  969. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
  970. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
  971. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_0.pb +0 -0
  972. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon/model.onnx +0 -0
  973. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_0.pb +1 -0
  974. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_1.pb +1 -0
  975. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_0.pb +3 -0
  976. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon_expanded/model.onnx +0 -0
  977. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
  978. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
  979. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_0.pb +3 -0
  980. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon/model.onnx +0 -0
  981. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_0.pb +1 -0
  982. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_1.pb +1 -0
  983. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_0.pb +1 -0
  984. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon_expanded/model.onnx +0 -0
  985. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
  986. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
  987. onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_0.pb +1 -0
  988. onnx/backend/test/data/node/test_rms_normalization_4d_axis0/model.onnx +0 -0
  989. onnx/backend/test/data/node/test_rms_normalization_4d_axis0/test_data_set_0/input_0.pb +1 -0
  990. onnx/backend/test/data/node/test_rms_normalization_4d_axis0/test_data_set_0/input_1.pb +0 -0
  991. onnx/backend/test/data/node/test_rms_normalization_4d_axis0/test_data_set_0/output_0.pb +0 -0
  992. onnx/backend/test/data/node/test_rms_normalization_4d_axis0_expanded/model.onnx +0 -0
  993. onnx/backend/test/data/node/test_rms_normalization_4d_axis0_expanded/test_data_set_0/input_0.pb +1 -0
  994. onnx/backend/test/data/node/test_rms_normalization_4d_axis0_expanded/test_data_set_0/input_1.pb +0 -0
  995. onnx/backend/test/data/node/test_rms_normalization_4d_axis0_expanded/test_data_set_0/output_0.pb +0 -0
  996. onnx/backend/test/data/node/test_rms_normalization_4d_axis1/model.onnx +0 -0
  997. onnx/backend/test/data/node/test_rms_normalization_4d_axis1/test_data_set_0/input_0.pb +1 -0
  998. onnx/backend/test/data/node/test_rms_normalization_4d_axis1/test_data_set_0/input_1.pb +3 -0
  999. onnx/backend/test/data/node/test_rms_normalization_4d_axis1/test_data_set_0/output_0.pb +1 -0
  1000. onnx/backend/test/data/node/test_rms_normalization_4d_axis1_expanded/model.onnx +0 -0
  1001. onnx/backend/test/data/node/test_rms_normalization_4d_axis1_expanded/test_data_set_0/input_0.pb +1 -0
  1002. onnx/backend/test/data/node/test_rms_normalization_4d_axis1_expanded/test_data_set_0/input_1.pb +3 -0
  1003. onnx/backend/test/data/node/test_rms_normalization_4d_axis1_expanded/test_data_set_0/output_0.pb +1 -0
  1004. onnx/backend/test/data/node/test_rms_normalization_4d_axis2/model.onnx +0 -0
  1005. onnx/backend/test/data/node/test_rms_normalization_4d_axis2/test_data_set_0/input_0.pb +1 -0
  1006. onnx/backend/test/data/node/test_rms_normalization_4d_axis2/test_data_set_0/input_1.pb +1 -0
  1007. onnx/backend/test/data/node/test_rms_normalization_4d_axis2/test_data_set_0/output_0.pb +0 -0
  1008. onnx/backend/test/data/node/test_rms_normalization_4d_axis2_expanded/model.onnx +0 -0
  1009. onnx/backend/test/data/node/test_rms_normalization_4d_axis2_expanded/test_data_set_0/input_0.pb +1 -0
  1010. onnx/backend/test/data/node/test_rms_normalization_4d_axis2_expanded/test_data_set_0/input_1.pb +1 -0
  1011. onnx/backend/test/data/node/test_rms_normalization_4d_axis2_expanded/test_data_set_0/output_0.pb +0 -0
  1012. onnx/backend/test/data/node/test_rms_normalization_4d_axis3/model.onnx +0 -0
  1013. onnx/backend/test/data/node/test_rms_normalization_4d_axis3/test_data_set_0/input_0.pb +1 -0
  1014. onnx/backend/test/data/node/test_rms_normalization_4d_axis3/test_data_set_0/input_1.pb +1 -0
  1015. onnx/backend/test/data/node/test_rms_normalization_4d_axis3/test_data_set_0/output_0.pb +2 -0
  1016. onnx/backend/test/data/node/test_rms_normalization_4d_axis3_expanded/model.onnx +0 -0
  1017. onnx/backend/test/data/node/test_rms_normalization_4d_axis3_expanded/test_data_set_0/input_0.pb +1 -0
  1018. onnx/backend/test/data/node/test_rms_normalization_4d_axis3_expanded/test_data_set_0/input_1.pb +1 -0
  1019. onnx/backend/test/data/node/test_rms_normalization_4d_axis3_expanded/test_data_set_0/output_0.pb +2 -0
  1020. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1/model.onnx +0 -0
  1021. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1/test_data_set_0/input_0.pb +1 -0
  1022. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1/test_data_set_0/input_1.pb +1 -0
  1023. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1/test_data_set_0/output_0.pb +0 -0
  1024. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1_expanded/model.onnx +0 -0
  1025. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_0.pb +1 -0
  1026. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_1.pb +1 -0
  1027. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_0.pb +0 -0
  1028. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2/model.onnx +0 -0
  1029. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2/test_data_set_0/input_0.pb +1 -0
  1030. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2/test_data_set_0/input_1.pb +1 -0
  1031. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2/test_data_set_0/output_0.pb +0 -0
  1032. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2_expanded/model.onnx +0 -0
  1033. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_0.pb +1 -0
  1034. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_1.pb +1 -0
  1035. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_0.pb +0 -0
  1036. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3/model.onnx +0 -0
  1037. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3/test_data_set_0/input_0.pb +1 -0
  1038. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3/test_data_set_0/input_1.pb +0 -0
  1039. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3/test_data_set_0/output_0.pb +4 -0
  1040. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3_expanded/model.onnx +0 -0
  1041. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_0.pb +1 -0
  1042. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_1.pb +0 -0
  1043. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_0.pb +4 -0
  1044. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4/model.onnx +0 -0
  1045. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4/test_data_set_0/input_0.pb +1 -0
  1046. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4/test_data_set_0/input_1.pb +2 -0
  1047. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4/test_data_set_0/output_0.pb +0 -0
  1048. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4_expanded/model.onnx +0 -0
  1049. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4_expanded/test_data_set_0/input_0.pb +1 -0
  1050. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4_expanded/test_data_set_0/input_1.pb +2 -0
  1051. onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4_expanded/test_data_set_0/output_0.pb +0 -0
  1052. onnx/backend/test/data/node/test_rms_normalization_default_axis/model.onnx +0 -0
  1053. onnx/backend/test/data/node/test_rms_normalization_default_axis/test_data_set_0/input_0.pb +1 -0
  1054. onnx/backend/test/data/node/test_rms_normalization_default_axis/test_data_set_0/input_1.pb +1 -0
  1055. onnx/backend/test/data/node/test_rms_normalization_default_axis/test_data_set_0/output_0.pb +0 -0
  1056. onnx/backend/test/data/node/test_rms_normalization_default_axis_expanded/model.onnx +0 -0
  1057. onnx/backend/test/data/node/test_rms_normalization_default_axis_expanded/test_data_set_0/input_0.pb +1 -0
  1058. onnx/backend/test/data/node/test_rms_normalization_default_axis_expanded/test_data_set_0/input_1.pb +1 -0
  1059. onnx/backend/test/data/node/test_rms_normalization_default_axis_expanded/test_data_set_0/output_0.pb +0 -0
  1060. onnx/backend/test/data/node/test_rotary_embedding/model.onnx +0 -0
  1061. onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/input_0.pb +0 -0
  1062. onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/input_1.pb +0 -0
  1063. onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/input_2.pb +0 -0
  1064. onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/input_3.pb +0 -0
  1065. onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/output_0.pb +0 -0
  1066. onnx/backend/test/data/node/test_rotary_embedding_3d_input/model.onnx +0 -0
  1067. onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/input_0.pb +0 -0
  1068. onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/input_1.pb +0 -0
  1069. onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/input_2.pb +0 -0
  1070. onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/input_3.pb +0 -0
  1071. onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/output_0.pb +0 -0
  1072. onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/model.onnx +0 -0
  1073. onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/input_0.pb +0 -0
  1074. onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/input_1.pb +0 -0
  1075. onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/input_2.pb +0 -0
  1076. onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/input_3.pb +0 -0
  1077. onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/output_0.pb +0 -0
  1078. onnx/backend/test/data/node/test_rotary_embedding_expanded/model.onnx +0 -0
  1079. onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/input_0.pb +0 -0
  1080. onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/input_1.pb +0 -0
  1081. onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/input_2.pb +0 -0
  1082. onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/input_3.pb +0 -0
  1083. onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/output_0.pb +0 -0
  1084. onnx/backend/test/data/node/test_rotary_embedding_interleaved/model.onnx +0 -0
  1085. onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/input_0.pb +0 -0
  1086. onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/input_1.pb +0 -0
  1087. onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/input_2.pb +0 -0
  1088. onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/input_3.pb +0 -0
  1089. onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/output_0.pb +0 -0
  1090. onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/model.onnx +0 -0
  1091. onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/input_0.pb +0 -0
  1092. onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/input_1.pb +0 -0
  1093. onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/input_2.pb +0 -0
  1094. onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/input_3.pb +0 -0
  1095. onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/output_0.pb +0 -0
  1096. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/model.onnx +0 -0
  1097. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/test_data_set_0/input_0.pb +0 -0
  1098. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/test_data_set_0/input_1.pb +1 -0
  1099. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/test_data_set_0/input_2.pb +1 -0
  1100. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/test_data_set_0/output_0.pb +0 -0
  1101. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/model.onnx +0 -0
  1102. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/test_data_set_0/input_0.pb +0 -0
  1103. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/test_data_set_0/input_1.pb +1 -0
  1104. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/test_data_set_0/input_2.pb +1 -0
  1105. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/test_data_set_0/output_0.pb +0 -0
  1106. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/model.onnx +0 -0
  1107. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/test_data_set_0/input_0.pb +0 -0
  1108. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/test_data_set_0/input_1.pb +1 -0
  1109. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/test_data_set_0/input_2.pb +1 -0
  1110. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/test_data_set_0/output_0.pb +0 -0
  1111. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/model.onnx +0 -0
  1112. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/test_data_set_0/input_0.pb +0 -0
  1113. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/test_data_set_0/input_1.pb +1 -0
  1114. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/test_data_set_0/input_2.pb +1 -0
  1115. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/test_data_set_0/output_0.pb +0 -0
  1116. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/model.onnx +0 -0
  1117. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/test_data_set_0/input_0.pb +0 -0
  1118. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/test_data_set_0/input_1.pb +1 -0
  1119. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/test_data_set_0/input_2.pb +1 -0
  1120. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/test_data_set_0/output_0.pb +0 -0
  1121. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/model.onnx +0 -0
  1122. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/test_data_set_0/input_0.pb +0 -0
  1123. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/test_data_set_0/input_1.pb +1 -0
  1124. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/test_data_set_0/input_2.pb +1 -0
  1125. onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/test_data_set_0/output_0.pb +0 -0
  1126. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/model.onnx +0 -0
  1127. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/input_0.pb +0 -0
  1128. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/input_1.pb +0 -0
  1129. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/input_2.pb +0 -0
  1130. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/input_3.pb +0 -0
  1131. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/output_0.pb +0 -0
  1132. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/model.onnx +0 -0
  1133. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/input_0.pb +0 -0
  1134. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/input_1.pb +0 -0
  1135. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/input_2.pb +0 -0
  1136. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/input_3.pb +0 -0
  1137. onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/output_0.pb +0 -0
  1138. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/model.onnx +0 -0
  1139. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/input_0.pb +0 -0
  1140. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/input_1.pb +0 -0
  1141. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/input_2.pb +0 -0
  1142. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/input_3.pb +0 -0
  1143. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/output_0.pb +0 -0
  1144. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/model.onnx +0 -0
  1145. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/input_0.pb +0 -0
  1146. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/input_1.pb +0 -0
  1147. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/input_2.pb +0 -0
  1148. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/input_3.pb +0 -0
  1149. onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/output_0.pb +0 -0
  1150. onnx/backend/test/data/node/test_shape/model.onnx +0 -0
  1151. onnx/backend/test/data/node/test_shape_clip_end/model.onnx +0 -0
  1152. onnx/backend/test/data/node/test_shape_clip_start/model.onnx +0 -0
  1153. onnx/backend/test/data/node/test_shape_end_1/model.onnx +0 -0
  1154. onnx/backend/test/data/node/test_shape_end_negative_1/model.onnx +0 -0
  1155. onnx/backend/test/data/node/test_shape_example/model.onnx +0 -0
  1156. onnx/backend/test/data/node/test_shape_start_1/model.onnx +0 -0
  1157. onnx/backend/test/data/node/test_shape_start_1_end_2/model.onnx +0 -0
  1158. onnx/backend/test/data/node/test_shape_start_1_end_negative_1/model.onnx +0 -0
  1159. onnx/backend/test/data/node/test_shape_start_negative_1/model.onnx +0 -0
  1160. onnx/backend/test/data/node/test_sinh/test_data_set_0/output_0.pb +1 -1
  1161. onnx/backend/test/data/node/test_size/model.onnx +0 -0
  1162. onnx/backend/test/data/node/test_size_example/model.onnx +0 -0
  1163. onnx/backend/test/data/node/test_squeeze/model.onnx +0 -0
  1164. onnx/backend/test/data/node/test_squeeze_negative_axes/model.onnx +0 -0
  1165. onnx/backend/test/data/node/test_stft_with_window/test_data_set_0/input_2.pb +0 -0
  1166. onnx/backend/test/data/node/test_stft_with_window/test_data_set_0/output_0.pb +0 -0
  1167. onnx/backend/test/data/node/test_tan/test_data_set_0/output_0.pb +1 -1
  1168. onnx/backend/test/data/node/test_top_k_same_values/model.onnx +0 -0
  1169. onnx/backend/test/data/node/test_top_k_same_values/test_data_set_0/input_0.pb +0 -0
  1170. onnx/backend/test/data/node/test_top_k_same_values/test_data_set_0/input_1.pb +0 -0
  1171. onnx/backend/test/data/node/test_top_k_same_values/test_data_set_0/output_0.pb +0 -0
  1172. onnx/backend/test/data/node/test_top_k_same_values/test_data_set_0/output_1.pb +0 -0
  1173. onnx/backend/test/data/node/test_top_k_same_values_2d/model.onnx +0 -0
  1174. onnx/backend/test/data/node/test_top_k_same_values_2d/test_data_set_0/input_0.pb +0 -0
  1175. onnx/backend/test/data/node/test_top_k_same_values_2d/test_data_set_0/input_1.pb +0 -0
  1176. onnx/backend/test/data/node/test_top_k_same_values_2d/test_data_set_0/output_0.pb +0 -0
  1177. onnx/backend/test/data/node/test_top_k_same_values_2d/test_data_set_0/output_1.pb +0 -0
  1178. onnx/backend/test/data/node/test_top_k_same_values_largest/model.onnx +0 -0
  1179. onnx/backend/test/data/node/test_top_k_same_values_largest/test_data_set_0/input_0.pb +0 -0
  1180. onnx/backend/test/data/node/test_top_k_same_values_largest/test_data_set_0/input_1.pb +0 -0
  1181. onnx/backend/test/data/node/test_top_k_same_values_largest/test_data_set_0/output_0.pb +0 -0
  1182. onnx/backend/test/data/node/test_top_k_same_values_largest/test_data_set_0/output_1.pb +0 -0
  1183. onnx/backend/test/data/node/test_top_k_uint64/model.onnx +0 -0
  1184. onnx/backend/test/data/node/test_top_k_uint64/test_data_set_0/input_0.pb +0 -0
  1185. onnx/backend/test/data/node/test_top_k_uint64/test_data_set_0/input_1.pb +0 -0
  1186. onnx/backend/test/data/node/test_top_k_uint64/test_data_set_0/output_0.pb +0 -0
  1187. onnx/backend/test/data/node/test_top_k_uint64/test_data_set_0/output_1.pb +0 -0
  1188. onnx/backend/test/data/node/test_transpose_all_permutations_0/model.onnx +0 -0
  1189. onnx/backend/test/data/node/test_transpose_all_permutations_1/model.onnx +0 -0
  1190. onnx/backend/test/data/node/test_transpose_all_permutations_2/model.onnx +0 -0
  1191. onnx/backend/test/data/node/test_transpose_all_permutations_3/model.onnx +0 -0
  1192. onnx/backend/test/data/node/test_transpose_all_permutations_4/model.onnx +0 -0
  1193. onnx/backend/test/data/node/test_transpose_all_permutations_5/model.onnx +0 -0
  1194. onnx/backend/test/data/node/test_transpose_default/model.onnx +0 -0
  1195. onnx/backend/test/data/node/test_unique_length_1/model.onnx +0 -0
  1196. onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/input_0.pb +0 -0
  1197. onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/output_0.pb +0 -0
  1198. onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/output_1.pb +0 -0
  1199. onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/output_2.pb +0 -0
  1200. onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/output_3.pb +0 -0
  1201. onnx/backend/test/data/node/test_unsqueeze_axis_0/model.onnx +0 -0
  1202. onnx/backend/test/data/node/test_unsqueeze_axis_1/model.onnx +0 -0
  1203. onnx/backend/test/data/node/test_unsqueeze_axis_2/model.onnx +0 -0
  1204. onnx/backend/test/data/node/test_unsqueeze_negative_axes/model.onnx +0 -0
  1205. onnx/backend/test/data/node/test_unsqueeze_three_axes/model.onnx +0 -0
  1206. onnx/backend/test/data/node/test_unsqueeze_two_axes/model.onnx +0 -0
  1207. onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/model.onnx +0 -0
  1208. onnx/backend/test/data/node/test_wrap_pad/model.onnx +0 -0
  1209. onnx/backend/test/report/__init__.py +9 -4
  1210. onnx/backend/test/report/coverage.py +6 -10
  1211. onnx/backend/test/runner/__init__.py +29 -27
  1212. onnx/backend/test/runner/item.py +3 -2
  1213. onnx/backend/test/stat_coverage.py +7 -4
  1214. onnx/checker.cc +24 -29
  1215. onnx/checker.h +9 -6
  1216. onnx/checker.py +8 -7
  1217. onnx/common/array_ref.h +12 -8
  1218. onnx/common/assertions.h +1 -0
  1219. onnx/common/file_utils.h +9 -3
  1220. onnx/common/interned_strings.cc +3 -5
  1221. onnx/common/interned_strings.h +12 -7
  1222. onnx/common/ir.h +37 -60
  1223. onnx/common/ir_pb_converter.cc +18 -17
  1224. onnx/common/ir_pb_converter.h +0 -1
  1225. onnx/common/model_helpers.cc +3 -6
  1226. onnx/common/model_helpers.h +1 -1
  1227. onnx/common/path.h +40 -11
  1228. onnx/common/proto_util.h +3 -3
  1229. onnx/common/status.cc +14 -13
  1230. onnx/common/status.h +12 -10
  1231. onnx/common/tensor.h +30 -87
  1232. onnx/common/version.h +1 -1
  1233. onnx/common/visitor.h +2 -2
  1234. onnx/compose.py +24 -21
  1235. onnx/cpp2py_export.cc +25 -20
  1236. onnx/defs/__init__.py +8 -4
  1237. onnx/defs/controlflow/defs.cc +13 -13
  1238. onnx/defs/controlflow/old.cc +220 -39
  1239. onnx/defs/controlflow/utils.cc +3 -3
  1240. onnx/defs/data_propagators.h +10 -7
  1241. onnx/defs/data_type_utils.cc +14 -15
  1242. onnx/defs/data_type_utils.h +1 -2
  1243. onnx/defs/function.cc +5 -9
  1244. onnx/defs/function.h +36 -11
  1245. onnx/defs/gen_doc.py +4 -1
  1246. onnx/defs/generator/defs.cc +14 -29
  1247. onnx/defs/generator/old.cc +109 -5
  1248. onnx/defs/generator/utils.cc +1 -1
  1249. onnx/defs/logical/defs.cc +3 -3
  1250. onnx/defs/logical/old.cc +4 -4
  1251. onnx/defs/math/defs.cc +26 -47
  1252. onnx/defs/math/old.cc +55 -46
  1253. onnx/defs/math/utils.cc +3 -3
  1254. onnx/defs/math/utils.h +3 -1
  1255. onnx/defs/nn/defs.cc +1040 -30
  1256. onnx/defs/nn/old.cc +92 -39
  1257. onnx/defs/operator_sets.h +75 -22
  1258. onnx/defs/operator_sets_ml.h +5 -5
  1259. onnx/defs/operator_sets_preview.h +1 -1
  1260. onnx/defs/operator_sets_training.h +1 -1
  1261. onnx/defs/optional/defs.cc +0 -4
  1262. onnx/defs/optional/old.cc +0 -4
  1263. onnx/defs/parser.cc +60 -35
  1264. onnx/defs/parser.h +57 -31
  1265. onnx/defs/printer.cc +62 -21
  1266. onnx/defs/quantization/defs.cc +52 -19
  1267. onnx/defs/quantization/old.cc +196 -0
  1268. onnx/defs/reduction/defs.cc +6 -6
  1269. onnx/defs/reduction/old.cc +18 -15
  1270. onnx/defs/reduction/utils.cc +10 -10
  1271. onnx/defs/reduction/utils.h +1 -1
  1272. onnx/defs/rnn/defs.cc +2 -2
  1273. onnx/defs/rnn/old.cc +7 -7
  1274. onnx/defs/schema.cc +497 -41
  1275. onnx/defs/schema.h +83 -406
  1276. onnx/defs/sequence/defs.cc +16 -18
  1277. onnx/defs/shape_inference.cc +39 -32
  1278. onnx/defs/shape_inference.h +46 -28
  1279. onnx/defs/tensor/defs.cc +61 -48
  1280. onnx/defs/tensor/old.cc +691 -22
  1281. onnx/defs/tensor/utils.cc +10 -8
  1282. onnx/defs/tensor/utils.h +2 -3
  1283. onnx/defs/tensor_proto_util.cc +2 -2
  1284. onnx/defs/tensor_proto_util.h +2 -2
  1285. onnx/defs/tensor_util.cc +2 -2
  1286. onnx/defs/tensor_util.h +2 -2
  1287. onnx/defs/traditionalml/defs.cc +16 -4
  1288. onnx/defs/traditionalml/utils.h +1 -2
  1289. onnx/external_data_helper.py +12 -3
  1290. onnx/gen_proto.py +6 -3
  1291. onnx/helper.py +130 -61
  1292. onnx/hub.py +5 -6
  1293. onnx/inliner/inliner.cc +8 -9
  1294. onnx/mapping.py +8 -4
  1295. onnx/model_container.py +12 -8
  1296. onnx/numpy_helper.py +184 -125
  1297. onnx/onnx-ml.proto +115 -9
  1298. onnx/onnx.in.proto +115 -9
  1299. onnx/onnx.proto +115 -9
  1300. onnx/onnx_cpp2py_export/defs.pyi +3 -2
  1301. onnx/onnx_cpp2py_export.cpython-311-darwin.so +0 -0
  1302. onnx/onnx_data_pb2.py +17 -16
  1303. onnx/onnx_data_pb2.pyi +82 -142
  1304. onnx/onnx_ml_pb2.py +84 -71
  1305. onnx/onnx_ml_pb2.pyi +483 -645
  1306. onnx/onnx_operators_ml_pb2.py +11 -10
  1307. onnx/onnx_operators_ml_pb2.pyi +38 -64
  1308. onnx/parser.py +1 -0
  1309. onnx/py_utils.h +1 -1
  1310. onnx/reference/custom_element_types.py +9 -3
  1311. onnx/reference/op_run.py +16 -13
  1312. onnx/reference/ops/_helpers.py +3 -2
  1313. onnx/reference/ops/_op.py +4 -2
  1314. onnx/reference/ops/_op_list.py +14 -13
  1315. onnx/reference/ops/aionnx_preview_training/_op_list.py +8 -13
  1316. onnx/reference/ops/aionnxml/_op_list.py +7 -11
  1317. onnx/reference/ops/aionnxml/op_dict_vectorizer.py +10 -19
  1318. onnx/reference/ops/aionnxml/op_svm_classifier.py +1 -2
  1319. onnx/reference/ops/aionnxml/op_tree_ensemble_helper.py +2 -1
  1320. onnx/reference/ops/experimental/_op_list.py +21 -32
  1321. onnx/reference/ops/op_affine_grid.py +3 -3
  1322. onnx/reference/ops/op_attention.py +211 -0
  1323. onnx/reference/ops/op_cast.py +16 -0
  1324. onnx/reference/ops/op_cast_like.py +3 -0
  1325. onnx/reference/ops/op_concat_from_sequence.py +6 -2
  1326. onnx/reference/ops/op_constant.py +3 -1
  1327. onnx/reference/ops/op_conv.py +2 -6
  1328. onnx/reference/ops/op_conv_transpose.py +1 -3
  1329. onnx/reference/ops/op_cum_sum.py +2 -7
  1330. onnx/reference/ops/op_dequantize_linear.py +32 -4
  1331. onnx/reference/ops/op_if.py +4 -1
  1332. onnx/reference/ops/op_leaky_relu.py +4 -1
  1333. onnx/reference/ops/op_loop.py +1 -1
  1334. onnx/reference/ops/op_non_max_suppression.py +6 -8
  1335. onnx/reference/ops/op_pool_common.py +46 -29
  1336. onnx/reference/ops/op_qlinear_conv.py +13 -0
  1337. onnx/reference/ops/op_quantize_linear.py +42 -4
  1338. onnx/reference/ops/op_rms_normalization.py +49 -0
  1339. onnx/reference/ops/op_rotary_embedding.py +117 -0
  1340. onnx/reference/ops/op_scan.py +4 -5
  1341. onnx/reference/ops/op_split_to_sequence.py +7 -4
  1342. onnx/reference/ops/op_string_split.py +2 -0
  1343. onnx/reference/ops/op_topk.py +6 -21
  1344. onnx/reference/ops/op_unique.py +1 -1
  1345. onnx/reference/reference_evaluator.py +10 -16
  1346. onnx/serialization.py +4 -1
  1347. onnx/shape_inference/attribute_binder.h +1 -1
  1348. onnx/shape_inference/implementation.cc +10 -11
  1349. onnx/shape_inference/implementation.h +36 -18
  1350. onnx/shape_inference.py +7 -4
  1351. onnx/subbyte.py +129 -7
  1352. onnx/test/checker_test.py +4 -1
  1353. onnx/test/compose_test.py +4 -1
  1354. onnx/test/cpp/data_propagation_test.cc +19 -7
  1355. onnx/test/cpp/function_context_test.cc +18 -19
  1356. onnx/test/cpp/function_verify_test.cc +33 -29
  1357. onnx/test/cpp/parser_test.cc +97 -0
  1358. onnx/test/cpp/shape_inference_test.cc +12 -11
  1359. onnx/test/cpp/test_main.cc +1 -1
  1360. onnx/test/cpp/utf8_conversion_test.cc +27 -0
  1361. onnx/test/data_propagation_test.py +116 -2
  1362. onnx/test/function_inference_test.py +4 -1
  1363. onnx/test/function_test.py +1 -1
  1364. onnx/test/helper_test.py +96 -129
  1365. onnx/test/inference_function_test.py +7 -2
  1366. onnx/test/model_container_test.py +1 -1
  1367. onnx/test/numpy_helper_test.py +30 -33
  1368. onnx/test/parser_test.py +23 -0
  1369. onnx/test/reference_evaluator_test.py +245 -38
  1370. onnx/test/schema_test.py +4 -1
  1371. onnx/test/shape_inference_test.py +574 -144
  1372. onnx/test/test_backend_reference.py +10 -1
  1373. onnx/test/test_backend_test.py +7 -6
  1374. onnx/test/test_external_data.py +9 -3
  1375. onnx/test/utils_test.py +1 -1
  1376. onnx/test/version_converter/automatic_conversion_test_base.py +6 -3
  1377. onnx/test/version_converter/automatic_upgrade_test.py +174 -2
  1378. onnx/test/version_converter_test.py +18 -3
  1379. onnx/tools/update_model_dims.py +1 -1
  1380. onnx/utils.py +99 -82
  1381. onnx/version.py +2 -2
  1382. onnx/version_converter/BaseConverter.h +2 -7
  1383. onnx/version_converter/adapters/adapter.h +6 -3
  1384. onnx/version_converter/adapters/axes_attribute_to_input.h +1 -1
  1385. onnx/version_converter/adapters/axes_input_to_attribute.h +4 -4
  1386. onnx/version_converter/adapters/axis_attribute_to_input.h +2 -2
  1387. onnx/version_converter/adapters/axis_input_to_attribute.h +4 -6
  1388. onnx/version_converter/adapters/broadcast_backward_compatibility.h +1 -1
  1389. onnx/version_converter/adapters/broadcast_forward_compatibility.h +2 -2
  1390. onnx/version_converter/adapters/cast_9_8.h +1 -1
  1391. onnx/version_converter/adapters/clip_10_11.h +4 -2
  1392. onnx/version_converter/adapters/dropout_11_12.h +5 -2
  1393. onnx/version_converter/adapters/extend_supported_types.h +3 -3
  1394. onnx/version_converter/adapters/gemm_6_7.h +1 -1
  1395. onnx/version_converter/adapters/gemm_7_6.h +1 -1
  1396. onnx/version_converter/adapters/gridsample_19_20.h +3 -1
  1397. onnx/version_converter/adapters/group_normalization_20_21.h +2 -2
  1398. onnx/version_converter/adapters/maxpool_8_7.h +1 -1
  1399. onnx/version_converter/adapters/pad_10_11.h +3 -1
  1400. onnx/version_converter/adapters/q_dq_21_20.h +2 -2
  1401. onnx/version_converter/adapters/reshape_4_5.h +1 -1
  1402. onnx/version_converter/adapters/reshape_5_4.h +5 -5
  1403. onnx/version_converter/adapters/resize_10_11.h +3 -1
  1404. onnx/version_converter/adapters/scan_8_9.h +3 -3
  1405. onnx/version_converter/adapters/scan_9_8.h +2 -2
  1406. onnx/version_converter/adapters/scatter_10_11.h +3 -1
  1407. onnx/version_converter/adapters/slice_9_10.h +4 -2
  1408. onnx/version_converter/adapters/softmax_12_13.h +2 -2
  1409. onnx/version_converter/adapters/softmax_13_12.h +66 -0
  1410. onnx/version_converter/adapters/split_12_13.h +1 -1
  1411. onnx/version_converter/adapters/split_13_12.h +4 -4
  1412. onnx/version_converter/adapters/split_17_18.h +1 -1
  1413. onnx/version_converter/adapters/sum_8_7.h +1 -1
  1414. onnx/version_converter/adapters/topk_9_10.h +3 -1
  1415. onnx/version_converter/adapters/transformers.h +6 -5
  1416. onnx/version_converter/adapters/type_restriction.h +4 -4
  1417. onnx/version_converter/adapters/upsample_6_7.h +1 -1
  1418. onnx/version_converter/adapters/upsample_8_9.h +1 -1
  1419. onnx/version_converter/adapters/upsample_9_10.h +4 -1
  1420. onnx/version_converter/adapters/upsample_9_8.h +11 -11
  1421. onnx/version_converter/convert.cc +14 -11
  1422. onnx/version_converter/convert.h +53 -3
  1423. onnx/version_converter/helper.cc +4 -9
  1424. onnx/version_converter.py +1 -0
  1425. onnx-1.18.0.dist-info/METADATA +134 -0
  1426. {onnx-1.17.0.dist-info → onnx-1.18.0.dist-info}/RECORD +1430 -493
  1427. {onnx-1.17.0.dist-info → onnx-1.18.0.dist-info}/WHEEL +1 -1
  1428. onnx/test/elu_test.py +0 -19
  1429. onnx/test/relu_test.py +0 -18
  1430. onnx/test/test_backend_onnxruntime.py +0 -599
  1431. onnx/test/test_with_ort.py +0 -51
  1432. onnx-1.17.0.dist-info/METADATA +0 -350
  1433. {onnx-1.17.0.dist-info → onnx-1.18.0.dist-info}/entry_points.txt +0 -0
  1434. {onnx-1.17.0.dist-info → onnx-1.18.0.dist-info/licenses}/LICENSE +0 -0
  1435. {onnx-1.17.0.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,
@@ -193,14 +194,14 @@ void convPoolShapeInference(
193
194
  }
194
195
  }
195
196
 
196
- std::vector<std::string> GetSupportedDataTypesForPoolingOps(bool supports8bit) {
197
+ static std::vector<std::string> GetSupportedDataTypesForPoolingOps(bool supports8bit) {
197
198
  if (supports8bit) {
198
199
  return OpSchema::all_float_types_plus_Xint8_ir4();
199
200
  }
200
201
  return OpSchema::all_float_types_ir4();
201
202
  }
202
203
 
203
- std::function<void(OpSchema&)> PoolOpSchemaGenerator(
204
+ static std::function<void(OpSchema&)> PoolOpSchemaGenerator(
204
205
  const char* name,
205
206
  const char* opName,
206
207
  const char* additionalDescription,
@@ -373,7 +374,7 @@ ONNX_OPERATOR_SET_SCHEMA(
373
374
  OpSchema::NonDifferentiable)
374
375
  .TypeConstraint("I", {"tensor(int64)"}, "Constrain index tensor to int64"));
375
376
 
376
- void maxUnpoolShapeInference(InferenceContext& ctx) {
377
+ static void maxUnpoolShapeInference(InferenceContext& ctx) {
377
378
  // we need at least two inputs to have a shape for this inference.
378
379
  if (ctx.getNumInputs() != 2 && ctx.getNumInputs() != 3) {
379
380
  fail_type_inference("MaxUnpool op must have either two or three inputs.");
@@ -548,7 +549,7 @@ ONNX_OPERATOR_SET_SCHEMA(
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(
@@ -635,7 +636,7 @@ std::function<void(OpSchema&)> LpPoolOpSchemaGenerator(const char* name) {
635
636
  ONNX_OPERATOR_SET_SCHEMA(LpPool, 22, OpSchema().FillUsing(LpPoolOpSchemaGenerator("LpPool")));
636
637
 
637
638
  // For ROI pool operations.
638
- void roiPoolTypeShapeInference(InferenceContext& ctx) {
639
+ static void roiPoolTypeShapeInference(InferenceContext& ctx) {
639
640
  propagateElemTypeFromInputToOutput(ctx, 0, 0);
640
641
 
641
642
  // rois is the second input.
@@ -674,7 +675,7 @@ void roiPoolTypeShapeInference(InferenceContext& ctx) {
674
675
  output_shape->add_dim()->set_dim_value(pooled_shape[1]);
675
676
  }
676
677
 
677
- std::function<void(OpSchema&)> RoiPoolOpSchemaGenerator(const char* name) {
678
+ static std::function<void(OpSchema&)> RoiPoolOpSchemaGenerator(const char* name) {
678
679
  return [=](OpSchema& schema) {
679
680
  std::string doc;
680
681
  POPULATE_OP_DOC_STR(doc = R"DOC(
@@ -729,7 +730,7 @@ std::function<void(OpSchema&)> RoiPoolOpSchemaGenerator(const char* name) {
729
730
 
730
731
  ONNX_OPERATOR_SET_SCHEMA(MaxRoiPool, 22, OpSchema().FillUsing(RoiPoolOpSchemaGenerator("max")));
731
732
 
732
- std::function<void(OpSchema&)> ConvOpSchemaGenerator(const char* filter_desc) {
733
+ static std::function<void(OpSchema&)> ConvOpSchemaGenerator(const char* filter_desc) {
733
734
  return [=](OpSchema& schema) {
734
735
  std::string doc;
735
736
  POPULATE_OP_DOC_STR(doc = R"DOC(
@@ -1101,7 +1102,7 @@ ONNX_OPERATOR_SET_SCHEMA(
1101
1102
  convPoolShapeInference(ctx, true, false, 0, 1);
1102
1103
  }));
1103
1104
 
1104
- void convTransposeShapeInference(InferenceContext& ctx) {
1105
+ static void convTransposeShapeInference(InferenceContext& ctx) {
1105
1106
  propagateElemTypeFromInputToOutput(ctx, 0, 0);
1106
1107
 
1107
1108
  // we need at least two inputs to have a shape for this inference.
@@ -1215,7 +1216,7 @@ void convTransposeShapeInference(InferenceContext& ctx) {
1215
1216
  ctx.getInputType(1)->tensor_type().shape().dim(1) * group; // channels should be the second dim of second input
1216
1217
  // multiply group.
1217
1218
 
1218
- int size_of_output;
1219
+ int size_of_output = 0;
1219
1220
  if (output_shape_presented) {
1220
1221
  size_of_output = static_cast<int>(output_shape.size());
1221
1222
  for (int i = 0; i < size_of_output; ++i) {
@@ -1244,7 +1245,7 @@ void convTransposeShapeInference(InferenceContext& ctx) {
1244
1245
  }
1245
1246
  }
1246
1247
 
1247
- std::function<void(OpSchema&)> ConvTransposeOpSchemaGenerator(const char* filter_desc) {
1248
+ static std::function<void(OpSchema&)> ConvTransposeOpSchemaGenerator(const char* filter_desc) {
1248
1249
  return [=](OpSchema& schema) {
1249
1250
  std::string doc;
1250
1251
  POPULATE_OP_DOC_STR(doc = R"DOC(
@@ -1461,7 +1462,7 @@ ONNX_OPERATOR_SET_SCHEMA(
1461
1462
  }));
1462
1463
 
1463
1464
  // For GlobalPool operations.
1464
- void globalPoolTypeShapeInference(InferenceContext& ctx) {
1465
+ static void globalPoolTypeShapeInference(InferenceContext& ctx) {
1465
1466
  propagateElemTypeFromInputToOutput(ctx, 0, 0);
1466
1467
 
1467
1468
  // needs at least one input with shape.
@@ -1487,7 +1488,7 @@ void globalPoolTypeShapeInference(InferenceContext& ctx) {
1487
1488
  }
1488
1489
  }
1489
1490
 
1490
- 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) {
1491
1492
  return [=](OpSchema& schema) {
1492
1493
  std::string doc;
1493
1494
  POPULATE_OP_DOC_STR(doc = R"DOC(
@@ -1534,7 +1535,7 @@ ONNX_OPERATOR_SET_SCHEMA(
1534
1535
  OpSchema().FillUsing(GlobalPoolingOpSchemaGenerator("AveragePool", "average")));
1535
1536
  ONNX_OPERATOR_SET_SCHEMA(GlobalMaxPool, 22, OpSchema().FillUsing(GlobalPoolingOpSchemaGenerator("MaxPool", "max")));
1536
1537
 
1537
- 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) {
1538
1539
  return [=](OpSchema& schema) {
1539
1540
  std::string doc;
1540
1541
  POPULATE_OP_DOC_STR(doc = R"DOC(
@@ -1573,10 +1574,7 @@ std::function<void(OpSchema&)> GlobalLpPoolingOpSchemaGenerator(const char* op_t
1573
1574
  true,
1574
1575
  1,
1575
1576
  OpSchema::Differentiable);
1576
- schema.TypeConstraint(
1577
- "T",
1578
- {"tensor(float16)", "tensor(float)", "tensor(double)"},
1579
- "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.");
1580
1578
  schema.TypeAndShapeInferenceFunction([](InferenceContext& ctx) { globalPoolTypeShapeInference(ctx); });
1581
1579
  };
1582
1580
  }
@@ -1963,7 +1961,7 @@ ONNX_OPERATOR_SET_SCHEMA(
1963
1961
  LambdaLessThanInput = Less (LambdCast, input)
1964
1962
  InputSubBiasOrZero = Where (LambdaLessThanInput, InputSubBias, ZeroCast)
1965
1963
  output = Where(InputLessThanNegLambda, InputAddBias, InputSubBiasOrZero)
1966
- }
1964
+ }
1967
1965
  )ONNX",
1968
1966
  18));
1969
1967
 
@@ -1975,7 +1973,7 @@ Flattens the input tensor into a 2D matrix. If input tensor has shape
1975
1973
 
1976
1974
  ONNX_OPERATOR_SET_SCHEMA(
1977
1975
  Flatten,
1978
- 21,
1976
+ 23,
1979
1977
  OpSchema()
1980
1978
  .SetDoc(Flatten_ver11_doc)
1981
1979
  .Input(0, "input", "A tensor of rank >= axis.", "T", OpSchema::Single, true, 1, OpSchema::Differentiable)
@@ -1993,7 +1991,7 @@ ONNX_OPERATOR_SET_SCHEMA(
1993
1991
  OpSchema::Differentiable)
1994
1992
  .TypeConstraint(
1995
1993
  "T",
1996
- OpSchema::all_tensor_types_ir10(),
1994
+ OpSchema::all_tensor_types_ir11(),
1997
1995
  "Constrain input and output to all tensor types up to IRv10.")
1998
1996
  .Attr(
1999
1997
  "axis",
@@ -2265,7 +2263,7 @@ ONNX_OPERATOR_SET_SCHEMA(
2265
2263
  )ONNX",
2266
2264
  18));
2267
2265
 
2268
- void col2imShapeInference(InferenceContext& ctx) {
2266
+ static void col2imShapeInference(InferenceContext& ctx) {
2269
2267
  propagateElemTypeFromInputToOutput(ctx, 0, 0);
2270
2268
 
2271
2269
  // All inputs shapes are required
@@ -2349,7 +2347,7 @@ void col2imShapeInference(InferenceContext& ctx) {
2349
2347
  // Image dimensions are dynamic
2350
2348
  for (auto i = 0; i < n_input_dims.dim_value(); ++i) {
2351
2349
  Dim image_dim_i;
2352
- if (image_shape.size() > 0) {
2350
+ if (!image_shape.empty()) {
2353
2351
  image_dim_i.set_dim_value(image_shape[i]); // Otherwise, spatial dimensions are unknown
2354
2352
  }
2355
2353
  *final_image_shape->add_dim() = image_dim_i;
@@ -2494,7 +2492,7 @@ static const char* LayerNormalization_ver17_doc = R"DOC(
2494
2492
  for more details please check [the doc](Broadcasting.md).
2495
2493
  )DOC";
2496
2494
 
2497
- bool BuildContextDependentFunctionBodyLayerNormalization(
2495
+ static bool BuildContextDependentFunctionBodyLayerNormalization(
2498
2496
  const FunctionBodyBuildContext& ctx,
2499
2497
  const OpSchema& schema,
2500
2498
  FunctionProto& functionProto,
@@ -2584,14 +2582,14 @@ bool BuildContextDependentFunctionBodyLayerNormalization(
2584
2582
  return true;
2585
2583
  }
2586
2584
 
2587
- bool BuildContextDependentFunctionBodyLayerNormalizationVer17(
2585
+ static bool BuildContextDependentFunctionBodyLayerNormalizationVer17(
2588
2586
  const FunctionBodyBuildContext& ctx,
2589
2587
  const OpSchema& schema,
2590
2588
  FunctionProto& functionProto) {
2591
2589
  return BuildContextDependentFunctionBodyLayerNormalization(ctx, schema, functionProto, 17);
2592
2590
  }
2593
2591
 
2594
- bool BuildContextDependentFunctionBodyLayerNormalizationVer18(
2592
+ static bool BuildContextDependentFunctionBodyLayerNormalizationVer18(
2595
2593
  const FunctionBodyBuildContext& ctx,
2596
2594
  const OpSchema& schema,
2597
2595
  FunctionProto& functionProto) {
@@ -2699,7 +2697,7 @@ This operator transforms input according to
2699
2697
  y = scale * (x - mean) / sqrt(variance + epsilon) + bias,
2700
2698
  ```
2701
2699
  where the mean and variance are computed per instance per group of channels, and
2702
- `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
2703
2701
  groups `num_groups` should be divisible by the number of channels so that there are
2704
2702
  an equal number of channels per group.
2705
2703
 
@@ -2832,4 +2830,1016 @@ ONNX_OPERATOR_SET_SCHEMA(
2832
2830
  schema.BuildFunction(functionProto);
2833
2831
  return true;
2834
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
+ }));
2835
3845
  } // namespace ONNX_NAMESPACE