class_docstr: Single encoder layer module.
  
  Args:
      n_units (int): Number of input/output dimension of a FeedForward layer.
      d_units (int): Number of units of hidden layer in a FeedForward layer.
      h (int): Number of attention heads.
      dropout (float): Dropout rate
docstr: Initialize EncoderLayer.
code: def __init__(
      self,
      n_units,
      d_units=0,
      h=8,
      dropout=0.1,
      initialW=None,
      initial_bias=None,
  ):
      """Initialize EncoderLayer."""
      super(EncoderLayer, self).__init__()
      with self.init_scope():
          self.self_attn = MultiHeadAttention(
              n_units,
              h,
              dropout=dropout,
              initialW=initialW,
              initial_bias=initial_bias,
          )
          self.feed_forward = PositionwiseFeedForward(
              n_units,
              d_units=d_units,
              dropout=dropout,
              initialW=initialW,
              initial_bias=initial_bias,
          )
          self.norm1 = LayerNorm(n_units)
          self.norm2 = LayerNorm(n_units)
      self.dropout = dropout
      self.n_units = n_units
  
file_path: espnet/espnet/nets/chainer_backend/transformer/encoder_layer.py
imports: import chainer
  import chainer.functions
  from espnet.nets.chainer_backend.transformer.attention import MultiHeadAttention
  from espnet.nets.chainer_backend.transformer.layer_norm import LayerNorm
  from espnet.nets.chainer_backend.transformer.positionwise_feed_forward import PositionwiseFeedForward
label_desc: Use image node_id 1 to create a new EncoderLayer object from inherited base classes: chainer with example: obj = EncoderLayer(n_units, d_units, h, dropout, initialW, initial_bias)