code: def _create_modality_heads(
      self,
      out_embed_dim,
      vision_embed_dim,
      text_embed_dim,
      audio_embed_dim,
      depth_embed_dim,
      thermal_embed_dim,
      imu_embed_dim,
  ):
      modality_heads = {}
  
      modality_heads[ModalityType.VISION] = nn.Sequential(
          nn.LayerNorm(normalized_shape=vision_embed_dim, eps=1e-6),
          SelectElement(index=0),
          nn.Linear(vision_embed_dim, out_embed_dim, bias=False),
      )
  
      modality_heads[ModalityType.TEXT] = SelectEOSAndProject(
          proj=nn.Sequential(
              nn.LayerNorm(normalized_shape=text_embed_dim, eps=1e-6),
              nn.Linear(text_embed_dim, out_embed_dim, bias=False),
          )
      )
  
      modality_heads[ModalityType.AUDIO] = nn.Sequential(
          nn.LayerNorm(normalized_shape=audio_embed_dim, eps=1e-6),
          SelectElement(index=0),
          nn.Linear(audio_embed_dim, out_embed_dim, bias=False),
      )
  
      modality_heads[ModalityType.DEPTH] = nn.Sequential(
          nn.LayerNorm(normalized_shape=depth_embed_dim, eps=1e-6),
          SelectElement(index=0),
          nn.Linear(depth_embed_dim, out_embed_dim, bias=False),
      )
  
      modality_heads[ModalityType.THERMAL] = nn.Sequential(
          nn.LayerNorm(normalized_shape=thermal_embed_dim, eps=1e-6),
          SelectElement(index=0),
          nn.Linear(thermal_embed_dim, out_embed_dim, bias=False),
      )
  
      modality_heads[ModalityType.IMU] = nn.Sequential(
          nn.LayerNorm(normalized_shape=imu_embed_dim, eps=1e-6),
          SelectElement(index=0),
          nn.Dropout(p=0.5),
          nn.Linear(imu_embed_dim, out_embed_dim, bias=False),
      )
  
      return nn.ModuleDict(modality_heads)
  
file_path: imagebind/imagebind/models/imagebind_model.py
imports: import os
  from functools import partial
  from types import SimpleNamespace
  import torch
  import torch.nn
  from imagebind.models.helpers import EinOpsRearrange, LearnableLogitScaling, Normalize, SelectElement, SelectEOSAndProject
  from imagebind.models.multimodal_preprocessors import AudioPreprocessor, IMUPreprocessor, PadIm2Video, PatchEmbedGeneric, RGBDTPreprocessor, SpatioTemporalPosEmbeddingHelper, TextPreprocessor, ThermalPreprocessor
  from imagebind.models.transformer import MultiheadAttention, SimpleTransformer
label_desc: Use image node_id 4 for calling the ImageBindModel obj's underlying member method code with example usage: obj._create_modality_heads(out_embed_dim, vision_embed_dim, text_embed_dim, audio_embed_dim, depth_embed_dim, thermal_embed_dim, imu_embed_dim) and returns: nn