code: def bottleneck_layer(inputs, hparams, name="discrete_bottleneck"):
      """Computes latents given inputs (typically, compressed targets)."""
      [
          latents_dense,
          latents_discrete,
          extra_loss,
          embed_fn,
          _,
      ] = hparams.bottleneck(
          inputs=inputs,
          filter_size=hparams.compress_filter_size,
          name=name,
          mode=hparams.mode,
      )
      if DO_SUMMARIES:
          tf.summary.histogram(
              "discrete_latents", tf.reshape(latents_discrete, [-1])
          )
      return latents_dense, latents_discrete, extra_loss, embed_fn
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from six.moves import range
  from tensor2tensor.layers import common_attention
  from tensor2tensor.layers import common_image_attention
  from tensor2tensor.layers import common_layers
  from tensor2tensor.layers import transformer_layers
  from tensor2tensor.utils import beam_search
  import tensorflow.compat.v1
  from tensorflow.compat.v1 import estimator
  import tensorflow_probability
label_desc: Use image node_id 16 for calling a global function with example usage: bottleneck_layer(inputs, hparams, name) and returns: latents_dense,  latents_discrete,  extra_loss,  embed_fn