code: def gated_linear_unit_layer(x, name=None):
    
    with tf.variable_scope(name, default_name="glu_layer", values=[x]):
      depth = shape_list(x)[-1]
      x = layers().Dense(depth * 2, activation=None)(x)
      x, gating_x = tf.split(x, 2, axis=-1)
      return x * tf.nn.sigmoid(gating_x)
docs: Gated linear unit layer.
  
    Paper: Language Modeling with Gated Convolutional Networks.
    Link: https://arxiv.org/abs/1612.08083
    x = Wx * sigmoid(W'x).
  
    Args:
      x: A tensor
      name: A string
  
    Returns:
      A tensor of the same shape as x.