onnx 1.17.0__cp310-cp310-win32.whl → 1.18.0__cp310-cp310-win32.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of onnx might be problematic. Click here for more details.
- onnx/__init__.py +14 -0
- onnx/_custom_element_types.py +6 -0
- onnx/backend/base.py +14 -5
- onnx/backend/sample/ops/__init__.py +6 -3
- onnx/backend/test/case/model/__init__.py +8 -4
- onnx/backend/test/case/model/expand.py +4 -1
- onnx/backend/test/case/model/sequence.py +26 -26
- onnx/backend/test/case/model/stringnormalizer.py +4 -1
- onnx/backend/test/case/node/__init__.py +26 -27
- onnx/backend/test/case/node/abs.py +1 -2
- onnx/backend/test/case/node/adagrad.py +1 -1
- onnx/backend/test/case/node/adam.py +1 -1
- onnx/backend/test/case/node/add.py +19 -7
- onnx/backend/test/case/node/attention.py +1399 -0
- onnx/backend/test/case/node/averagepool.py +95 -14
- onnx/backend/test/case/node/batchnorm.py +2 -2
- onnx/backend/test/case/node/bernoulli.py +1 -1
- onnx/backend/test/case/node/bitwiseand.py +1 -1
- onnx/backend/test/case/node/bitwisenot.py +1 -1
- onnx/backend/test/case/node/bitwiseor.py +1 -1
- onnx/backend/test/case/node/bitwisexor.py +1 -1
- onnx/backend/test/case/node/cast.py +59 -1
- onnx/backend/test/case/node/clip.py +11 -0
- onnx/backend/test/case/node/concat.py +4 -1
- onnx/backend/test/case/node/cumsum.py +24 -0
- onnx/backend/test/case/node/dequantizelinear.py +22 -0
- onnx/backend/test/case/node/div.py +25 -0
- onnx/backend/test/case/node/dropout.py +1 -1
- onnx/backend/test/case/node/equal.py +30 -0
- onnx/backend/test/case/node/gatherelements.py +1 -1
- onnx/backend/test/case/node/greater.py +30 -0
- onnx/backend/test/case/node/greater_equal.py +30 -0
- onnx/backend/test/case/node/gru.py +2 -2
- onnx/backend/test/case/node/if.py +1 -1
- onnx/backend/test/case/node/layernormalization.py +2 -2
- onnx/backend/test/case/node/less.py +30 -0
- onnx/backend/test/case/node/less_equal.py +30 -0
- onnx/backend/test/case/node/loop.py +1 -1
- onnx/backend/test/case/node/lppool.py +24 -5
- onnx/backend/test/case/node/lstm.py +2 -2
- onnx/backend/test/case/node/maxpool.py +17 -6
- onnx/backend/test/case/node/momentum.py +2 -2
- onnx/backend/test/case/node/mul.py +25 -0
- onnx/backend/test/case/node/negativeloglikelihoodloss.py +1 -1
- onnx/backend/test/case/node/onehot.py +1 -1
- onnx/backend/test/case/node/pad.py +1 -1
- onnx/backend/test/case/node/quantizelinear.py +38 -0
- onnx/backend/test/case/node/rmsnormalization.py +126 -0
- onnx/backend/test/case/node/rnn.py +2 -2
- onnx/backend/test/case/node/roialign.py +1 -1
- onnx/backend/test/case/node/rotaryembedding.py +231 -0
- onnx/backend/test/case/node/sub.py +25 -0
- onnx/backend/test/case/node/topk.py +129 -2
- onnx/backend/test/case/node/trilu.py +2 -2
- onnx/backend/test/case/node/unique.py +36 -4
- onnx/backend/test/case/test_case.py +6 -3
- onnx/backend/test/case/utils.py +5 -3
- onnx/backend/test/data/node/test_acos/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_acosh/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_asin/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_asinh/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_atan/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_atanh/test_data_set_0/output_0.pb +2 -2
- onnx/backend/test/data/node/test_attention_3d/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_attn_mask/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_3d_attn_mask/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_3d_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_causal/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_causal/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_causal/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_causal/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_causal/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_causal_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_causal_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_causal_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_causal_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_causal_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_causal_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_scaled_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_sizes_softcap_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_causal/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_causal/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_causal/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_causal/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_causal/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_causal_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_scaled/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_scaled/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_scaled/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_scaled/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_scaled/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_scaled_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_softcap/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_softcap/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_softcap/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_softcap/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_softcap/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_softcap_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_gqa_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_scaled/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_scaled/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_scaled/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_scaled/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_scaled/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_scaled_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_scaled_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_scaled_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_scaled_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_scaled_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_softcap/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_softcap/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_softcap/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_softcap/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_softcap/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_softcap_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_softcap_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_softcap_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_softcap_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_softcap_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul/test_data_set_0/output_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_bias_expanded/model.onnx +0 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap/test_data_set_0/output_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded/model.onnx +0 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax/test_data_set_0/output_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded/model.onnx +0 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- onnx/backend/test/data/node/test_attention_4d/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_bool/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_bool_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_4d_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_causal/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_causal/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_causal/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_causal/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_causal/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_causal_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_causal_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_causal_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_causal_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_causal_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_causal_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_scaled_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_sizes_softcap_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_diff_heads_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_attn_mask_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_causal/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_causal/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_causal/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_causal/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_causal/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_causal_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_scaled/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_scaled/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_scaled/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_scaled/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_scaled/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_scaled_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_softcap/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_softcap/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_softcap/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_softcap/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_softcap/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_softcap_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_gqa_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_scaled/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_scaled/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_scaled/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_scaled/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_scaled/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_scaled_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_scaled_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_scaled_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_scaled_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_scaled_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_softcap/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_softcap/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_softcap/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_softcap/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_softcap/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_softcap_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_softcap_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_softcap_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_softcap_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_softcap_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_expanded/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul/test_data_set_0/output_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias/test_data_set_0/output_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_bias_expanded/model.onnx +0 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_4.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/input_5.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_past_and_present_qk_matmul_expanded/test_data_set_0/output_3.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_bias_expanded/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_expanded/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softcap_expanded/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/input_3.pb +1 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_attention_4d_with_qk_matmul_softmax_expanded/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_ceil_last_window_starts_on_pad/model.onnx +0 -0
- onnx/backend/test/data/node/test_averagepool_2d_ceil_last_window_starts_on_pad/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_averagepool_2d_ceil_last_window_starts_on_pad/test_data_set_0/output_0.pb +1 -0
- 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
- onnx/backend/test/data/node/test_blackmanwindow/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_blackmanwindow_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_blackmanwindow_symmetric/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_blackmanwindow_symmetric_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_DOUBLE/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT4E2M1/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT4E2M1/test_data_set_0/input_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT4E2M1/test_data_set_0/output_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FN/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_INT4/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT16_to_UINT4/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT/test_data_set_0/input_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT16/test_data_set_0/input_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_FLOAT4E2M1_to_FLOAT16/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FNUZ_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E4M3FN_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2FNUZ_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT8E5M2_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT4E2M1/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT4E2M1/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT4E2M1/test_data_set_0/output_0.pb +2 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_INT4/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_FLOAT_to_UINT4/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_INT4_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_INT4_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_INT4_to_INT8/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_UINT4_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_UINT4_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_UINT4_to_UINT8/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FN/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
- onnx/backend/test/data/node/test_cast_no_saturate_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E4M3FN_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT8E5M2_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E4M3FN_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT8E5M2_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/model.onnx +0 -0
- onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_clip_min_greater_than_max/model.onnx +0 -0
- onnx/backend/test/data/node/test_clip_min_greater_than_max/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_clip_min_greater_than_max/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_clip_min_greater_than_max/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_clip_min_greater_than_max/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_clip_min_greater_than_max_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_constant/model.onnx +0 -0
- onnx/backend/test/data/node/test_constant_pad/model.onnx +0 -0
- onnx/backend/test/data/node/test_constant_pad_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_constant_pad_negative_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_constantofshape_float_ones/model.onnx +0 -0
- onnx/backend/test/data/node/test_constantofshape_int_shape_zero/model.onnx +0 -0
- onnx/backend/test/data/node/test_constantofshape_int_zeros/model.onnx +0 -0
- onnx/backend/test/data/node/test_cosh/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_cosh_example/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_axis/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_blocked/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e4m3fn/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e4m3fn_float16/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e4m3fn_zero_point/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_e5m2/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_float4e2m1/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_int16/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_int4/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_uint16/model.onnx +0 -0
- onnx/backend/test/data/node/test_dequantizelinear_uint4/model.onnx +0 -0
- onnx/backend/test/data/node/test_dft/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dft_axis/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dft_axis_opset19/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dft_inverse/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dft_inverse_opset19/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_dft_opset19/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_edge_pad/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_axis0/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_axis1/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_axis2/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_axis3/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_default_axis/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_negative_axis1/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_negative_axis2/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_negative_axis3/model.onnx +0 -0
- onnx/backend/test/data/node/test_flatten_negative_axis4/model.onnx +0 -0
- onnx/backend/test/data/node/test_gelu_default_1/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_gelu_default_1_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_gelu_default_2/test_data_set_0/output_0.pb +3 -4
- onnx/backend/test/data/node/test_gelu_default_2_expanded/test_data_set_0/output_0.pb +3 -4
- onnx/backend/test/data/node/test_gelu_tanh_2/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_gelu_tanh_2_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_hammingwindow/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_hammingwindow_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_hammingwindow_symmetric/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_hammingwindow_symmetric_expanded/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_hannwindow/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_hannwindow_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_hannwindow_symmetric/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_hannwindow_symmetric_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_identity/model.onnx +0 -0
- onnx/backend/test/data/node/test_identity_sequence/model.onnx +0 -0
- onnx/backend/test/data/node/test_image_decoder_decode_jpeg2k_rgb/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_lppool_1d_default/test_data_set_0/output_0.pb +2 -2
- onnx/backend/test/data/node/test_lppool_2d_default/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_lppool_2d_pads/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_lppool_2d_same_lower/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_lppool_2d_same_upper/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_lppool_2d_strides/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_lppool_3d_default/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_lrn_default/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_mish/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_mish_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_mvn/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_mvn_expanded/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_mvn_expanded_ver18/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_pow/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_axis/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_blocked_asymmetric/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_blocked_symmetric/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_e4m3fn/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_e5m2/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_float4e2m1/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_float4e2m1/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_float4e2m1/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_float4e2m1/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_quantizelinear_float4e2m1/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_quantizelinear_int16/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_int4/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_uint16/model.onnx +0 -0
- onnx/backend/test/data/node/test_quantizelinear_uint4/model.onnx +0 -0
- onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_random/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_random_expanded/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random_expanded/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_random/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_random_expanded/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_reflect_pad/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_allowzero_reordered/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_extended_dims/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_negative_dim/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_negative_extended_dims/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_one_dim/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_reduced_dims/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_reordered_all_dims/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_reordered_last_dims/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/model.onnx +0 -0
- onnx/backend/test/data/node/test_reshape_zero_dim/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis0/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis0/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis0/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis0/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis0_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis0_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis0_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis0_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis1/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis1/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis1/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis1/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis1_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis1_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis1_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis1_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_0.pb +3 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_0.pb +3 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis0/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis0/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis0/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis0/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis0_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis0_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis0_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis0_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis1/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis1/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis1/test_data_set_0/input_1.pb +3 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis1/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis1_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis1_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis1_expanded/test_data_set_0/input_1.pb +3 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis1_expanded/test_data_set_0/output_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis2/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis2/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis2/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis2/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis2_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis2_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis2_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis2_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis3/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis3/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis3/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis3/test_data_set_0/output_0.pb +2 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis3_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis3_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis3_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis3_expanded/test_data_set_0/output_0.pb +2 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3/test_data_set_0/output_0.pb +4 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_0.pb +4 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4/test_data_set_0/input_1.pb +2 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4_expanded/test_data_set_0/input_1.pb +2 -0
- onnx/backend/test/data/node/test_rms_normalization_4d_axis_negative_4_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_default_axis/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_default_axis/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_default_axis/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_default_axis/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rms_normalization_default_axis_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rms_normalization_default_axis_expanded/test_data_set_0/input_0.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_default_axis_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rms_normalization_default_axis_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_3d_input/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_3d_input/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_3d_input_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_interleaved/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_interleaved/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_interleaved_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_interleaved_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/test_data_set_0/input_1.pb +1 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/test_data_set_0/input_2.pb +1 -0
- onnx/backend/test/data/node/test_rotary_embedding_no_position_ids_rotary_dim_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_interleaved_rotary_dim_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/model.onnx +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/input_3.pb +0 -0
- onnx/backend/test/data/node/test_rotary_embedding_with_rotary_dim_expanded/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_shape/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_clip_end/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_clip_start/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_end_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_end_negative_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_start_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_start_1_end_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_start_1_end_negative_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_shape_start_negative_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_sinh/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_size/model.onnx +0 -0
- onnx/backend/test/data/node/test_size_example/model.onnx +0 -0
- onnx/backend/test/data/node/test_squeeze/model.onnx +0 -0
- onnx/backend/test/data/node/test_squeeze_negative_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_stft_with_window/test_data_set_0/input_2.pb +0 -0
- onnx/backend/test/data/node/test_stft_with_window/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_tan/test_data_set_0/output_0.pb +1 -1
- onnx/backend/test/data/node/test_top_k_same_values/model.onnx +0 -0
- onnx/backend/test/data/node/test_top_k_same_values/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_top_k_same_values/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_top_k_same_values/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_top_k_same_values/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_top_k_same_values_2d/model.onnx +0 -0
- onnx/backend/test/data/node/test_top_k_same_values_2d/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_top_k_same_values_2d/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_top_k_same_values_2d/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_top_k_same_values_2d/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_top_k_same_values_largest/model.onnx +0 -0
- onnx/backend/test/data/node/test_top_k_same_values_largest/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_top_k_same_values_largest/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_top_k_same_values_largest/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_top_k_same_values_largest/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_top_k_uint64/model.onnx +0 -0
- onnx/backend/test/data/node/test_top_k_uint64/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_top_k_uint64/test_data_set_0/input_1.pb +0 -0
- onnx/backend/test/data/node/test_top_k_uint64/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_top_k_uint64/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_transpose_all_permutations_0/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_all_permutations_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_all_permutations_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_all_permutations_3/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_all_permutations_4/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_all_permutations_5/model.onnx +0 -0
- onnx/backend/test/data/node/test_transpose_default/model.onnx +0 -0
- onnx/backend/test/data/node/test_unique_length_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/input_0.pb +0 -0
- onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/output_0.pb +0 -0
- onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/output_1.pb +0 -0
- onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/output_2.pb +0 -0
- onnx/backend/test/data/node/test_unique_length_1/test_data_set_0/output_3.pb +0 -0
- onnx/backend/test/data/node/test_unsqueeze_axis_0/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_axis_1/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_axis_2/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_negative_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_three_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_two_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/model.onnx +0 -0
- onnx/backend/test/data/node/test_wrap_pad/model.onnx +0 -0
- onnx/backend/test/report/__init__.py +9 -4
- onnx/backend/test/report/coverage.py +6 -10
- onnx/backend/test/runner/__init__.py +29 -27
- onnx/backend/test/runner/item.py +3 -2
- onnx/backend/test/stat_coverage.py +7 -4
- onnx/checker.cc +24 -29
- onnx/checker.h +9 -6
- onnx/checker.py +8 -7
- onnx/common/array_ref.h +12 -8
- onnx/common/assertions.h +1 -0
- onnx/common/file_utils.h +9 -3
- onnx/common/interned_strings.cc +3 -5
- onnx/common/interned_strings.h +12 -7
- onnx/common/ir.h +37 -60
- onnx/common/ir_pb_converter.cc +18 -17
- onnx/common/ir_pb_converter.h +0 -1
- onnx/common/model_helpers.cc +3 -6
- onnx/common/model_helpers.h +1 -1
- onnx/common/path.h +40 -11
- onnx/common/proto_util.h +3 -3
- onnx/common/status.cc +14 -13
- onnx/common/status.h +12 -10
- onnx/common/tensor.h +30 -87
- onnx/common/version.h +1 -1
- onnx/common/visitor.h +2 -2
- onnx/compose.py +24 -21
- onnx/cpp2py_export.cc +25 -20
- onnx/defs/__init__.py +8 -4
- onnx/defs/controlflow/defs.cc +13 -13
- onnx/defs/controlflow/old.cc +220 -39
- onnx/defs/controlflow/utils.cc +3 -3
- onnx/defs/data_propagators.h +10 -7
- onnx/defs/data_type_utils.cc +14 -15
- onnx/defs/data_type_utils.h +1 -2
- onnx/defs/function.cc +5 -9
- onnx/defs/function.h +36 -11
- onnx/defs/gen_doc.py +4 -1
- onnx/defs/generator/defs.cc +14 -29
- onnx/defs/generator/old.cc +109 -5
- onnx/defs/generator/utils.cc +1 -1
- onnx/defs/logical/defs.cc +3 -3
- onnx/defs/logical/old.cc +4 -4
- onnx/defs/math/defs.cc +26 -47
- onnx/defs/math/old.cc +55 -46
- onnx/defs/math/utils.cc +3 -3
- onnx/defs/math/utils.h +3 -1
- onnx/defs/nn/defs.cc +1040 -30
- onnx/defs/nn/old.cc +92 -39
- onnx/defs/operator_sets.h +75 -22
- onnx/defs/operator_sets_ml.h +5 -5
- onnx/defs/operator_sets_preview.h +1 -1
- onnx/defs/operator_sets_training.h +1 -1
- onnx/defs/optional/defs.cc +0 -4
- onnx/defs/optional/old.cc +0 -4
- onnx/defs/parser.cc +60 -35
- onnx/defs/parser.h +57 -31
- onnx/defs/printer.cc +62 -21
- onnx/defs/quantization/defs.cc +52 -19
- onnx/defs/quantization/old.cc +196 -0
- onnx/defs/reduction/defs.cc +6 -6
- onnx/defs/reduction/old.cc +18 -15
- onnx/defs/reduction/utils.cc +10 -10
- onnx/defs/reduction/utils.h +1 -1
- onnx/defs/rnn/defs.cc +2 -2
- onnx/defs/rnn/old.cc +7 -7
- onnx/defs/schema.cc +497 -41
- onnx/defs/schema.h +83 -406
- onnx/defs/sequence/defs.cc +16 -18
- onnx/defs/shape_inference.cc +39 -32
- onnx/defs/shape_inference.h +46 -28
- onnx/defs/tensor/defs.cc +61 -48
- onnx/defs/tensor/old.cc +691 -22
- onnx/defs/tensor/utils.cc +10 -8
- onnx/defs/tensor/utils.h +2 -3
- onnx/defs/tensor_proto_util.cc +2 -2
- onnx/defs/tensor_proto_util.h +2 -2
- onnx/defs/tensor_util.cc +2 -2
- onnx/defs/tensor_util.h +2 -2
- onnx/defs/traditionalml/defs.cc +16 -4
- onnx/defs/traditionalml/utils.h +1 -2
- onnx/external_data_helper.py +12 -3
- onnx/gen_proto.py +6 -3
- onnx/helper.py +130 -61
- onnx/hub.py +5 -6
- onnx/inliner/inliner.cc +8 -9
- onnx/mapping.py +8 -4
- onnx/model_container.py +12 -8
- onnx/numpy_helper.py +184 -125
- onnx/onnx-ml.proto +115 -9
- onnx/onnx.in.proto +115 -9
- onnx/onnx.proto +115 -9
- onnx/onnx_cpp2py_export/defs.pyi +3 -2
- onnx/onnx_cpp2py_export.cp310-win32.pyd +0 -0
- onnx/onnx_data_pb2.py +17 -16
- onnx/onnx_data_pb2.pyi +82 -142
- onnx/onnx_ml_pb2.py +84 -71
- onnx/onnx_ml_pb2.pyi +483 -645
- onnx/onnx_operators_ml_pb2.py +11 -10
- onnx/onnx_operators_ml_pb2.pyi +38 -64
- onnx/parser.py +1 -0
- onnx/py_utils.h +1 -1
- onnx/reference/custom_element_types.py +9 -3
- onnx/reference/op_run.py +16 -13
- onnx/reference/ops/_helpers.py +3 -2
- onnx/reference/ops/_op.py +4 -2
- onnx/reference/ops/_op_list.py +14 -13
- onnx/reference/ops/aionnx_preview_training/_op_list.py +8 -13
- onnx/reference/ops/aionnxml/_op_list.py +7 -11
- onnx/reference/ops/aionnxml/op_dict_vectorizer.py +10 -19
- onnx/reference/ops/aionnxml/op_svm_classifier.py +1 -2
- onnx/reference/ops/aionnxml/op_tree_ensemble_helper.py +2 -1
- onnx/reference/ops/experimental/_op_list.py +21 -32
- onnx/reference/ops/op_affine_grid.py +3 -3
- onnx/reference/ops/op_attention.py +211 -0
- onnx/reference/ops/op_cast.py +16 -0
- onnx/reference/ops/op_cast_like.py +3 -0
- onnx/reference/ops/op_concat_from_sequence.py +6 -2
- onnx/reference/ops/op_constant.py +3 -1
- onnx/reference/ops/op_conv.py +2 -6
- onnx/reference/ops/op_conv_transpose.py +1 -3
- onnx/reference/ops/op_cum_sum.py +2 -7
- onnx/reference/ops/op_dequantize_linear.py +32 -4
- onnx/reference/ops/op_if.py +4 -1
- onnx/reference/ops/op_leaky_relu.py +4 -1
- onnx/reference/ops/op_loop.py +1 -1
- onnx/reference/ops/op_non_max_suppression.py +6 -8
- onnx/reference/ops/op_pool_common.py +46 -29
- onnx/reference/ops/op_qlinear_conv.py +13 -0
- onnx/reference/ops/op_quantize_linear.py +42 -4
- onnx/reference/ops/op_rms_normalization.py +49 -0
- onnx/reference/ops/op_rotary_embedding.py +117 -0
- onnx/reference/ops/op_scan.py +4 -5
- onnx/reference/ops/op_split_to_sequence.py +7 -4
- onnx/reference/ops/op_string_split.py +2 -0
- onnx/reference/ops/op_topk.py +6 -21
- onnx/reference/ops/op_unique.py +1 -1
- onnx/reference/reference_evaluator.py +10 -16
- onnx/serialization.py +4 -1
- onnx/shape_inference/attribute_binder.h +1 -1
- onnx/shape_inference/implementation.cc +10 -11
- onnx/shape_inference/implementation.h +36 -18
- onnx/shape_inference.py +7 -4
- onnx/subbyte.py +129 -7
- onnx/test/checker_test.py +4 -1
- onnx/test/compose_test.py +4 -1
- onnx/test/cpp/data_propagation_test.cc +19 -7
- onnx/test/cpp/function_context_test.cc +18 -19
- onnx/test/cpp/function_verify_test.cc +33 -29
- onnx/test/cpp/parser_test.cc +97 -0
- onnx/test/cpp/shape_inference_test.cc +12 -11
- onnx/test/cpp/test_main.cc +1 -1
- onnx/test/cpp/utf8_conversion_test.cc +27 -0
- onnx/test/data_propagation_test.py +116 -2
- onnx/test/function_inference_test.py +4 -1
- onnx/test/function_test.py +1 -1
- onnx/test/helper_test.py +96 -129
- onnx/test/inference_function_test.py +7 -2
- onnx/test/model_container_test.py +1 -1
- onnx/test/numpy_helper_test.py +30 -33
- onnx/test/parser_test.py +23 -0
- onnx/test/reference_evaluator_test.py +245 -38
- onnx/test/schema_test.py +4 -1
- onnx/test/shape_inference_test.py +574 -144
- onnx/test/test_backend_reference.py +10 -1
- onnx/test/test_backend_test.py +7 -6
- onnx/test/test_external_data.py +9 -3
- onnx/test/utils_test.py +1 -1
- onnx/test/version_converter/automatic_conversion_test_base.py +6 -3
- onnx/test/version_converter/automatic_upgrade_test.py +174 -2
- onnx/test/version_converter_test.py +18 -3
- onnx/tools/update_model_dims.py +1 -1
- onnx/utils.py +99 -82
- onnx/version.py +2 -2
- onnx/version_converter/BaseConverter.h +2 -7
- onnx/version_converter/adapters/adapter.h +6 -3
- onnx/version_converter/adapters/axes_attribute_to_input.h +1 -1
- onnx/version_converter/adapters/axes_input_to_attribute.h +4 -4
- onnx/version_converter/adapters/axis_attribute_to_input.h +2 -2
- onnx/version_converter/adapters/axis_input_to_attribute.h +4 -6
- onnx/version_converter/adapters/broadcast_backward_compatibility.h +1 -1
- onnx/version_converter/adapters/broadcast_forward_compatibility.h +2 -2
- onnx/version_converter/adapters/cast_9_8.h +1 -1
- onnx/version_converter/adapters/clip_10_11.h +4 -2
- onnx/version_converter/adapters/dropout_11_12.h +5 -2
- onnx/version_converter/adapters/extend_supported_types.h +3 -3
- onnx/version_converter/adapters/gemm_6_7.h +1 -1
- onnx/version_converter/adapters/gemm_7_6.h +1 -1
- onnx/version_converter/adapters/gridsample_19_20.h +3 -1
- onnx/version_converter/adapters/group_normalization_20_21.h +2 -2
- onnx/version_converter/adapters/maxpool_8_7.h +1 -1
- onnx/version_converter/adapters/pad_10_11.h +3 -1
- onnx/version_converter/adapters/q_dq_21_20.h +2 -2
- onnx/version_converter/adapters/reshape_4_5.h +1 -1
- onnx/version_converter/adapters/reshape_5_4.h +5 -5
- onnx/version_converter/adapters/resize_10_11.h +3 -1
- onnx/version_converter/adapters/scan_8_9.h +3 -3
- onnx/version_converter/adapters/scan_9_8.h +2 -2
- onnx/version_converter/adapters/scatter_10_11.h +3 -1
- onnx/version_converter/adapters/slice_9_10.h +4 -2
- onnx/version_converter/adapters/softmax_12_13.h +2 -2
- onnx/version_converter/adapters/softmax_13_12.h +66 -0
- onnx/version_converter/adapters/split_12_13.h +1 -1
- onnx/version_converter/adapters/split_13_12.h +4 -4
- onnx/version_converter/adapters/split_17_18.h +1 -1
- onnx/version_converter/adapters/sum_8_7.h +1 -1
- onnx/version_converter/adapters/topk_9_10.h +3 -1
- onnx/version_converter/adapters/transformers.h +6 -5
- onnx/version_converter/adapters/type_restriction.h +4 -4
- onnx/version_converter/adapters/upsample_6_7.h +1 -1
- onnx/version_converter/adapters/upsample_8_9.h +1 -1
- onnx/version_converter/adapters/upsample_9_10.h +4 -1
- onnx/version_converter/adapters/upsample_9_8.h +11 -11
- onnx/version_converter/convert.cc +14 -11
- onnx/version_converter/convert.h +53 -3
- onnx/version_converter/helper.cc +4 -9
- onnx/version_converter.py +1 -0
- onnx-1.18.0.dist-info/METADATA +134 -0
- {onnx-1.17.0.dist-info → onnx-1.18.0.dist-info}/RECORD +1430 -493
- {onnx-1.17.0.dist-info → onnx-1.18.0.dist-info}/WHEEL +1 -1
- onnx/test/elu_test.py +0 -19
- onnx/test/relu_test.py +0 -18
- onnx/test/test_backend_onnxruntime.py +0 -599
- onnx/test/test_with_ort.py +0 -51
- onnx-1.17.0.dist-info/METADATA +0 -350
- {onnx-1.17.0.dist-info → onnx-1.18.0.dist-info}/entry_points.txt +0 -0
- {onnx-1.17.0.dist-info → onnx-1.18.0.dist-info/licenses}/LICENSE +0 -0
- {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
|
-
|
|
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::
|
|
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.
|
|
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
|
|
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
|