| { |
| "op": "ai.onnx.Shape", |
| "cases": [ |
| { |
| "name": "rank3_f32", |
| "inputs": { "data": { "dtype": "float32", "shape": [2, 3, 4] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [3] } } |
| }, |
| { |
| "name": "rank4_u32", |
| "inputs": { "data": { "dtype": "uint32", "shape": [1, 2, 3, 4] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [4] } } |
| }, |
| { |
| "name": "rank0_scalar_input_empty_shape_vector", |
| "inputs": { "data": { "dtype": "float32", "shape": [] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [0], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_interior_zero_dim_reports_zero", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeOpset15_Default", |
| "notes": "Additional node-level zero-dimension edge: Shape must report an interior zero dimension exactly." |
| }, |
| "inputs": { "data": { "dtype": "float32", "shape": [2, 0, 3], "data": { "kind": "values", "values": [] } } }, |
| "outputs": { |
| "shape": { "dtype": "uint32", "shape": [3], "tolerance": 0, "data": { "kind": "values", "values": [2, 0, 3] } } |
| } |
| }, |
| { |
| "name": "start_end_middle_dims", |
| "attrs": { "start": 1, "end": 3 }, |
| "inputs": { "data": { "dtype": "float32", "shape": [2, 3, 4, 5] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "negative_start_negative_end", |
| "attrs": { "start": -3, "end": -1 }, |
| "inputs": { "data": { "dtype": "float32", "shape": [2, 3, 4, 5] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_start_equals_end_empty_slice", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeOpset15_StartAndEndProducingEmptySlice" |
| }, |
| "attrs": { "start": 2, "end": 2 }, |
| "inputs": { |
| "data": { "dtype": "int32", "shape": [1, 2, 2], "data": { "kind": "values", "values": [1, 2, 3, 4] } } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [0], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_int8_shape_3x4", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeTestInt8" |
| }, |
| "inputs": { |
| "data": { |
| "dtype": "int8", |
| "shape": [3, 4], |
| "data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] } |
| } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_int16_shape_3x4", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeTestInt16" |
| }, |
| "inputs": { |
| "data": { |
| "dtype": "int16", |
| "shape": [3, 4], |
| "data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] } |
| } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_uint8_shape_12x1", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeTestUint8" |
| }, |
| "inputs": { |
| "data": { |
| "dtype": "uint8", |
| "shape": [12, 1], |
| "data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] } |
| } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_int32_shape_4x3", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeTestInt32" |
| }, |
| "inputs": { |
| "data": { |
| "dtype": "int32", |
| "shape": [4, 3], |
| "data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] } |
| } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_int32_default_opset15", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeOpset15_Default" |
| }, |
| "inputs": { |
| "data": { "dtype": "int32", "shape": [1, 2, 2], "data": { "kind": "values", "values": [1, 2, 3, 4] } } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [3], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_start_only_int32", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeOpset15_StartOnly" |
| }, |
| "attrs": { "start": 1 }, |
| "inputs": { |
| "data": { "dtype": "int32", "shape": [1, 2, 2], "data": { "kind": "values", "values": [1, 2, 3, 4] } } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_end_only_int32", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeOpset15_EndOnly" |
| }, |
| "attrs": { "end": 2 }, |
| "inputs": { |
| "data": { "dtype": "int32", "shape": [1, 2, 2], "data": { "kind": "values", "values": [1, 2, 3, 4] } } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_start_and_end_int32", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeOpset15_StartAndEnd" |
| }, |
| "attrs": { "start": 1, "end": 2 }, |
| "inputs": { |
| "data": { "dtype": "int32", "shape": [1, 2, 2], "data": { "kind": "values", "values": [1, 2, 3, 4] } } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [1], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_negative_start_and_end_int32", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeOpset15_StartAndEndNegative" |
| }, |
| "attrs": { "start": -2, "end": -1 }, |
| "inputs": { |
| "data": { "dtype": "int32", "shape": [1, 2, 2], "data": { "kind": "values", "values": [1, 2, 3, 4] } } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [1], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_float_shape_2x6", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeTestFloat" |
| }, |
| "inputs": { |
| "data": { |
| "dtype": "float32", |
| "shape": [2, 6], |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] } |
| } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_bool_exact_shape_2x3", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeTestBool" |
| }, |
| "inputs": { |
| "data": { "dtype": "bool", "shape": [2, 3], "data": { "kind": "values", "values": [1, 1, 0, 0, 1, 0] } } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_uint32_shape_12x1", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeTestUint32" |
| }, |
| "inputs": { |
| "data": { |
| "dtype": "uint32", |
| "shape": [12, 1], |
| "data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] } |
| } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_bool_shape_logical_uint32_2x3", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeTestBool", |
| "notes": "Logical bool fixture represented with uint32 storage slots." |
| }, |
| "inputs": { |
| "data": { "dtype": "uint32", "shape": [2, 3], "data": { "kind": "values", "values": [1, 1, 0, 0, 1, 0] } } |
| }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_bool_shape_exact_2x3", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/tensor/shape_op_test.cc", |
| "test": "ShapeOpTest.ShapeTestBool" |
| }, |
| "inputs": { |
| "data": { "dtype": "bool", "shape": [2, 3], "data": { "kind": "values", "values": [1, 1, 0, 0, 1, 0] } } |
| }, |
| "outputs": { |
| "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [2, 3] } } |
| } |
| }, |
| { |
| "name": "onnx_backend_shape", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_shape", |
| "notes": "ONNX shape/size outputs are int64; this framework uses uint32 shape/index storage." |
| }, |
| "inputs": { "data": { "dtype": "float32", "shape": [3, 4, 5] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [3], "tolerance": 0 } } |
| }, |
| { |
| "name": "onnx_backend_shape_clip_end", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_shape_clip_end", |
| "notes": "ONNX shape/size outputs are int64; this framework uses uint32 shape/index storage." |
| }, |
| "attrs": { "end": 10 }, |
| "inputs": { "data": { "dtype": "float32", "shape": [3, 4, 5] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [3], "tolerance": 0 } } |
| }, |
| { |
| "name": "onnx_backend_shape_clip_start", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_shape_clip_start", |
| "notes": "ONNX shape/size outputs are int64; this framework uses uint32 shape/index storage." |
| }, |
| "attrs": { "start": -10 }, |
| "inputs": { "data": { "dtype": "float32", "shape": [3, 4, 5] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [3], "tolerance": 0 } } |
| }, |
| { |
| "name": "onnx_backend_shape_end_1", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_shape_end_1", |
| "notes": "ONNX shape/size outputs are int64; this framework uses uint32 shape/index storage." |
| }, |
| "attrs": { "end": 1 }, |
| "inputs": { "data": { "dtype": "float32", "shape": [3, 4, 5] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [1], "tolerance": 0 } } |
| }, |
| { |
| "name": "onnx_backend_shape_end_negative_1", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_shape_end_negative_1", |
| "notes": "ONNX shape/size outputs are int64; this framework uses uint32 shape/index storage." |
| }, |
| "attrs": { "end": -1 }, |
| "inputs": { "data": { "dtype": "float32", "shape": [3, 4, 5] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "onnx_backend_shape_example", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_shape_example", |
| "notes": "ONNX shape/size outputs are int64; this framework uses uint32 shape/index storage." |
| }, |
| "inputs": { "data": { "dtype": "float32", "shape": [2, 3] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "onnx_backend_shape_start_1", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_shape_start_1", |
| "notes": "ONNX shape/size outputs are int64; this framework uses uint32 shape/index storage." |
| }, |
| "attrs": { "start": 1 }, |
| "inputs": { "data": { "dtype": "float32", "shape": [3, 4, 5] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "onnx_backend_shape_start_1_end_2", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_shape_start_1_end_2", |
| "notes": "ONNX shape/size outputs are int64; this framework uses uint32 shape/index storage." |
| }, |
| "attrs": { "end": 2, "start": 1 }, |
| "inputs": { "data": { "dtype": "float32", "shape": [3, 4, 5] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [1], "tolerance": 0 } } |
| }, |
| { |
| "name": "onnx_backend_shape_start_1_end_negative_1", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_shape_start_1_end_negative_1", |
| "notes": "ONNX shape/size outputs are int64; this framework uses uint32 shape/index storage." |
| }, |
| "attrs": { "end": -1, "start": 1 }, |
| "inputs": { "data": { "dtype": "float32", "shape": [3, 4, 5] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [1], "tolerance": 0 } } |
| }, |
| { |
| "name": "onnx_backend_shape_start_greater_than_end", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_shape_start_greater_than_end", |
| "notes": "ONNX shape/size outputs are int64; this framework uses uint32 shape/index storage." |
| }, |
| "attrs": { "end": 1, "start": 2 }, |
| "inputs": { "data": { "dtype": "float32", "shape": [3, 4, 5] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [0], "tolerance": 0 } } |
| }, |
| { |
| "name": "onnx_backend_shape_start_negative_1", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_shape_start_negative_1", |
| "notes": "ONNX shape/size outputs are int64; this framework uses uint32 shape/index storage." |
| }, |
| "attrs": { "start": -1 }, |
| "inputs": { "data": { "dtype": "float32", "shape": [3, 4, 5] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [1], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_caseB_empty", |
| "inputs": { "data": { "dtype": "float32", "shape": [0, 3, 4], "data": { "kind": "values", "values": [] } } }, |
| "outputs": { |
| "shape": { "dtype": "uint32", "shape": [3], "data": { "kind": "values", "values": [0, 3, 4] }, "tolerance": 0 } |
| } |
| }, |
| { |
| "name": "rank3_f16", |
| "inputs": { "data": { "dtype": "float16", "shape": [2, 3, 4] } }, |
| "outputs": { "shape": { "dtype": "uint32", "shape": [3] } } |
| }, |
| { |
| "name": "rank6_negative_start_clip", |
| "attrs": { "start": -7 }, |
| "inputs": { "data": { "dtype": "float32", "shape": [2, 3, 4, 5, 6, 7] } }, |
| "outputs": { |
| "shape": { |
| "dtype": "uint32", |
| "shape": [6], |
| "tolerance": 0, |
| "data": { "kind": "values", "values": [2, 3, 4, 5, 6, 7] } |
| } |
| } |
| }, |
| { |
| "name": "rank6_start_end_middle_negative", |
| "attrs": { "start": -4, "end": -1 }, |
| "inputs": { "data": { "dtype": "uint32", "shape": [2, 3, 4, 5, 6, 7] } }, |
| "outputs": { |
| "shape": { "dtype": "uint32", "shape": [3], "tolerance": 0, "data": { "kind": "values", "values": [4, 5, 6] } } |
| } |
| }, |
| { |
| "name": "rank7_full_shape", |
| "provenance": { |
| "source": "onnx spec: Shape returns the input tensor dimensions", |
| "notes": "Small rank-7 sentinel. ORT CPU returns [1,2,1,3,1,4,1]; full_shape is rank-agnostic, and rank8_full_shape covers the band above it." |
| }, |
| "inputs": { "data": { "dtype": "float32", "shape": [1, 2, 1, 3, 1, 4, 1] } }, |
| "outputs": { |
| "shape": { |
| "dtype": "uint32", |
| "shape": [7], |
| "tolerance": 0, |
| "data": { "kind": "values", "values": [1, 2, 1, 3, 1, 4, 1] } |
| } |
| } |
| }, |
| { |
| "name": "rank8_full_shape", |
| "inputs": { "data": { "dtype": "float32", "shape": [1, 2, 1, 3, 1, 4, 1, 2] } }, |
| "outputs": { |
| "shape": { |
| "dtype": "uint32", |
| "shape": [8], |
| "tolerance": 0, |
| "data": { "kind": "values", "values": [1, 2, 1, 3, 1, 4, 1, 2] } |
| } |
| } |
| } |
| ] |
| } |
|
|