code: def lp_pool2d(
      input, norm_type, kernel_size, stride=None, ceil_mode=False
  ):
      data_format = "NCHW"
      padding = "VALID"
      if stride is None:
          stride = kernel_size
      out = ivy.avg_pool2d(
          ivy.pow(input, norm_type),
          kernel_size,
          stride,
          padding,
          data_format=data_format,
          ceil_mode=ceil_mode,
      )
      if not isinstance(kernel_size, int):
          kernel_mul = reduce(lambda x, y: x * y, kernel_size)
      else:
          kernel_mul = kernel_size
      p = ivy.divide(1.0, norm_type) if norm_type != 0 else 1.0
      return ivy.pow(ivy.multiply(out, kernel_mul), p).astype(
          input.dtype
      )
  
file_path: ivy/ivy/functional/frontends/torch/nn/functional/pooling_functions.py
imports: from functools import reduce
  import ivy
  from ivy import with_unsupported_dtypes
  from ivy.functional.frontends.torch.func_wrapper import to_ivy_arrays_and_back
label_desc: Use image node_id 8 for calling a global function with example usage: lp_pool2d(input, norm_type, kernel_size, stride, ceil_mode) and returns: ivy