class_docstr: main model 
class_docstr_tok: ["main","model"]
code: def build(self, input_shape):
      batch, time, feat, channels = input_shape.as_list()
      del batch
      stride = 3
      self.cnn1 = tf.keras.layers.Conv2D(
          filters=channels * 2,
          kernel_size=(5, 3),
          strides=(2, 1),
          padding="same",
          use_bias=True,
      )
      self.cnn2 = tf.keras.layers.Conv2D(
          filters=channels * 2,
          kernel_size=(5, 3),
          strides=(stride, 1),
          padding="same",
          use_bias=True,
      )
      self.cnn3 = tf.keras.layers.Conv2D(
          filters=channels * 2,
          kernel_size=(5, 3),
          strides=(2, 1),
          padding="same",
          use_bias=True,
      )
      time /= 2 * stride * 2
  
      def tanh_sig(x):
          x1, x2 = tf.split(x, 2, axis=-1)
          return tf.nn.tanh(x1) * tf.nn.sigmoid(x2)
  
      # pylint: disable=unnecessary-lambda
      self.tanh_sig = tf.keras.layers.Lambda(lambda x: tanh_sig(x))
  
      self.reshape = tf.keras.layers.Reshape(
          (int(time), int(feat * channels))
      )
      self.cnn4 = tf.keras.layers.Conv1D(
          filters=int(feat * channels / 2),
          kernel_size=3,
          strides=1,
          padding="same",
          use_bias=True,
      )
      self.cnn5 = tf.keras.layers.Conv1D(
          filters=(feat * channels),
          kernel_size=3,
          strides=1,
          padding="same",
          use_bias=True,
      )
      self.cnn6 = tf.keras.layers.Conv1D(
          filters=(feat * channels),
          kernel_size=1,
          strides=1,
          padding="same",
          use_bias=True,
      )
  
      self.cnn7 = tf.keras.layers.Conv1D(
          filters=int(feat * channels / 2),
          kernel_size=5,
          strides=2,
          padding="same",
          use_bias=True,
      )
      time /= 2
      self.reshape2 = tf.keras.layers.Reshape(
          (int(time * feat * channels / 2),)
      )
  
      self.nn1 = tf.keras.layers.Dense(3000)
      self.reshape3 = tf.keras.layers.Reshape(
          (int(3000 / (feat * channels / 2)), int(feat * channels / 2))
      )
  
      self.max_pool = tf.keras.layers.GlobalMaxPool1D()
      self.nn2 = tf.keras.layers.Dense(2)
  
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 EmoCFNNModel obj's underlying member method code with example usage: obj.build(input_shape) and returns: unknown