code: def _mae_forward_decoder(self, x, ids_restore, mask, thw):
      # embed tokens
      x = self.decoder_embed(x)
      T, H, W = self.T, self.H, self.W
      B, N, C = x.shape
  
      s = 1 if self.cls_embed_on else 0
  
      # append mask tokens to sequence
      mask_tokens = self.mask_token.repeat(
          B, T * H * W + s - x.shape[1], 1
      )  # + s: no cls token
      x_ = torch.cat([x[:, s:, :], mask_tokens], dim=1)  # no cls token
      if self.cfg.MASK.PER_FRAME_MASKING:
          x_ = x_.view([B * T, H * W, C])
      x_ = torch.gather(
          x_,
          dim=1,
          index=ids_restore.unsqueeze(-1).repeat(1, 1, x_.shape[2]),
      )  # unshuffle
      if self.cfg.MASK.PER_FRAME_MASKING:
          x_ = x_.view([B, T * H * W, C])
      x = torch.cat([x[:, :s, :], x_], dim=1)  # append cls token
  
      if self.sep_pos_embed_decoder:
          pos_embed = self.dec_pos_embed_spatial.repeat(
              1, self.patch_dims[0], 1
          ) + torch.repeat_interleave(
              self.dec_pos_embed_temporal,
              self.patch_dims[1] * self.patch_dims[2],
              dim=1,
          )
          pos_embed = pos_embed.expand(x.shape[0], -1, -1)
          if self.cls_embed_on:
              pos_embed = torch.cat(
                  [
                      self.dec_pos_embed_class.expand(
                          pos_embed.shape[0], -1, -1
                      ),
                      pos_embed,
                  ],
                  1,
              )
          x += pos_embed
      else:
          # add pos embed
          x = x + self.decoder_pos_embed
  
      pixel_outputs = self.pred_head(
          [x],
          [mask.to(torch.bool)],
          return_all=self.cfg.VIS_MASK.ENABLE,
          thw=thw,
      )
  
      return pixel_outputs
  
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 13 for calling the MaskMViT obj's underlying member method code with example usage: obj._mae_forward_decoder(x, ids_restore, mask, thw) and returns: pixel_outputs