code: def get_optimizer_parameters(self, config):
      base_lr = config.optimizer.params.lr
      bert_params = get_bert_configured_parameters(
          self.text_encoder, base_lr * 0.1
      )
      backbone_params = [
          {
              "params": filter_grads(self.image_encoder.parameters()),
              "lr": base_lr * 0.1,
          }
      ]
      rest_params = [
          {
              "params": filter_grads(self.image_proj.parameters()),
              "lr": base_lr,
          },
          {
              "params": filter_grads(self.text_proj.parameters()),
              "lr": base_lr,
          },
          {
              "params": filter_grads(self.image_pool.parameters()),
              "lr": base_lr,
          },
          {
              "params": filter_grads(self.text_pool.parameters()),
              "lr": base_lr,
          },
          {
              "params": filter_grads(
                  self.shared_transformer.parameters()
              ),
              "lr": base_lr,
          },
      ]
      training_parameters = bert_params + backbone_params + rest_params
  
      return training_parameters
  
imports: import math
  from copy import deepcopy
  from dataclasses import dataclass
  from typing import Any, Tuple
  import torch
  from mmf.common.registry import registry
  from mmf.models.base_model import BaseModel
  from mmf.modules.encoders import IdentityEncoder
  from mmf.modules.layers import AttnPool1d
  from mmf.utils.build import build_classifier_layer, build_image_encoder, build_text_encoder
  from mmf.utils.general import filter_grads
  from mmf.utils.modeling import get_bert_configured_parameters
  from mmf.utils.transform import transform_to_batch_sequence
  from omegaconf import MISSING
label_desc: Use image node_id 4 for calling the CMSharedTransformer obj's underlying member method code with example usage: obj.get_optimizer_parameters(config) and returns: training_parameters