code: def make_node(self, a, s=None):
      a = as_tensor_variable(a)
      if a.ndim < 3:
          raise TypeError(
              f"{self.__class__.__name__}: input must have dimension >= 3,  with "
              + "first dimension batches and last real/imag parts"
          )
  
      if s is None:
          s = a.shape[1:-1]
          s = set_subtensor(s[-1], (s[-1] - 1) * 2)
          s = as_tensor_variable(s)
      else:
          s = as_tensor_variable(s)
          if s.dtype not in integer_dtypes:
              raise TypeError(
                  "%s: length of the transformed axis must be"
                  " of type integer" % self.__class__.__name__
              )
      return Apply(self, [a, s], [self.output_type(a)()])
  
imports: import numpy
  from pytensor.gradient import DisconnectedType
  from pytensor.graph.basic import Apply
  from pytensor.graph.op import Op
  from pytensor.tensor.basic import as_tensor_variable
  from pytensor.tensor.math import sqrt
  from pytensor.tensor.subtensor import set_subtensor
  from pytensor.tensor.type import TensorType, integer_dtypes
label_desc: Use image node_id 2 for calling the IRFFTOp obj's underlying member method code with example usage: obj.make_node(a, s) and returns: Apply