class_docstr: Base class for multi-modal image-text data
code: def get_trainable_parameters(
      self,
      weight_decay: Optional[float] = 0.0,
      no_decay_bn_filter_bias: Optional[bool] = False,
      *args,
      **kwargs,
  ):
      (
          image_param_list,
          image_lr_mult,
      ) = self.image_encoder.get_trainable_parameters(
          weight_decay=weight_decay,
          no_decay_bn_filter_bias=no_decay_bn_filter_bias,
          module_name="image_encoder.",
          *args,
          **kwargs,
      )
      # The learning rate list from image encoder returns 1.0 as a LR multiplier.
      # Update the learning rate to the specified value.
      image_lr_mult = [self.lr_multiplier_img_encoder] * len(
          image_lr_mult
      )
  
      (
          text_param_list,
          text_lr_mult,
      ) = self.text_encoder.get_trainable_parameters(
          weight_decay=weight_decay,
          no_decay_bn_filter_bias=no_decay_bn_filter_bias,
          module_name="text_encoder.",
          *args,
          **kwargs,
      )
      # The learning rate list from text encoder returns 1.0 as a LR multiplier.
      # Update the learning rate to the specified value.
      text_lr_mult = [self.lr_multiplier_text_encoder] * len(
          text_lr_mult
      )
  
      # We need to add the logit scale
      logit_scale_param_list = [
          {
              "params": [self.logit_scale],
              "weight_decay": 0.0,
              "param_names": ["logit_scale"],
          }
      ]
      logit_scale_lr_mult = [1.0] * len(logit_scale_param_list)
  
      return (
          image_param_list + text_param_list + logit_scale_param_list,
          image_lr_mult + text_lr_mult + logit_scale_lr_mult,
      )
  
imports: import argparse
  import math
  from typing import Dict, Optional
  import torch
  from torch import Tensor, nn
  from cvnets.image_projection_layers import build_image_projection_head
  from cvnets.image_projection_layers.base_image_projection import get_in_feature_dimension
  from cvnets.models import MODEL_REGISTRY, BaseAnyNNModel, get_model
  from cvnets.models.classification.base_image_encoder import BaseImageEncoder
  from cvnets.models.multi_modal_img_text.base_multi_modal_img_text import BaseMultiModalImageText
  from cvnets.text_encoders import BaseTextEncoder, build_text_encoder
  from utils import logger
label_desc: Use image node_id 4 for calling the CLIP obj's underlying member method code with example usage: obj.get_trainable_parameters(weight_decay, no_decay_bn_filter_bias) and returns: unknown,  unknown