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.reshape = layers.Reshape(
          (time, feat * channels), input_shape=(time, feat, channels)
      )
      self.lstm1 = layers.Bidirectional(
          layers.LSTM(512, return_sequences=True)
      )
      self.lstm2 = layers.Bidirectional(
          layers.LSTM(256, return_sequences=False)
      )
      self.dense1 = layers.Dense(512, activation="relu")
      self.dense2 = layers.Dense(4)
      self.drop1 = layers.Dropout(rate=0.2)
  
      self.built = True
  
imports: import numpy
  from absl import logging
  import delta.compat
  from tensorflow.python.keras import backend
  from delta.models.base_model import Model
  from delta.layers.base_layer import Layer
  from delta import utils
  from delta.utils.register import registers
label_desc: Use image node_id 2 for calling the EmoBLstmModel obj's underlying member method code with example usage: obj.build(input_shape) without return types