Tag Archives: keras.utils.to_categorical

Keras.utils.to in keras_ Categorical method

 

to_categorical(y, num_classes=None, dtype=’float32′)

Convert integer category labels to onehot encoding. y is an int array, num_classes is the total number of label categories, greater than max(y) (labels starting from 0).

Returns: len(y) * [max(y)+1] (dimension, m*n means m rows and n columns matrix, same below) if num_classes=None, otherwise len(y) * num_classes.

import keras

ohl=keras.utils.to_categorical([
1,3])

# ohl=keras.utils.to_categorical([[1],[3]])

print(ohl)

“””

[[0. 1. 0. 0.]

[0. 0. 0. 1.]]

“””

ohl=keras.utils.to_categorical([
1,3],num_classes=5)

print(ohl)

“””

[[0. 1. 0. 0. 0.]

[0. 0. 0. 1. 0.]]

“””

The source code for this part of keras is as follows.

def to_categorical(y, num_classes=None, dtype=’float32′):

“””Converts a class vector (integers) to binary class matrix.

E.g. for use with categorical_crossentropy.

# Arguments

y: class vector to be converted into a matrix

(integers from 0 to num_classes).

num_classes: total number of classes.

dtype: The data type expected by the input, as a string

(`float32`, `float64`, `int32`…)

# Returns

A binary matrix representation of the input. The classes axis

is placed last.

“””

y = np.array(y, dtype=
‘int’)

input_shape = y.shape

if input_shape and input_shape[-1] == 1 and len(input_shape) > 1:

input_shape = tuple(input_shape[:
-1])

y = y.ravel()

if not num_classes:

num_classes = np.max(y) +
1

n = y.shape[
0]

categorical = np.zeros((n, num_classes), dtype=dtype)

categorical[np.arange(n), y] =
1

output_shape = input_shape + (num_classes,)

categorical = np.reshape(categorical, output_shape)

return categorical

In short: **keras.utils.to_categorical function: is to convert the category label to onehot encoding (categorical means category label, which indicates the various categories you categorize in the real world), and onehot encoding is a binary encoding that is convenient for computer processing. **