code: def _mae_forward(self, imgs, mask_ratio=0.75, mask=None):
      latent, mask, ids_restore, thw = self._mae_forward_encoder(
          imgs, mask_ratio, mask
      )
      pred = self._mae_forward_decoder(latent, ids_restore, mask, thw)
      labels = []
      if self.pred_pixel_wt:
          if self.use_2d_patch:
              labels += self._get_pixel_label_2d(
                  imgs.detach(),
                  [mask.to(torch.bool)],
                  norm=self.cfg.MASK.NORM_PRED_PIXEL,
              )
          else:
              labels += self._get_pixel_label_3d(
                  imgs.detach(),
                  [mask.to(torch.bool)],
                  time_stride_loss=self.cfg.MASK.TIME_STRIDE_LOSS,
                  norm=self.cfg.MASK.NORM_PRED_PIXEL,
              )
      if self.pred_hog_wt:
          if self.use_2d_patch:
              labels += self._get_hog_label_2d(
                  imgs.detach(), [mask.to(torch.bool)]
              )
          else:
              labels += self._get_hog_label_3d(
                  imgs.detach(), [mask.to(torch.bool)]
              )
  
      self.counter += 1
      if self.cfg.VIS_MASK.ENABLE:
          return self._mae_visualize(imgs, pred, mask)
      return pred, labels
  
imports: import math
  from functools import partial
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.nn.init import trunc_normal_
  import slowfast.utils.logging
  import slowfast.utils.misc
  from slowfast.models import head_helper
  from slowfast.models.attention import attention_pool
  from slowfast.models.utils import calc_mvit_feature_geometry
  from slowfast.models.video_model_builder import MViT
  from .None import head_helper, operators, resnet_helper, stem_helper
  from .build import MODEL_REGISTRY
label_desc: Use image node_id 14 for calling the MaskMViT obj's underlying member method code with example usage: obj._mae_forward(imgs, mask_ratio, mask) and returns: pred,  labels, self