class_docstr: A generic recurrent neural network encoder
  
  # Arguments
  rnns: rnn layers used for encoder, support stacked rnn layers
  embedding: embedding layer in encoder
  input_shape: shape of input, not including batch
  
  >>> encoder = RNNEncoder.initialize("lstm", 2, 3)
  creating: createZooKerasLSTM
  creating: createZooKerasLSTM
  creating: createZooKerasRNNEncoder
  
  >>> lstm = LSTM(3)
  creating: createZooKerasLSTM
  >>> embedding = Embedding(1000, 32, input_length=10, name="embedding1")
  creating: createZooKerasEmbedding
  >>> encoder = RNNEncoder([lstm], embedding)
  creating: createZooKerasRNNEncoder
code: def __init__(self, rnns, embedding=None, input_shape=None):
      super(RNNEncoder, self).__init__(
          None,
          rnns,
          embedding,
          list(input_shape) if input_shape else None,
      )
  
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 RNNEncoder object from inherited base classes: ZooKerasLayer with example: obj = RNNEncoder(rnns, embedding, input_shape)