code: def lstm_posterior_builder(getter, name, *args, **kwargs):
    
    del args
    parameter_shapes = tfp.distributions.Normal.param_static_shapes(
        kwargs["shape"])
  
    # The standard deviation of the scale mixture prior.
    prior_stddev = np.sqrt(
        FLAGS.prior_pi * np.square(FLAGS.prior_sigma1) +
        (1 - FLAGS.prior_pi) * np.square(FLAGS.prior_sigma2))
  
    loc_var = getter(
        "{}/posterior_loc".format(name),
        shape=parameter_shapes["loc"],
        initializer=kwargs.get("initializer"),
        dtype=tf.float32)
    scale_var = getter(
        "{}/posterior_scale".format(name),
        initializer=tf.random_uniform(
            minval=np.log(np.exp(prior_stddev / 4.0) - 1.0),
            maxval=np.log(np.exp(prior_stddev / 2.0) - 1.0),
            dtype=tf.float32,
            shape=parameter_shapes["scale"]))
    return tfp.distributions.Normal(
        loc=loc_var,
        scale=tf.nn.softplus(scale_var) + 1e-5,
        name="{}/posterior_dist".format(name))
docs: A builder for a particular diagonal gaussian posterior.
  
    Args:
      getter: The `getter` passed to a `custom_getter`. Please see the
        documentation for `tf.get_variable`.
      name: The `name` argument passed to `tf.get_variable`.
      *args: Positional arguments forwarded by `tf.get_variable`.
      **kwargs: Keyword arguments forwarded by `tf.get_variable`.
  
    Returns:
      An instance of `tfp.distributions.Distribution` representing the
      posterior distribution over the variable in question.