code: def vq_discrete_unbottleneck(x, hidden_size):
      """Simple undiscretization from vector quantized representation."""
      x_shape = common_layers.shape_list(x)
      x = tf.to_float(x)
      bottleneck_size = common_layers.shape_list(x)[-1]
      means, _, _ = get_vq_codebook(bottleneck_size, hidden_size)
      result = tf.matmul(tf.reshape(x, [-1, x_shape[-1]]), means)
      return tf.reshape(result, x_shape[:-1] + [hidden_size])
  
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 20 for calling a global function with example usage: vq_discrete_unbottleneck(x, hidden_size) and returns: tf