code: def nac(x, depth, name=None, reuse=None):
    
    with tf.variable_scope(name, default_name="nac", values=[x], reuse=reuse):
      x_shape = shape_list(x)
      w = tf.get_variable("w", [x_shape[-1], depth])
      m = tf.get_variable("m", [x_shape[-1], depth])
      w = tf.tanh(w) * tf.nn.sigmoid(m)
      x_flat = tf.reshape(x, [-1, x_shape[-1]])
      res_flat = tf.matmul(x_flat, w)
      return tf.reshape(res_flat, x_shape[:-1] + [depth])
docs: NAC as in https://arxiv.org/abs/1808.00508.