code: def vq_discrete_bottleneck(
      x,
      bottleneck_bits,
      beta=0.25,
      decay=0.999,
      epsilon=1e-5,
      soft_em=False,
      num_samples=10,
  ):
      """Simple vector quantized discrete bottleneck."""
      bottleneck_size = 2**bottleneck_bits
      x_means_hot, e_loss, _ = vq_body(
          x,
          bottleneck_size,
          beta=beta,
          decay=decay,
          epsilon=epsilon,
          soft_em=soft_em,
          num_samples=num_samples,
      )
      return x_means_hot, e_loss
  
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 17 for calling a global function with example usage: vq_discrete_bottleneck(x, bottleneck_bits, beta, decay, epsilon, soft_em, num_samples) and returns: x_means_hot,  e_loss