code: def __init__(
      self,
      video_frames=2,
      kernel_size=(2, 14, 14),
      audio_kernel_size=16,
      audio_stride=10,
      out_embed_dim=768,
      vision_embed_dim=1024,
      vision_num_blocks=24,
      vision_num_heads=16,
      audio_embed_dim=768,
      audio_num_blocks=12,
      audio_num_heads=12,
      audio_num_mel_bins=128,
      audio_target_len=204,
      audio_drop_path=0.1,
      text_embed_dim=768,
      text_num_blocks=12,
      text_num_heads=12,
      depth_embed_dim=384,
      depth_kernel_size=16,
      depth_num_blocks=12,
      depth_num_heads=8,
      depth_drop_path=0.0,
      thermal_embed_dim=768,
      thermal_kernel_size=16,
      thermal_num_blocks=12,
      thermal_num_heads=12,
      thermal_drop_path=0.0,
      imu_embed_dim=512,
      imu_kernel_size=8,
      imu_num_blocks=6,
      imu_num_heads=8,
      imu_drop_path=0.7,
  ):
      super().__init__()
  
      self.modality_preprocessors = self._create_modality_preprocessors(
          video_frames,
          vision_embed_dim,
          kernel_size,
          text_embed_dim,
          audio_embed_dim,
          audio_kernel_size,
          audio_stride,
          audio_num_mel_bins,
          audio_target_len,
          depth_embed_dim,
          depth_kernel_size,
          thermal_embed_dim,
          thermal_kernel_size,
          imu_embed_dim,
      )
  
      self.modality_trunks = self._create_modality_trunks(
          vision_embed_dim,
          vision_num_blocks,
          vision_num_heads,
          text_embed_dim,
          text_num_blocks,
          text_num_heads,
          audio_embed_dim,
          audio_num_blocks,
          audio_num_heads,
          audio_drop_path,
          depth_embed_dim,
          depth_num_blocks,
          depth_num_heads,
          depth_drop_path,
          thermal_embed_dim,
          thermal_num_blocks,
          thermal_num_heads,
          thermal_drop_path,
          imu_embed_dim,
          imu_num_blocks,
          imu_num_heads,
          imu_drop_path,
      )
  
      self.modality_heads = self._create_modality_heads(
          out_embed_dim,
          vision_embed_dim,
          text_embed_dim,
          audio_embed_dim,
          depth_embed_dim,
          thermal_embed_dim,
          imu_embed_dim,
      )
  
      self.modality_postprocessors = (
          self._create_modality_postprocessors(out_embed_dim)
      )
  
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 1 to create a new ImageBindModel object from inherited base classes: nn with example: obj = ImageBindModel(video_frames, kernel_size, audio_kernel_size, audio_stride, out_embed_dim, vision_embed_dim, vision_num_blocks, vision_num_heads, audio_embed_dim, audio_num_blocks, audio_num_heads, audio_num_mel_bins, audio_target_len, audio_drop_path, text_embed_dim, text_num_blocks, text_num_heads, depth_embed_dim, depth_kernel_size, depth_num_blocks, depth_num_heads, depth_drop_path, thermal_embed_dim, thermal_kernel_size, thermal_num_blocks, thermal_num_heads, thermal_drop_path, imu_embed_dim, imu_kernel_size, imu_num_blocks, imu_num_heads, imu_drop_path)