code: def get_channel_embeddings(
      io_depth, targets, hidden_size, name="channel"
  ):
      """Get separate embedding for each of the channels."""
      targets_split = tf.split(targets, io_depth, axis=3)
      rgb_embedding_var = tf.get_variable(
          "rgb_target_emb_%s" % name, [256 * io_depth, hidden_size]
      )
      rgb_embedding_var = tf.identity(rgb_embedding_var)
      rgb_embedding_var *= float(hidden_size) ** 0.5
      channel_target_embs = []
      for i in range(io_depth):
          # Adding the channel offsets to get the right embedding since the
          # embedding tensor has shape 256 * io_depth, hidden_size
          target_ids = tf.squeeze(targets_split[i], axis=3) + i * 256
          target_embs = common_layers.gather(
              rgb_embedding_var, target_ids
          )
          channel_target_embs.append(target_embs)
  
      return tf.concat(channel_target_embs, axis=-1)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numpy
  from six.moves import range
  from tensor2tensor.layers import common_attention
  from tensor2tensor.layers import common_layers
  from tensor2tensor.utils import expert_utils
  import tensorflow.compat.v1
  from tensorflow.compat.v1 import estimator
label_desc: Use image node_id 19 for calling a global function with example usage: get_channel_embeddings(io_depth, targets, hidden_size, name) and returns: tf