code: def ifft2(
      x,
      shape=None,
      axes=(-2, -1),
      overwrite_x=False,
      planner_effort=None,
      threads=None,
      auto_align_input=True,
      auto_contiguous=True,
  ):
      """
      Perform a 2D inverse FFT.
  
      The first three arguments are as per :func:`scipy.fftpack.ifft2`;
      the rest of the arguments are documented in the
      :ref:`additional argument docs <interfaces_additional_args>`.
  
      Warning: `scipy.fftpack` is considered legacy, new code should
      use `scipy.fft` instead.
  
      """
      planner_effort = _default_effort(planner_effort)
      threads = _default_threads(threads)
      shape = _good_shape(x, shape, axes)
      return numpy_fft.ifft2(
          x,
          shape,
          axes,
          None,
          overwrite_x,
          planner_effort,
          threads,
          auto_align_input,
          auto_contiguous,
      )
  
imports: import itertools
  import math
  from numbers import Number
  import operator
  from .None import numpy_fft
  from ..builders._utils import _default_effort, _default_threads, _cook_nd_args
  from ._utils import _Xfftn
  import numpy
  from scipy.fftpack import diff, tilbert, itilbert, hilbert, ihilbert, cs_diff, sc_diff, ss_diff, cc_diff, shift, fftshift, ifftshift, fftfreq, rfftfreq, convolve
  from ..pyfftw import next_fast_len
label_desc: Use image node_id 7 for calling a global function with example usage: ifft2(x, shape, axes, overwrite_x, planner_effort, threads, auto_align_input, auto_contiguous) and returns: numpy_fft