code: def image_targets_bottom(x, model_hparams, vocab_size):
    
    pixel_embedding_size = 64
    inputs = x
    with tf.variable_scope("image_modality"):
      if not tf.executing_eagerly():
        tf.summary.image(
            "targets_bottom",
            common_layers.tpu_safe_image_summary(inputs),
            max_outputs=1)
      inputs_shape = common_layers.shape_list(inputs)
      if len(inputs_shape) != 4:
        raise ValueError("Assuming images given as int tensors in the format "
                         "[batch, height, width, channels] (256 values).")
      # We embed each of 256=vocab_size possible pixel values.
      embedding_var = tf.get_variable(
          "pixel_embedding",
          [vocab_size, pixel_embedding_size])
      hot_inputs = tf.one_hot(tf.to_int32(inputs), vocab_size)
      hot_inputs = tf.reshape(hot_inputs, [-1, vocab_size])
      embedded = tf.matmul(hot_inputs, embedding_var)
      # Let's now merge all channels that were embedded into a single vector.
      merged_size = pixel_embedding_size * inputs_shape[3]
      embedded = tf.reshape(embedded, inputs_shape[:3] + [merged_size])
      merged = tf.layers.dense(
          embedded,
          model_hparams.hidden_size,
          name="merge_pixel_embedded_channels")
      return merged
docs: Bottom transformation for target images.