class_docstr: A trainable interface for a simple, generic encoder + decoder model
  
  # Arguments
  encoder: an encoder object
  decoder: a decoder object
  input_shape: shape of encoder input, for variable length, please use -1 as seq len
  output_shape: shape of decoder input, for variable length, please use -1 as seq len
  bridge: connect encoder and decoder
  generator: Feeding decoder output to generator to generate final result, `None` is supported
  
  >>> encoder = RNNEncoder.initialize("LSTM", 1, 4)
  creating: createZooKerasLSTM
  creating: createZooKerasRNNEncoder
  >>> decoder = RNNDecoder.initialize("LSTM", 1, 4)
  creating: createZooKerasLSTM
  creating: createZooKerasRNNDecoder
  >>> bridge = Bridge.initialize("dense", 4)
  creating: createZooKerasBridge
  >>> seq2seq = Seq2seq(encoder, decoder, [2, 4], [2, 4], bridge)
  creating: createZooKerasInput
  creating: createZooKerasInput
  creating: createZooKerasSelectTable
  creating: createZooKerasModel
  creating: createZooSeq2seq
code: def __init__(
      self,
      encoder,
      decoder,
      input_shape,
      output_shape,
      bridge=None,
      generator=None,
      bigdl_type="float",
  ):
      if (input_shape is None) or (output_shape is None):
          raise TypeError("input_shape and output_shape cannot be None")
      self.encoder = encoder
      self.decoder = decoder
      self.input_shape = list(input_shape)
      self.output_shape = list(output_shape)
      self.bridge = bridge
      self.generator = generator
      self.bigdl_type = bigdl_type
      self.model = self.build_model()
      super(Seq2seq, self).__init__(
          None,
          self.bigdl_type,
          self.encoder,
          self.decoder,
          self.input_shape,
          self.output_shape,
          self.bridge,
          self.generator,
          self.model,
      )
  
imports: from bigdl.nn.layer import Layer
  from zoo.pipeline.api.keras.layers import *
  from zoo.models.common import ZooModel
  from zoo.common.utils import callZooFunc
  from zoo.pipeline.api.keras.engine import ZooKerasLayer
  from zoo.pipeline.api.keras.models import Model
label_desc: Use image node_id 1 to create a new Seq2seq object from inherited base classes: ZooModel with example: obj = Seq2seq(encoder, decoder, input_shape, output_shape, bridge, generator, bigdl_type)