code: def export_resize_downsample_scales_linear_half_pixel_symmetric() -> (
      None
  ):
      node = onnx.helper.make_node(
          "Resize",
          inputs=["X", "", "scales"],
          outputs=["Y"],
          mode="linear",
          coordinate_transformation_mode="half_pixel_symmetric",
      )
  
      data = np.array([[[[1, 2, 3, 4]]]], dtype=np.float32)
      scales = np.array([1.0, 1.0, 1.0, 0.6], dtype=np.float32)
  
      # [[[[1.6666667, 3.3333333]]]]
      output = interpolate_nd(
          data,
          lambda x, _: linear_coeffs(x),
          scale_factors=scales,
          coordinate_transformation_mode="half_pixel_symmetric",
      ).astype(np.float32)
  
      expect(
          node,
          inputs=[data, scales],
          outputs=[output],
          name="test_resize_downsample_scales_linear_half_pixel_symmetric",
      )
  
imports: import numpy
  import onnx
  from onnx.backend.test.case.base import Base
  from onnx.backend.test.case.node import expect
  from onnx.reference.ops.op_resize import _cubic_coeffs
  from onnx.reference.ops.op_resize import _cubic_coeffs_antialias
  from onnx.reference.ops.op_resize import _interpolate_nd
  from onnx.reference.ops.op_resize import _linear_coeffs
  from onnx.reference.ops.op_resize import _linear_coeffs_antialias
  from onnx.reference.ops.op_resize import _nearest_coeffs
label_desc: Use image node_id 38 for calling the Resize obj's underlying member method code with example usage: obj.export_resize_downsample_scales_linear_half_pixel_symmetric() without return types