{ "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 } } } ] }