class_docstr: Apply a self-attention layer and a semantic composite fuse gate
  to compute the encoding result of one tensor.
  
  :param initial_keep_rate: the initial_keep_rate parameter of
      DecayingDropoutLayer.
  :param decay_interval: the decay_interval parameter of
      DecayingDropoutLayer.
  :param decay_rate: the decay_rate parameter of DecayingDropoutLayer.
  :param kwargs: standard layer keyword arguments.
  
  Example:
      >>> import matchzoo as mz
      >>> layer = mz.contrib.layers.EncodingLayer(1.0, 10000, 0.977)
      >>> num_batch, left_len, num_dim = 5, 32, 10
      >>> layer.build([num_batch, left_len, num_dim])
docstr: :class: 'EncodingLayer' constructor.
code: def __init__(
      self,
      initial_keep_rate: float,
      decay_interval: int,
      decay_rate: float,
      **kwargs,
  ):
      """:class: 'EncodingLayer' constructor."""
      super(EncodingLayer, self).__init__(**kwargs)
      self._initial_keep_rate = initial_keep_rate
      self._decay_interval = decay_interval
      self._decay_rate = decay_rate
      self._w_itr_att = None
      self._w1 = None
      self._w2 = None
      self._w3 = None
      self._b1 = None
      self._b2 = None
      self._b3 = None
  
file_path: MatchZoo/matchzoo/contrib/layers/semantic_composite_layer.py
imports: import tensorflow
  from keras import backend
  from keras.engine import Layer
  from matchzoo.contrib.layers import DecayingDropoutLayer
label_desc: Use image node_id 1 to create a new EncodingLayer object from inherited base classes: Layer with example: obj = EncodingLayer(initial_keep_rate, decay_interval, decay_rate)