code: def adaptive_max_pool2d(self, output_size, return_indices=False):
      r"""Applies a 2D adaptive max pooling over an input signal composed of
      several input planes.
  
      See :class:`~torch.nn.AdaptiveMaxPool2d` for details and output shape.
  
      Args:
          output_size: the target output size (single integer or
              double-integer tuple)
          return_indices: whether to return pooling indices. Default: ``False``
      """
      if output_size is None or output_size[0] is None:
          output_size = self.shape[-2:]
  
      if self.shape[-2:] == output_size:
          if return_indices:
              return self.clone(), self.new(
                  torch.ones(self.size() + torch.Size(output_size))
              )
          return self.clone()
  
      resized_input, args, kwargs = _adaptive_pool2d_helper(
          self, output_size, reduction="max"
      )
      return resized_input.max_pool2d(
          *args, **kwargs, return_indices=return_indices
      )
  
file_path: CrypTen/crypten/common/functions/pooling.py
imports: import math
  import torch
label_desc: Use image node_id 4 for calling a global function with example usage: adaptive_max_pool2d(output_size, return_indices) and returns: resized_input, self, self,  self