code: def parametrized_unbottleneck(x, hidden_size, hparams):
      """Meta-function calling all the above un-bottlenecks with hparams."""
      if hparams.bottleneck_kind == "tanh_discrete":
          return tanh_discrete_unbottleneck(x, hidden_size)
      if hparams.bottleneck_kind == "isemhash":
          return isemhash_unbottleneck(
              x, hidden_size, hparams.isemhash_filter_size_multiplier
          )
      if hparams.bottleneck_kind in ["vq", "em", "gumbel_softmax"]:
          return vq_discrete_unbottleneck(x, hidden_size)
      raise ValueError(
          "Unsupported hparams.bottleneck_kind %s"
          % hparams.bottleneck_kind
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from functools import partial
  from tensor2tensor.layers import common_hparams
  from tensor2tensor.layers import common_image_attention
  from tensor2tensor.layers import common_layers
  import tensorflow.compat.v1
  from tensorflow.compat.v1 import estimator
  import tensorflow_probability
  from tensorflow.python.training import moving_averages
label_desc: Use image node_id 28 for calling a global function with example usage: parametrized_unbottleneck(x, hidden_size, hparams) and returns: tanh_discrete_unbottleneck, isemhash_unbottleneck, vq_discrete_unbottleneck