code: def flatten_for_bert(
      self, sample_list: Dict[str, Tensor]
  ) -> Dict[str, Tensor]:
      to_be_flattened = [
          "input_ids",
          "token_type_ids",
          "input_mask",
          "image_mask",
      ]
      to_be_flattened_dim = ["visual_embeddings"]
  
      if self.training_head_type == "pretraining":
          to_be_flattened.append("masked_lm_labels")
  
      # We want to convert everything into: batch x sequence_length x (dim).
      flattened = self.flatten(
          sample_list, to_be_flattened, to_be_flattened_dim
      )
      return flattened
  
imports: import os
  from copy import deepcopy
  from typing import Dict, List, Optional, Tuple
  import torch
  from mmf.common.registry import registry
  from mmf.models import BaseModel
  from mmf.modules.embeddings import BertVisioLinguisticEmbeddings
  from mmf.modules.hf_layers import BertEncoderJit, BertLayerJit
  from mmf.utils.configuration import get_mmf_cache_dir
  from mmf.utils.modeling import get_optimizer_parameters_for_bert
  from mmf.utils.torchscript import getattr_torchscriptable
  from mmf.utils.transform import transform_to_batch_sequence, transform_to_batch_sequence_dim
  from omegaconf import OmegaConf
  from torch import nn, Tensor
label_desc: Use image node_id 7 for calling the VisualBERT obj's underlying member method code with example usage: obj.flatten_for_bert(sample_list) and returns: flattened