code: def update_hparams_for_universal_transformer(hparams):
      """Adds default hparams for all of the variants of the Universal Transformer.
  
      Args:
        hparams: default hparams (usually one of the standard hparams from
          transformer model (like "transformer_base")
  
      Returns:
        hparams with default values for Universal Transformers hyper-parameters
  
      """
      hparams.daisy_chain_variables = (
          False  # Breaks multi-gpu in while loops.
      )
  
      # If not None, mixes vanilla transformer with Universal Transformer.
      # Options: None, "before_ut", and "after_ut".
      hparams.add_hparam("mix_with_transformer", None)
  
      # Number of vanilla transformer layers used to be mixed with u-transofmer.
      hparams.add_hparam("num_mixedin_layers", 2)
      # Number of transformer layers within the recurrent block (default is 1).
      hparams.add_hparam("num_inrecurrence_layers", 1)
  
      # Type of recurrency:
      # basic, highway, skip, dwa, act, rnn, gru, lstm.
      hparams.add_hparam("recurrence_type", "basic")
  
      # Number of steps (which is equivalent to num layer in transformer).
      hparams.add_hparam("num_rec_steps", hparams.num_hidden_layers)
  
      # Add the positional mebedding at each step(horisontal timing)
      hparams.add_hparam("add_position_timing_signal", True)
      if hparams.add_position_timing_signal:
          hparams.pos = None
      # Logic of position shifting when using timing signal:
      # None, "random", "step"
      hparams.add_hparam("position_start_index", None)
  
      # Add an step embedding at each step (vertical timing)
      hparams.add_hparam("add_step_timing_signal", True)
      # Either "learned" or "sinusoid"
      hparams.add_hparam("step_timing_signal_type", "learned")
  
      # Add or concat the timing signal (applied both on position and step timing).
      # Options: "add" and "concat".
      hparams.add_hparam("add_or_concat_timing_signal", "add")
  
      # Add SRU at the beginning of each Universal Transformer step.
      # This can be considered as a position timing signal
      hparams.add_hparam("add_sru", False)
  
      # Default ffn layer is separable convolution.
      # Options: "fc" and "sepconv".
      hparams.add_hparam("transformer_ffn_type", "fc")
  
      # Transform bias (in models with highway or skip connection).
      hparams.add_hparam("transform_bias_init", -1.0)
      hparams.add_hparam("couple_carry_transform_gates", True)
  
      # Depth-wise attention (grid-transformer!) hparams:
      # Adds depth embedding, if true.
      hparams.add_hparam("depth_embedding", True)
      # Learns attention weights for elements (instead of positions), if true.
      hparams.add_hparam("dwa_elements", True)
  
      # Type of ffn_layer used for gate in skip, highway, etc.
      # "dense" or "dense_dropconnect".
      # With dense_relu_dense, the bias/kernel initializations will not be applied.
      hparams.add_hparam("gate_ffn_layer", "dense")
  
      # LSTM forget bias for lstm style recurrence.
      hparams.add_hparam("lstm_forget_bias", 1.0)
      # Uses the memory at the last step as the final output, if true.
      hparams.add_hparam("use_memory_as_final_state", False)
      # if also add a ffn unit to the transition function when using gru/lstm
      hparams.add_hparam(
          "add_ffn_unit_to_the_transition_function", False
      )
  
      # Type of act: basic/accumulated/global (instead of position-wise!)/random.
      hparams.add_hparam("act_type", "basic")
      # Max number of steps (forces halting at this step).
      hparams.add_hparam("act_max_steps", 2 * hparams.num_hidden_layers)
      hparams.add_hparam("act_halting_bias_init", 1.0)
      hparams.add_hparam("act_epsilon", 0.01)
      hparams.add_hparam("act_loss_weight", 0.01)
  
      return hparams
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from tensor2tensor.layers import common_attention
  from tensor2tensor.layers import common_layers
  from tensor2tensor.models import transformer
  from tensor2tensor.models.research import universal_transformer_util
  from tensor2tensor.utils import contrib
  from tensor2tensor.utils import registry
  import tensorflow.compat.v1
label_desc: Use image node_id 1 for calling a global function with example usage: update_hparams_for_universal_transformer(hparams) and returns: hparams