Xenova's picture
Xenova HF Staff
sync 2e7068faf55e
c0391df verified
Raw
History Blame
41 kB
{
"op": "ai.onnx.DeformConv",
"fixtureArrays": {
"onnx_backend_basic_deform_conv_without_padding_input_offset": [0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.10000000149011612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
},
"cases": [
{
"name": "group_aligned_offset_hoist_bias_mask",
"attrs": { "group": 2, "offset_group": 2, "pads": [1, 1, 1, 1] },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 4, 8, 8], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } },
"w": { "dtype": "float32", "shape": [4, 2, 3, 3], "data": { "kind": "cycle", "values": [0.1, -0.05, 0.025] } },
"offset": {
"dtype": "float32",
"shape": [1, 36, 8, 8],
"data": { "kind": "cycle", "values": [0.125, -0.25, 0.0, 0.25] }
},
"bias": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [0.1, -0.2, 0.3, -0.4] } },
"mask": { "dtype": "float32", "shape": [1, 18, 8, 8], "data": { "kind": "cycle", "values": [0.5, 0.75, 1.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 4, 8, 8], "tolerance": 0.00001 } }
},
{
"name": "group_aligned_offset_hoist_bias_mask_oc4",
"attrs": { "group": 2, "offset_group": 2, "pads": [1, 1, 1, 1] },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 8, 8, 8], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } },
"w": {
"dtype": "float32",
"shape": [8, 4, 3, 3],
"data": { "kind": "cycle", "values": [0.1, -0.05, 0.025, -0.0125] }
},
"offset": {
"dtype": "float32",
"shape": [1, 36, 8, 8],
"data": { "kind": "cycle", "values": [0.125, -0.25, 0.0, 0.25] }
},
"bias": { "dtype": "float32", "shape": [8], "data": { "kind": "cycle", "values": [0.1, -0.2, 0.3, -0.4] } },
"mask": { "dtype": "float32", "shape": [1, 18, 8, 8], "data": { "kind": "cycle", "values": [0.5, 0.75, 1.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 8, 8, 8], "tolerance": 0.00001 } }
},
{
"name": "group_aligned_offset_hoist_bias_mask_oc8",
"attrs": { "group": 2, "offset_group": 2, "pads": [1, 1, 1, 1] },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 8, 6, 6], "data": { "kind": "linspace", "start": -0.75, "end": 0.75 } },
"w": {
"dtype": "float32",
"shape": [16, 4, 3, 3],
"data": { "kind": "cycle", "values": [0.08, -0.04, 0.02, -0.01] }
},
"offset": {
"dtype": "float32",
"shape": [1, 36, 6, 6],
"data": { "kind": "cycle", "values": [0.125, -0.125, 0.0] }
},
"bias": { "dtype": "float32", "shape": [16], "data": { "kind": "cycle", "values": [0.1, -0.1, 0.05, -0.05] } },
"mask": { "dtype": "float32", "shape": [1, 18, 6, 6], "data": { "kind": "cycle", "values": [0.5, 0.75, 1.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 16, 6, 6], "tolerance": 0.00001 } }
},
{
"name": "group_aligned_offset_hoist_bias_mask_oc16",
"attrs": { "group": 1, "offset_group": 1, "pads": [1, 1, 1, 1] },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 4, 6, 6], "data": { "kind": "linspace", "start": -0.5, "end": 0.5 } },
"w": {
"dtype": "float32",
"shape": [16, 4, 3, 3],
"data": { "kind": "cycle", "values": [0.06, -0.03, 0.015, -0.0075] }
},
"offset": {
"dtype": "float32",
"shape": [1, 18, 6, 6],
"data": { "kind": "cycle", "values": [0.2, -0.1, 0.0] }
},
"bias": { "dtype": "float32", "shape": [16], "data": { "kind": "cycle", "values": [0.08, -0.08, 0.04, -0.04] } },
"mask": { "dtype": "float32", "shape": [1, 9, 6, 6], "data": { "kind": "cycle", "values": [0.6, 0.8, 1.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 16, 6, 6], "tolerance": 0.00001 } }
},
{
"name": "fractional_offset_preserves_subnormal_bilinear_sample_gpu_gap",
"provenance": {
"notes": "A fractional deformable offset performs bilinear interpolation; a positive subnormal contribution remains valid ONNX output and should not be flushed to zero."
},
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 1, 2, 2],
"data": { "kind": "values", "values": [4e-40, 0.0, 0.0, 0.0] }
},
"w": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 0.0, 0.0, 0.0] } },
"offset": {
"dtype": "float32",
"shape": [1, 8, 1, 1],
"data": { "kind": "values", "values": [0.5, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1, 1], "tolerance": 0 } },
"skipGpu": {
"category": "permanent",
"reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes f32 subnormals to zero (FTZ); subnormal-magnitude values cannot survive the GPU arithmetic path."
}
},
{
"name": "dispatch_cliff_channel_heavy_1x1",
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "constant", "value": 1.0 } },
"w": {
"dtype": "float32",
"shape": [8388608, 1, 1, 1],
"data": { "kind": "linspace", "start": -1.0, "end": 1.0 }
},
"offset": { "dtype": "float32", "shape": [1, 2, 1, 1], "data": { "kind": "constant", "value": 0.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 8388608, 1, 1], "tolerance": 0.00001 } }
},
{
"name": "zero_offsets_matches_conv",
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 1, 3, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] }
},
"w": {
"dtype": "float32",
"shape": [1, 1, 2, 2],
"data": { "kind": "values", "values": [1.0, 0.0, 0.0, -1.0] }
},
"offset": { "dtype": "float32", "shape": [1, 8, 2, 2], "data": { "kind": "constant", "value": 0.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "ort_asymmetric_padding_bias_mask",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.AsymmetricPadding"
},
"attrs": { "pads": [1, 0, 0, 1] },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [1, 8, 3, 3], "data": { "kind": "constant", "value": 0.0 } },
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "constant", "value": 0.0 } },
"mask": { "dtype": "float32", "shape": [1, 4, 3, 3], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [1, 1, 3, 3],
"tolerance": 0.00001,
"data": { "kind": "values", "values": [0.02, 0.02, 0.01, 0.04, 0.04, 0.02, 0.04, 0.04, 0.02] }
}
}
},
{
"name": "fractional_offsets_mask_bias",
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 1, 3, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] }
},
"w": {
"dtype": "float32",
"shape": [1, 1, 2, 2],
"data": { "kind": "values", "values": [0.25, 0.5, -0.75, 1.0] }
},
"offset": {
"dtype": "float32",
"shape": [1, 8, 2, 2],
"data": {
"kind": "values",
"values": [0.5, 0.0, 0.0, -0.5, 0.0, 0.5, -0.5, 0.0, 0.0, 0.25, 0.25, 0.0, -0.25, 0.0, 0.0, -0.25, 0.5, 0.5, 0.0, 0.0, 0.0, -0.5, -0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.5, -0.5, -0.5]
}
},
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.125] } },
"mask": {
"dtype": "float32",
"shape": [1, 4, 2, 2],
"data": {
"kind": "values",
"values": [1.0, 0.5, 0.75, 1.0, 0.5, 1.0, 1.0, 0.25, 1.0, 1.0, 0.5, 0.5, 0.25, 0.75, 1.0, 1.0]
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "out_of_bounds_offsets_zero_fill_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.OutOfBoundsSampling",
"notes": "Projection onto a 3x3 input with large positive offsets; it preserves ORT's out-of-bounds sampling-to-zero behavior."
},
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 1, 3, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] }
},
"w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [1.0] } },
"offset": { "dtype": "float32", "shape": [1, 2, 3, 3], "data": { "kind": "constant", "value": 10.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 3, 3], "tolerance": 0.00001 } }
},
{
"name": "mask_zeros_preserve_bias",
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0] } },
"w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [7.0] } },
"offset": { "dtype": "float32", "shape": [1, 2, 2, 2], "data": { "kind": "constant", "value": 0.0 } },
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.5] } },
"mask": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "constant", "value": 0.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "group2_offset_group2_zero_offsets",
"attrs": { "group": 2, "offset_group": 2 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 2, 2, 2],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 10.0, 20.0, 30.0, 40.0] }
},
"w": { "dtype": "float32", "shape": [2, 1, 1, 1], "data": { "kind": "values", "values": [2.0, -0.5] } },
"offset": { "dtype": "float32", "shape": [1, 4, 2, 2], "data": { "kind": "constant", "value": 0.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 2, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "ort_minimal_bilinear_bias_mask",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.MinimalBilinear"
},
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0] } },
"w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [1.0] } },
"offset": {
"dtype": "float32",
"shape": [1, 2, 2, 2],
"data": { "kind": "values", "values": [0.5, 0.0, 0.0, 0.0, 0.5, -1.0, 0.0, 0.0] }
},
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.0] } },
"mask": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "ort_forward_with_mask_and_bias_grouped",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.ForwardWithMaskAndBias"
},
"attrs": { "group": 2, "offset_group": 2 },
"inputs": {
"x": { "dtype": "float32", "shape": [2, 4, 3, 3], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [2, 2, 2, 2], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [2, 16, 2, 2], "data": { "kind": "constant", "value": 0.0 } },
"bias": { "dtype": "float32", "shape": [2], "data": { "kind": "values", "values": [0.5, -0.5] } },
"mask": { "dtype": "float32", "shape": [2, 8, 2, 2], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 2, 2, 2], "tolerance": 0.0001 } }
},
{
"name": "non_square_kernel_zero_offset_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.NonSquareKernel"
},
"attrs": { "kernel_shape": [2, 3] },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 4, 5], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [1, 1, 2, 3], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [1, 12, 3, 3], "data": { "kind": "constant", "value": 0.0 } },
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.0] } },
"mask": { "dtype": "float32", "shape": [1, 6, 3, 3], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 3, 3], "tolerance": 0.00001 } }
},
{
"name": "asymmetric_stride_zero_offset_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.AsymmetricStride"
},
"attrs": { "strides": [2, 1] },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 5, 4], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [1, 8, 2, 3], "data": { "kind": "constant", "value": 0.0 } },
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.0] } },
"mask": { "dtype": "float32", "shape": [1, 4, 2, 3], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 3], "tolerance": 0.00001 } }
},
{
"name": "dilation_gt1_zero_offset_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.DilationGt1"
},
"attrs": { "dilations": [2, 2] },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 5, 5], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [1, 8, 3, 3], "data": { "kind": "constant", "value": 0.0 } },
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.0] } },
"mask": { "dtype": "float32", "shape": [1, 4, 3, 3], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 3, 3], "tolerance": 0.00001 } }
},
{
"name": "decoupled_groups_offset_group1_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.DecoupledGroups"
},
"attrs": { "group": 2, "offset_group": 1 },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 4, 3, 3], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [2, 2, 2, 2], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [1, 8, 2, 2], "data": { "kind": "constant", "value": 0.0 } },
"bias": { "dtype": "float32", "shape": [2], "data": { "kind": "values", "values": [0.0, 0.0] } },
"mask": { "dtype": "float32", "shape": [1, 4, 2, 2], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 2, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "offset_at_pixel_centers_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.OffsetAtPixelCenters"
},
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0] } },
"w": {
"dtype": "float32",
"shape": [1, 1, 2, 2],
"data": { "kind": "values", "values": [0.25, 0.25, 0.25, 0.25] }
},
"offset": { "dtype": "float32", "shape": [1, 8, 1, 1], "data": { "kind": "constant", "value": 0.5 } },
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.0] } },
"mask": { "dtype": "float32", "shape": [1, 4, 1, 1], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1, 1], "tolerance": 0.00001 } }
},
{
"name": "tiny_offset_near_zero_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.TinyOffset"
},
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [1.0] } },
"w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [1.0] } },
"offset": {
"dtype": "float32",
"shape": [1, 2, 1, 1],
"data": { "kind": "values", "values": [0.000001, 0.000001] }
},
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.0] } },
"mask": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [1.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1, 1], "tolerance": 0.0001 } }
},
{
"name": "ort_opset22_fractional_offset",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.Opset22"
},
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0] } },
"w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [1.0] } },
"offset": {
"dtype": "float32",
"shape": [1, 2, 2, 2],
"data": { "kind": "values", "values": [0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0] }
},
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.0] } },
"mask": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "ort_groups_with_nonzero_offset",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_expected_gen.py",
"test": "DeformConvTest.GroupsWithNonZeroOffset",
"notes": "Expected values generated with torchvision.ops.deform_conv2d and materialized in deform_conv_op_test.cc."
},
"attrs": { "group": 2, "offset_group": 2 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 4, 3, 3],
"data": {
"kind": "values",
"values": [0.296112, 0.516562, 0.251671, 0.688557, 0.073972, 0.866522, 0.13658, 0.102479, 0.184056, 0.726447, 0.315254, 0.687107, 0.075635, 0.196638, 0.316412, 0.40174, 0.118568, 0.827395, 0.382084, 0.660494, 0.853572, 0.593153, 0.636725, 0.982629, 0.274495, 0.658376, 0.277542, 0.857325, 0.899328, 0.039014, 0.926823, 0.738757, 0.717884, 0.705837, 0.91565, 0.43398]
}
},
"w": {
"dtype": "float32",
"shape": [2, 2, 2, 2],
"data": {
"kind": "values",
"values": [-1.182045, -0.287745, -0.604301, 0.600237, -1.420473, -0.223828, 0.430555, -0.898857, -0.017858, 0.426403, -0.765741, -0.054514, -0.732053, 1.234742, 1.186221, -0.220099]
}
},
"offset": {
"dtype": "float32",
"shape": [1, 16, 2, 2],
"data": {
"kind": "values",
"values": [-0.388483, -0.934346, -0.499144, -1.086653, 0.962421, 0.249208, -0.484502, -2.092915, 0.098284, -0.093507, 0.266215, -0.585035, -0.343038, -0.682148, -0.988689, -1.70183, -1.22029, 1.313853, 1.0533, 0.138805, -0.204445, -2.268529, -0.913328, -0.420363, -0.659559, -0.797928, 0.183831, 0.229347, 0.617743, -0.287578, 0.821824, 0.151178, -0.044382, 1.623557, -2.322871, 1.087831, -0.063545, -0.448641, -1.27847, -1.144004, -0.15264, 0.116741, 0.44026, -1.446546, -0.558082, -0.051696, -0.908273, 0.350683, -0.394809, 0.489227, -0.216815, -1.747165, 1.722842, 0.773806, 0.40463, -1.646126, -0.595084, -0.711218, 0.622965, -1.372881, -0.128065, -1.283835, -0.29012, 1.276741]
}
},
"bias": { "dtype": "float32", "shape": [2], "data": { "kind": "values", "values": [0.983955, 0.204512] } },
"mask": {
"dtype": "float32",
"shape": [1, 8, 2, 2],
"data": {
"kind": "values",
"values": [-0.031861, -0.478956, 0.766809, 0.027468, 0.04747, -0.923866, -1.060737, -2.324446, -2.062818, 0.006375, -0.989555, 0.701609, -0.982238, 0.277031, 0.645495, -0.895681, 0.492753, -0.014078, -0.274663, -0.764091, -0.587157, 1.195165, -1.209575, -0.556008, -0.077105, 1.277377, -1.459629, -2.159528, -0.706709, -0.922245, 3.895372, -0.602697]
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 2, 2, 2], "tolerance": 0.0001 } }
},
{
"name": "ort_large_batch_bias_mask",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.LargeBatchSize"
},
"inputs": {
"x": { "dtype": "float32", "shape": [64, 1, 3, 3], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [64, 8, 2, 2], "data": { "kind": "constant", "value": 0.0 } },
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.0] } },
"mask": { "dtype": "float32", "shape": [64, 4, 2, 2], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [64, 1, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "ort_mask_with_zeros",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.MaskWithZeros"
},
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [1, 8, 2, 2], "data": { "kind": "constant", "value": 0.0 } },
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.0] } },
"mask": { "dtype": "float32", "shape": [1, 4, 2, 2], "data": { "kind": "constant", "value": 0.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "kernel7x7_uniform_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.Kernel7x7"
},
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 9, 9], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [1, 1, 7, 7], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [1, 98, 3, 3], "data": { "kind": "constant", "value": 0.0 } },
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.0] } },
"mask": { "dtype": "float32", "shape": [1, 49, 3, 3], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 3, 3], "tolerance": 0.00001 } }
},
{
"name": "group1_offset_group2_zero_offset_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.Group1OffsetGroup2"
},
"attrs": { "group": 1, "offset_group": 2 },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 4, 3, 3], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [2, 4, 2, 2], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [1, 16, 2, 2], "data": { "kind": "constant", "value": 0.0 } },
"bias": { "dtype": "float32", "shape": [2], "data": { "kind": "values", "values": [0.0, 0.0] } },
"mask": { "dtype": "float32", "shape": [1, 8, 2, 2], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 2, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "ort_optional_inputs_omitted_fractional_offsets",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.OptionalBiasOmitted",
"notes": "Adapted to omit both optional bias and unity mask; ONNX defaults make this equivalent to ORT's zero-bias, unit-mask minimal case."
},
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0] } },
"w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [1.0] } },
"offset": {
"dtype": "float32",
"shape": [1, 2, 2, 2],
"data": { "kind": "values", "values": [0.5, 0.0, 0.0, 0.0, 0.5, -1.0, 0.0, 0.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "ort_mask_present_bias_omitted",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.OptionalBiasOmitted",
"notes": "Exact optional-input ordering case: B is omitted while mask is present, so the ONNX node must keep an empty B slot."
},
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0] } },
"w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [1.0] } },
"offset": {
"dtype": "float32",
"shape": [1, 2, 2, 2],
"data": { "kind": "values", "values": [0.5, 0.0, 0.0, 0.0, 0.5, -1.0, 0.0, 0.0] }
},
"mask": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "constant", "value": 1.0 } }
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [1, 1, 2, 2],
"tolerance": 0.00001,
"data": { "kind": "values", "values": [2.5, 1.0, 3.0, 4.0] }
}
}
},
{
"name": "ort_bias_present_mask_omitted",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.ForwardNoMask",
"notes": "Covers the valid ONNX form where B is present but mask is omitted; mask defaults to one."
},
"inputs": {
"x": { "dtype": "float32", "shape": [1, 2, 3, 3], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [2, 2, 2, 2], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [1, 8, 2, 2], "data": { "kind": "constant", "value": 0.0 } },
"bias": { "dtype": "float32", "shape": [2], "data": { "kind": "values", "values": [0.0, 0.0] } }
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [1, 2, 2, 2],
"tolerance": 0.0001,
"data": { "kind": "values", "values": [0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08] }
}
}
},
{
"name": "ort_empty_batch_no_bias_no_mask",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.EmptyBatch",
"notes": "Adapted to omit optional zero bias and unity mask; output shape with N=0 is unchanged."
},
"inputs": {
"x": { "dtype": "float32", "shape": [0, 2, 3, 3], "data": { "kind": "values", "values": [] } },
"w": { "dtype": "float32", "shape": [2, 2, 2, 2], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [0, 8, 2, 2], "data": { "kind": "values", "values": [] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [0, 2, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "ort_output_pixels_tail_no_bias_no_mask",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.OutputPixelsNotMultipleOf8_AoSoATail",
"notes": "Adapted to omit optional zero bias and unity mask."
},
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [1, 2, 3, 3], "data": { "kind": "constant", "value": 0.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 3, 3], "tolerance": 0.00001 } }
},
{
"name": "ort_prime_batch_seven_no_bias_no_mask",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.PrimeBatchSizeSeven",
"notes": "Adapted to omit optional zero bias and unity mask."
},
"inputs": {
"x": { "dtype": "float32", "shape": [7, 1, 3, 3], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [7, 8, 2, 2], "data": { "kind": "constant", "value": 0.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [7, 1, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "ort_extreme_aspect_ratio_no_bias_no_mask",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.ExtremeAspectRatio",
"notes": "Adapted to omit optional zero bias and unity mask."
},
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 1, 100], "data": { "kind": "constant", "value": 0.1 } },
"w": { "dtype": "float32", "shape": [1, 1, 1, 3], "data": { "kind": "constant", "value": 0.1 } },
"offset": { "dtype": "float32", "shape": [1, 6, 1, 98], "data": { "kind": "constant", "value": 0.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1, 98], "tolerance": 0.00001 } }
},
{
"name": "ort_chunk_tail_partial_grouped_identity_no_bias_no_mask",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/deform_conv_op_test.cc",
"test": "DeformConvTest.ChunkTailPartialWithGroups"
},
"attrs": { "group": 2, "offset_group": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [33, 2, 1, 1],
"data": {
"kind": "values",
"values": [1.0, 2000.0, 2.0, 2001.0, 3.0, 2002.0, 4.0, 2003.0, 5.0, 2004.0, 6.0, 2005.0, 7.0, 2006.0, 8.0, 2007.0, 9.0, 2008.0, 10.0, 2009.0, 11.0, 2010.0, 12.0, 2011.0, 13.0, 2012.0, 14.0, 2013.0, 15.0, 2014.0, 16.0, 2015.0, 17.0, 2016.0, 18.0, 2017.0, 19.0, 2018.0, 20.0, 2019.0, 21.0, 2020.0, 22.0, 2021.0, 23.0, 2022.0, 24.0, 2023.0, 25.0, 2024.0, 26.0, 2025.0, 27.0, 2026.0, 28.0, 2027.0, 29.0, 2028.0, 30.0, 2029.0, 31.0, 2030.0, 32.0, 2031.0, 33.0, 2032.0]
}
},
"w": { "dtype": "float32", "shape": [2, 1, 1, 1], "data": { "kind": "values", "values": [1.0, 1.0] } },
"offset": { "dtype": "float32", "shape": [33, 2, 1, 1], "data": { "kind": "constant", "value": 0.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [33, 2, 1, 1], "tolerance": 0.00001 } }
},
{
"name": "onnx_backend_basic_deform_conv_without_padding",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_basic_deform_conv_without_padding"
},
"attrs": {},
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 1, 3, 3],
"data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
},
"w": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0] } },
"offset": {
"dtype": "float32",
"shape": [1, 8, 2, 2],
"data": {
"kind": "values",
"values": { "$ref": "#/fixtureArrays/onnx_backend_basic_deform_conv_without_padding_input_offset" }
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2], "tolerance": 0.0001 } }
},
{
"name": "onnx_backend_basic_deform_conv_with_padding",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_basic_deform_conv_with_padding" },
"attrs": { "pads": [1, 1, 1, 1] },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 1, 3, 3],
"data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
},
"w": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0] } },
"offset": {
"dtype": "float32",
"shape": [1, 8, 4, 4],
"data": {
"kind": "values",
"values": [0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.10000000149011612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 4, 4], "tolerance": 0.0001 } }
},
{
"name": "onnx_backend_deform_conv_with_mask_bias",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_deform_conv_with_mask_bias" },
"attrs": {},
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 1, 3, 3],
"data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
},
"w": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0] } },
"offset": {
"dtype": "float32",
"shape": [1, 8, 2, 2],
"data": {
"kind": "values",
"values": { "$ref": "#/fixtureArrays/onnx_backend_basic_deform_conv_without_padding_input_offset" }
}
},
"bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [1.0] } },
"mask": {
"dtype": "float32",
"shape": [1, 4, 2, 2],
"data": {
"kind": "values",
"values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.20000000298023224, 1.0, 1.0, 1.0, 1.0]
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2], "tolerance": 0.0001 } }
},
{
"name": "onnx_backend_deform_conv_with_multiple_offset_groups",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_deform_conv_with_multiple_offset_groups"
},
"attrs": { "offset_group": 2 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 2, 3, 3],
"data": {
"kind": "values",
"values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0]
}
},
"w": {
"dtype": "float32",
"shape": [1, 2, 2, 2],
"data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] }
},
"offset": {
"dtype": "float32",
"shape": [1, 16, 2, 2],
"data": {
"kind": "values",
"values": [0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.10000000149011612, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2], "tolerance": 0.0001 } }
},
{
"name": "stacked_padH_and_padTop_no_bias_no_mask",
"attrs": { "pads": [2, 0, 1, 0] },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 1, 3, 3],
"data": { "kind": "fillFloat32", "sinStep": 0.5, "cosStep": 0.7, "scale": 1.0 }
},
"w": {
"dtype": "float32",
"shape": [1, 1, 2, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.3, "cosStep": 0.9, "scale": 0.5 }
},
"offset": { "dtype": "float32", "shape": [1, 8, 5, 2], "data": { "kind": "constant", "value": 0.0 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1, 5, 2], "tolerance": 0.00001 } }
},
{
"name": "bilinear_exact_lower_oob_boundary",
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [5.0] } },
"w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [1.0] } },
"offset": { "dtype": "float32", "shape": [1, 2, 1, 1], "data": { "kind": "values", "values": [-1.0, 0.0] } }
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [1, 1, 1, 1],
"tolerance": 0,
"data": { "kind": "values", "values": [0.0] }
}
}
},
{
"name": "bilinear_exact_upper_oob_boundary",
"inputs": {
"x": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0] } },
"w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [1.0] } },
"offset": {
"dtype": "float32",
"shape": [1, 2, 2, 2],
"data": { "kind": "values", "values": [2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0] }
}
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [1, 1, 2, 2],
"tolerance": 0,
"data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0] }
}
}
},
{
"name": "group_aligned_offset_hoist_plain_oc4",
"attrs": { "group": 2, "offset_group": 2, "pads": [1, 1, 1, 1] },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 8, 8, 8], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } },
"w": {
"dtype": "float32",
"shape": [8, 4, 3, 3],
"data": { "kind": "cycle", "values": [0.1, -0.05, 0.025, -0.0125] }
},
"offset": {
"dtype": "float32",
"shape": [1, 36, 8, 8],
"data": { "kind": "cycle", "values": [0.125, -0.25, 0.0, 0.25] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 8, 8, 8], "tolerance": 0.00001 } }
}
]
}