code: def real_nvp_default_template(
      hidden_layers,
      shift_only=False,
      activation=tf.nn.relu,
      name=None,
      *args,  # pylint: disable=keyword-arg-before-vararg
      **kwargs,
  ):
      """Build a scale-and-shift function using a multi-layer neural network.
  
      This will be wrapped in a make_template to ensure the variables are only
      created once. It takes the `d`-dimensional input x[0:d] and returns the `D-d`
      dimensional outputs `loc` ('mu') and `log_scale` ('alpha').
  
      The default template does not support conditioning and will raise an
      exception if `condition_kwargs` are passed to it. To use conditioning in
      Real NVP bijector, implement a conditioned shift/scale template that
      handles the `condition_kwargs`.
  
      Args:
        hidden_layers: Python `list`-like of non-negative integer, scalars
          indicating the number of units in each hidden layer. Default: `[512,
            512]`.
        shift_only: Python `bool` indicating if only the `shift` term shall be
          computed (i.e. NICE bijector). Default: `False`.
        activation: Activation function (callable). Explicitly setting to `None`
          implies a linear activation.
        name: A name for ops managed by this function. Default:
          'real_nvp_default_template'.
        *args: `tf.layers.dense` arguments.
        **kwargs: `tf.layers.dense` keyword arguments.
  
      Returns:
        shift: `Float`-like `Tensor` of shift terms ('mu' in
          [Papamakarios et al.  (2016)][1]).
        log_scale: `Float`-like `Tensor` of log(scale) terms ('alpha' in
          [Papamakarios et al. (2016)][1]).
  
      Raises:
        NotImplementedError: if rightmost dimension of `inputs` is unknown prior to
          graph execution, or if `condition_kwargs` is not empty.
  
      #### References
  
      [1]: George Papamakarios, Theo Pavlakou, and Iain Murray. Masked
           Autoregressive Flow for Density Estimation. In _Neural Information
           Processing Systems_, 2017. https://arxiv.org/abs/1705.07057
      """
  
      with tf.name_scope(name or "real_nvp_default_template"):
  
          def _fn(x, output_units, **condition_kwargs):
              """Fully connected MLP parameterized via `real_nvp_template`."""
              if condition_kwargs:
                  raise NotImplementedError(
                      "Conditioning not implemented in the default template."
                  )
  
              if tensorshape_util.rank(x.shape) == 1:
                  x = x[tf.newaxis, ...]
                  reshape_output = lambda x: x[0]
              else:
                  reshape_output = lambda x: x
              for units in hidden_layers:
                  x = tf_keras.tf1_layers.dense(
                      inputs=x,
                      units=units,
                      activation=activation,
                      *args,  # pylint: disable=keyword-arg-before-vararg
                      **kwargs,
                  )
              x = tf_keras.tf1_layers.dense(
                  inputs=x,
                  units=(1 if shift_only else 2) * output_units,
                  activation=None,
                  *args,  # pylint: disable=keyword-arg-before-vararg
                  **kwargs,
              )
              if shift_only:
                  return reshape_output(x), None
              shift, log_scale = tf.split(x, 2, axis=-1)
              return reshape_output(shift), reshape_output(log_scale)
  
          return tf1.make_template("real_nvp_default_template", _fn)
  
imports: import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import bijector
  from tensorflow_probability.python.bijectors import chain
  from tensorflow_probability.python.bijectors import scale
  from tensorflow_probability.python.bijectors import shift
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.internal import tf_keras
label_desc: Use image node_id 1 for calling a global function with example usage: real_nvp_default_template(hidden_layers, shift_only, activation, name) and returns: tf1, reshape_output,  reshape_output, reshape_output,  None