code: def get_optimizer_parameters(self, config):
      if hasattr(self.encoder, "get_optimizer_parameters"):
          params = self.encoder.get_optimizer_parameters(config)
      else:
          params = [{"params": self.encoder.parameters()}]
      params += get_bert_configured_parameters(self.text_embeddings)
      params += get_bert_configured_parameters(self.heads_dict)
      params += [{"params": self.image_embeddings.parameters()}]
      return params
  
imports: import collections.abc
  import logging
  from dataclasses import dataclass
  from typing import Any, Dict, List, Optional, Tuple
  import torch
  from mmf.common.registry import registry
  from mmf.models.base_model import BaseModel
  from mmf.models.transformers.heads.utils import build_heads_dict
  from mmf.modules.encoders import TransformerEncoder, ViTEncoder
  from mmf.modules.losses import MMFLoss
  from mmf.utils.build import build_encoder
  from mmf.utils.modeling import get_bert_configured_parameters
  from omegaconf import MISSING, OmegaConf
  from torch import nn, Tensor
label_desc: Use image node_id 6 for calling the ViLT obj's underlying member method code with example usage: obj.get_optimizer_parameters(config) and returns: params