欢迎访问宙启技术站
智能推送

Keras中to_categorical()函数详解及用法示例

发布时间:2023-12-17 09:36:42

在Keras中,to_categorical()函数是用来对整型数据进行one-hot编码的函数。该函数可以将一个整型的向量转换为一个独热编码的二维矩阵,其中每一行表示一个整数值对应的独热编码。

to_categorical(y, num_classes=None, dtype='float32')

参数说明:

- y:输入的整型向量;

- num_classes:输出的独热编码的维度大小,默认为None,表示自动根据输入数据的种类数量确定维度大小;

- dtype:输出矩阵的数据类型,默认为'float32'。

下面是一个使用to_categorical()函数的示例:

from keras.utils import to_categorical

y = [0, 1, 2, 1, 0]  # 输入整型向量
y_one_hot = to_categorical(y)  # 进行独热编码

print(y_one_hot)

运行结果:

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

在这个示例中,输入的整型向量y有5个元素,包含了三个不同的整数值。to_categorical()函数将这些整数值转换为了一个3列的独热编码矩阵,其中每一行表示一个整数值对应的独热编码。

需要注意的是,to_categorical()函数默认使用float32作为输出矩阵的数据类型,可以通过dtype参数进行修改。此外,可以通过num_classes参数指定输出矩阵的维度大小,如果不指定,to_categorical()函数会自动根据输入数据的种类数量确定维度大小。

下面是一个使用to_categorical()函数指定num_classes参数的示例:

from keras.utils import to_categorical

y = [0, 1, 2, 1, 0]  # 输入整型向量
y_one_hot = to_categorical(y, num_classes=4)  # 指定输出维度大小为4

print(y_one_hot)

运行结果:

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

在这个示例中,指定了num_classes参数为4,因此输出矩阵的维度大小为4列,每一行表示一个整数值对应的独热编码。由于输入的整型向量y只包含了3个不同的整数值,所以输出矩阵的后面一列都是0。

总结一下,to_categorical()函数是Keras中用来实现one-hot编码的函数,可以将整型向量转换为独热编码的二维矩阵。该函数的用法简单明了,可以通过num_classes参数指定输出矩阵的维度大小,通过dtype参数指定输出矩阵的数据类型,默认为float32。