code: def to_categorical(x, num_classes=None):
      """Converts a class vector (integers) to binary class matrix.
  
      E.g. for use with `categorical_crossentropy`.
  
      Args:
          x: Array-like with class values to be converted into a matrix
              (integers from 0 to `num_classes - 1`).
          num_classes: Total number of classes. If `None`, this would be inferred
              as `max(x) + 1`. Defaults to `None`.
  
      Returns:
          A binary matrix representation of the input as a NumPy array. The class
          axis is placed last.
  
      Example:
  
      >>> a = keras.utils.to_categorical([0, 1, 2, 3], num_classes=4)
      >>> print(a)
      [[1. 0. 0. 0.]
       [0. 1. 0. 0.]
       [0. 0. 1. 0.]
       [0. 0. 0. 1.]]
  
      >>> b = np.array([.9, .04, .03, .03,
      ...               .3, .45, .15, .13,
      ...               .04, .01, .94, .05,
      ...               .12, .21, .5, .17],
      ...               shape=[4, 4])
      >>> loss = keras.ops.categorical_crossentropy(a, b)
      >>> print(np.around(loss, 5))
      [0.10536 0.82807 0.1011  1.77196]
  
      >>> loss = keras.ops.categorical_crossentropy(a, a)
      >>> print(np.around(loss, 5))
      [0. 0. 0. 0.]
      """
      if backend.is_tensor(x):
          return backend.nn.one_hot(x, num_classes)
      x = np.array(x, dtype="int64")
      input_shape = x.shape
  
      # Shrink the last dimension if the shape is (..., 1).
      if input_shape and input_shape[-1] == 1 and len(input_shape) > 1:
          input_shape = tuple(input_shape[:-1])
  
      x = x.reshape(-1)
      if not num_classes:
          num_classes = np.max(x) + 1
      batch_size = x.shape[0]
      categorical = np.zeros((batch_size, num_classes))
      categorical[np.arange(batch_size), x] = 1
      output_shape = input_shape + (num_classes,)
      categorical = np.reshape(categorical, output_shape)
      return categorical
  
imports: import numpy
  from keras import backend
  from keras.api_export import keras_export
label_desc: Use image node_id 2 for calling a global function with example usage: to_categorical(x, num_classes) and returns: categorical, backend