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

Keras中的np_utilsto_categorical()函数的应用与实例

发布时间:2023-12-28 07:39:09

np_utils.to_categorical()函数是Keras中的一个辅助函数,用于将类别向量(整数)转换为在one-hot编码形式下的矩阵。

函数应用:

np_utils.to_categorical(y, num_classes=None)

参数说明:

y:一维整数数组或类别向量。

num_classes:总类别数,可选参数,默认为None。如果为None,函数将自动根据y的最大值+1确定总类别数。

返回值:

转换后的二维数组。

例子:

import numpy as np

from keras.utils import np_utils

# 创建一个类别向量

y = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

# 使用np_utils.to_categorical()将类别向量转换为one-hot矩阵

y_one_hot = np_utils.to_categorical(y)

print(y_one_hot)

输出结果:

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

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

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

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

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

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

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

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

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

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

在上面的例子中,首先我们创建了一个类别向量y,包含了0到9这10个类别。然后我们使用np_utils.to_categorical()函数将类别向量转换为one-hot编码形式下的矩阵y_one_hot。最后打印出了转换后的结果。

可以看到,转换后的矩阵y_one_hot是一个10行10列的二维数组,每一行都代表一个类别,对应的类别在该行的位置上为1,其他位置为0。例如,第一行代表类别0,第一列位置上为1,其他位置为0。这种表示形式主要用于在多类分类问题中,将类别向量转换为神经网络所需的标签格式。