code: def top_prior(name, z_shape, learn_prior="normal", temperature=1.0):
      """Unconditional prior distribution.
  
      Args:
        name: variable scope
        z_shape: Shape of the mean / scale of the prior distribution.
        learn_prior: Possible options are "normal" and "single_conv".
                     If set to "single_conv", the gaussian is parametrized by a
                     single convolutional layer whose input are an array of zeros
                     and initialized such that the mean and std are zero and one.
                     If set to "normal", the prior is just a Gaussian with zero
                     mean and unit variance.
        temperature: Temperature with which to sample from the Gaussian.
      Returns:
        objective: 1-D Tensor shape=(batch_size,) summed across spatial components.
      Raises:
        ValueError: If learn_prior not in "normal" or "single_conv"
      """
      with tf.variable_scope(name, reuse=tf.AUTO_REUSE):
          h = tf.zeros(z_shape, dtype=tf.float32)
          if learn_prior == "normal":
              prior_dist = tfp.distributions.Normal(h, tf.exp(h))
          elif learn_prior == "single_conv":
              prior_dist = single_conv_dist("top_learn_prior", h)
          else:
              raise ValueError(
                  "Expected learn_prior to be normal or single_conv "
                  "got %s" % learn_prior
              )
          return TemperedNormal(
              prior_dist.loc, prior_dist.scale, temperature
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import functools
  import numpy
  import scipy
  from tensor2tensor.layers import common_layers
  from tensor2tensor.layers import common_video
  from tensor2tensor.utils import contrib
  import tensorflow.compat.v1
  from tensorflow.compat.v1 import estimator
  import tensorflow_probability
label_desc: Use image node_id 38 for calling a global function with example usage: top_prior(name, z_shape, learn_prior, temperature) and returns: TemperedNormal