docs: def one_hot_encoding(labels, num_classes, scope=None):
    """Transform numeric labels into onehot_labels.
  
    Args:
      labels: [batch_size] target labels.
      num_classes: total number of classes.
      scope: Optional scope for name_scope.
    Returns:
      one hot encoding of the labels.
    """
    with tf.name_scope(scope, 'OneHotEncoding', [labels]):
      batch_size = labels.get_shape()[0]
      indices = tf.expand_dims(tf.range(0, batch_size), 1)
      labels = tf.cast(tf.expand_dims(labels, 1), indices.dtype)
      concated = tf.concat(axis=1, values=[indices, labels])
      onehot_labels = tf.sparse_to_dense(
          concated, tf.stack([batch_size, num_classes]), 1.0, 0.0)
      onehot_labels.set_shape([batch_size, num_classes])
      return onehot_labels