code: def _init_text_embeddings(self, attr: str = "text"):
      if "embeddings" not in attr:
          attr += "_embeddings"
  
      module_config = self.config[attr]
      embedding_type = module_config.type
      embedding_kwargs = copy.deepcopy(module_config.params)
      self._update_text_embedding_args(embedding_kwargs)
      embedding = TextEmbedding(embedding_type, **embedding_kwargs)
      embeddings_out_dim = embedding.text_out_dim
  
      setattr(self, attr + "_out_dim", embeddings_out_dim)
      setattr(self, attr, embedding)
  
imports: import copy
  from typing import Any, Dict, List, Optional, Tuple
  import omegaconf
  import torch
  from mmf.common.registry import registry
  from mmf.models.base_model import BaseModel
  from mmf.modules.embeddings import PreExtractedEmbedding, TextEmbedding, TwoBranchEmbedding
  from mmf.modules.layers import BranchCombineLayer, ClassifierLayer
  from mmf.utils.build import build_image_encoder
  from mmf.utils.general import filter_grads
  from omegaconf import DictConfig
label_desc: Use image node_id 5 for calling the MoVieMcan obj's underlying member method code with example usage: obj._init_text_embeddings(attr) without return types