code: def build(self, input_shape):
      logging.info(
          f"{self.__class__.__name__} input_shape : {input_shape}"
      )
      _, time, feat, channels = input_shape["inputs"].as_list()
      self.speech = tf.keras.layers.InputLayer(
          input_shape=(None, time, feat, channels), name="speech"
      )
      self.text = tf.keras.layers.InputLayer(
          input_shape=(None, self.max_text_len), name="text"
      )
      self.reshape1 = tf.keras.layers.Reshape(
          (time, feat * channels), input_shape=(time, feat, channels)
      )
      self.concatenate = tf.keras.layers.Concatenate()
      self.reshape2 = tf.keras.layers.Reshape(
          (self.max_text_len, self.hidden_dim),
          input_shape=(-1, self.hidden_dim),
      )
      self.built = True
  
file_path: delta/delta/models/multimodal_cls_model.py
imports: import numpy
  from absl import logging
  import delta.compat
  import delta.layers
  from delta.models.base_model import Model
  from delta.utils.register import registers
  from delta.layers.utils import get_expand_pad_mask
  import pickle
label_desc: Use image node_id 2 for calling the AlignClassModel obj's underlying member method code with example usage: obj.build(input_shape) without return types