code: def layer_prepostprocess(previous_value,
                           x,
                           sequence,
                           dropout_rate,
                           norm_type,
                           depth,
                           epsilon,
                           default_name,
                           name=None,
                           dropout_broadcast_dims=None,
                           layer_collection=None):
    
    with tf.variable_scope(name, default_name=default_name):
      if sequence == "none":
        return x
      for c in sequence:
        if c == "a":
          x += previous_value
        elif c == "z":
          x = zero_add(previous_value, x)
        elif c == "n":
          x = apply_norm(
              x, norm_type, depth, epsilon, layer_collection=layer_collection)
        else:
          assert c == "d", ("Unknown sequence step %s" % c)
          x = dropout_with_broadcast_dims(
              x, 1.0 - dropout_rate, broadcast_dims=dropout_broadcast_dims)
      return x
docs: Apply a sequence of functions to the input or output of a layer.
  
    The sequence is specified as a string which may contain the following
    characters:
      a: add previous_value
      n: apply normalization
      d: apply dropout
      z: zero add
  
    For example, if sequence=="dna", then the output is
      previous_value + normalize(dropout(x))
  
    Args:
      previous_value: A Tensor, to be added as a residual connection ('a')
      x: A Tensor to be transformed.
      sequence: a string.
      dropout_rate: a float
      norm_type: a string (see apply_norm())
      depth: an integer (size of last dimension of x).
      epsilon: a float (parameter for normalization)
      default_name: a string
      name: a string
      dropout_broadcast_dims:  an optional list of integers less than 3
        specifying in which dimensions to broadcast the dropout decisions.
        saves memory.
      layer_collection: A tensorflow_kfac.LayerCollection. Only used by the
        KFAC optimizer. Default is None.
  
    Returns:
      a Tensor