class_docstr: Encoder Decoder Deep LSTM Tagger Model (using tf.keras)
class_docstr_tok: ["Encoder","Decoder","Deep","LSTM","Tagger","Model","(","using","tf.keras",")"]
docstr: Build the model
  
  Args:
      vocab_size (int): vocabulary size
      tag_labels (int): number of tag labels
      token_emb_size (int, optional): token embedding vector size
      encoder_depth (int, optional): number of encoder LSTM layers
      decoder_depth (int, optional): number of decoder LSTM layers
      lstm_hidden_size (int, optional): LSTM layers hidden size
      encoder_dropout (float, optional): encoder dropout
      decoder_dropout (float, optional): decoder dropout
docstr_tok: ["Build","the","model","Args",":","vocab_size","(","int",")",":","vocabulary","size","tag_labels","(","int",")",":","number","of","tag","labels","token_emb_size","(","int",",","optional",")",":","token","embedding","vector","size","encoder_depth","(","int",",","optional",")",":","number","of","encoder","LSTM","layers","decoder_depth","(","int",",","optional",")",":","number","of","decoder","LSTM","layers","lstm_hidden_size","(","int",",","optional",")",":","LSTM","layers","hidden","size","encoder_dropout","(","float",",","optional",")",":","encoder","dropout","decoder_dropout","(","float",",","optional",")",":","decoder","dropout"]
code: def build(
      self,
      vocab_size,
      tag_labels,
      token_emb_size=100,
      encoder_depth=1,
      decoder_depth=1,
      lstm_hidden_size=100,
      encoder_dropout=0.5,
      decoder_dropout=0.5,
  ):
      """
      Build the model
  
      Args:
          vocab_size (int): vocabulary size
          tag_labels (int): number of tag labels
          token_emb_size (int, optional): token embedding vector size
          encoder_depth (int, optional): number of encoder LSTM layers
          decoder_depth (int, optional): number of decoder LSTM layers
          lstm_hidden_size (int, optional): LSTM layers hidden size
          encoder_dropout (float, optional): encoder dropout
          decoder_dropout (float, optional): decoder dropout
      """
      self.vocab_size = vocab_size
      self.tag_labels = tag_labels
      self.token_emb_size = token_emb_size
      self.encoder_depth = encoder_depth
      self.decoder_depth = decoder_depth
      self.lstm_hidden_size = lstm_hidden_size
      self.encoder_dropout = encoder_dropout
      self.decoder_dropout = decoder_dropout
  
      words_input = tf.keras.layers.Input(
          shape=(None,), name="words_input"
      )
      emb_layer = tf.keras.layers.Embedding(
          self.vocab_size, self.token_emb_size, name="word_embedding"
      )
      benc_in = emb_layer(words_input)
  
      assert self.encoder_depth > 0, "Encoder depth must be > 0"
      for i in range(self.encoder_depth):
          bencoder = tf.keras.layers.LSTM(
              self.lstm_hidden_size,
              return_sequences=True,
              return_state=True,
              go_backwards=True,
              dropout=self.encoder_dropout,
              name="encoder_blstm_{}".format(i),
          )(benc_in)
          benc_in = bencoder[0]
      b_states = bencoder[1:]
      benc_h, bene_c = b_states
  
      decoder_inputs = benc_in
      assert self.decoder_depth > 0, "Decoder depth must be > 0"
      for i in range(self.decoder_depth):
          decoder = tf.keras.layers.LSTM(
              self.lstm_hidden_size,
              return_sequences=True,
              name="decoder_lstm_{}".format(i),
          )(decoder_inputs, initial_state=[benc_h, bene_c])
          decoder_inputs = decoder
      decoder_outputs = tf.keras.layers.Dropout(self.decoder_dropout)(
          decoder
      )
      decoder_predictions = tf.keras.layers.TimeDistributed(
          tf.keras.layers.Dense(self.tag_labels, activation="softmax"),
          name="decoder_classifier",
      )(decoder_outputs)
  
      self.model = tf.keras.Model(words_input, decoder_predictions)
      self.model.compile(
          optimizer=tf.train.AdamOptimizer(),
          loss="categorical_crossentropy",
          metrics=["categorical_accuracy"],
      )
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import tensorflow
  from nlp_architect.nn.tensorflow.python.keras.layers.crf import CRF
  from nlp_architect.nn.tensorflow.python.keras.utils import load_model, save_model
label_desc: Use image node_id 2 for calling the Seq2SeqIntentModel obj's underlying member method code with example usage: obj.build(vocab_size, tag_labels, token_emb_size, encoder_depth, decoder_depth, lstm_hidden_size, encoder_dropout, decoder_dropout) without return types