code: def _run(  # type: ignore
      self,
      X,
      W,
      B=None,
      auto_pad=None,
      dilations=None,
      group=None,
      kernel_shape=None,
      pads=None,
      strides=None,
  ):
      if len(X.shape) < 3:  # noqa: PLR2004
          raise ValueError(
              f"X must have at least 3 dimensions but its shape is {X.shape}."
          )
      return (
          # _conv_implementation(
          _conv_implementation_im2col(
              X,
              W,
              B,
              auto_pad,
              dilations,
              group,
              kernel_shape,
              pads,
              strides,
          ).astype(X.dtype),
      )
  
file_path: onnx/onnx/reference/ops_optimized/op_conv_optimized.py
imports: import numpy
  from onnx.reference.op_run import OpRun
label_desc: Use image node_id 1 for calling the Conv obj's underlying member method code with example usage: obj._run(X, W, B, auto_pad, dilations, group, kernel_shape, pads, strides) and returns: _conv_implementation_im2col