code: def _pooling_output_shape(
      input_size, kernel_size, pad_l, pad_r, stride, dilation, ceil_mode
  ):
      """
      Generates output shape along a single dimension following conventions here:
      https://github.com/pytorch/pytorch/blob/b0424a895c878cb865947164cb0ce9ce3c2e73ef/aten/src/ATen/native/Pool.h#L24-L38
      """
      numerator = (
          input_size + pad_l + pad_r - dilation * (kernel_size - 1) - 1
      )
      if ceil_mode:
          numerator += stride - 1
  
      output_size = numerator // stride + 1
  
      # ensure that the last pooling starts inside the image
      # needed to avoid problems in ceil mode
      if ceil_mode and (output_size - 1) * stride >= input_size + pad_l:
          output_size -= 1
  
      return output_size
  
file_path: CrypTen/crypten/common/functions/pooling.py
imports: import math
  import torch
label_desc: Use image node_id 6 for calling a global function with example usage: _pooling_output_shape(input_size, kernel_size, pad_l, pad_r, stride, dilation, ceil_mode) and returns: output_size