code: def rfft2(a, s=None, axes=(-2, -1), norm=None):
      """
      Compute the 2-dimensional FFT of a real tensor.
  
      Parameters
      ----------
      a : array_like
          Input tensor, taken to be real.
      s : sequence of ints, optional
          Shape of the FFT.
      axes : sequence of ints, optional
          Axes over which to compute the FFT.
      norm : {None, "ortho"}, optional
          Normalization mode (see `mt.fft`). Default is None.
  
      Returns
      -------
      out : Tensor
          The result of the real 2-D FFT.
  
      See Also
      --------
      rfftn : Compute the N-dimensional discrete Fourier Transform for real
              input.
  
      Notes
      -----
      This is really just `rfftn` with different default behavior.
      For more details see `rfftn`.
  
      """
      if len(axes) != 2:
          raise ValueError("axes length should be 2")
      a = astensor(a)
      axes = validate_fftn(a, s=s, axes=axes, norm=norm)
      op = TensorRFFT2(
          shape=s, axes=axes, norm=norm, dtype=np.dtype(np.complex_)
      )
      return op(a)
  
file_path: mars/mars/tensor/fft/rfft2.py
imports: import numpy
  from ...None import opcodes
  from ..datasource import tensor
  from .core import TensorRealFFTNMixin, validate_fftn, TensorRealFFTN
label_desc: Use image node_id 1 for calling a global function with example usage: rfft2(a, s, axes, norm) and returns: op