class_docstr: Perform forward pass separately on each resolution input.
  The inputs corresponding to a single resolution are clubbed and single
  forward is run on the same resolution inputs. Hence we do several
  forward passes = number of different resolutions used. We then
  concatenate all the output features and run the head forward on these
  concatenated features.
code: def __init__(self, backbone, head):
      super(MultiCropWrapper, self).__init__()
      # disable layers dedicated to ImageNet labels classification
      # backbone.fc, backbone.head = torch.nn.Identity(), torch.nn.Identity()
      self.backbone = backbone
      self.head = head
  
imports: import math
  import apex
  import einops
  import torch
  import numpy
  import torch.nn.functional
  from torch.nn.init import trunc_normal_
  from megatron import get_args, print_rank_0
  from megatron.model.utils import get_linear_layer
  from megatron.model.vision.vit_backbone import VitBackbone
  from megatron.model.module import MegatronModule
  from megatron.model.vision.mit_backbone import mit_b5_avg
  from megatron.model.vision.esvit_swin_backbone import get_swin
label_desc: Use image node_id 1 to create a new MultiCropWrapper object from inherited base classes: MegatronModule with example: obj = MultiCropWrapper(backbone, head)