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

使用Keras中的categorical_accuracy()函数评估多分类模型的准确率

发布时间:2023-12-16 13:16:26

Keras中的categorical_accuracy()函数是一个用于评估多分类模型准确率的函数。它可以用来计算预测结果和真实标签之间的准确匹配率。以下是一个使用例子,包括数据准备、模型建立、编译和训练,以及使用categorical_accuracy()函数评估模型准确率的步骤。

首先,我们需要准备数据。这里以MNIST手写数字数据集为例。我们将使用60000个训练样本和10000个测试样本。

from keras.datasets import mnist
from keras.utils import to_categorical

# 加载MNIST数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()

# 对输入数据进行归一化和reshape处理
x_train = x_train.reshape(-1, 28, 28, 1) / 255.0
x_test = x_test.reshape(-1, 28, 28, 1) / 255.0

# 对标签数据进行one-hot编码
y_train = to_categorical(y_train, num_classes=10)
y_test = to_categorical(y_test, num_classes=10)

接下来,我们需要建立一个多分类模型。这里我们使用一个简单的卷积神经网络作为例子。

from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# 建立模型
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dense(10, activation='softmax'))

然后,我们需要编译并训练模型。

# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# 训练模型
model.fit(x_train, y_train, batch_size=128, epochs=10, validation_data=(x_test, y_test))

在模型训练完成后,我们可以使用categorical_accuracy()函数计算模型在测试集上的准确率。

from keras.metrics import categorical_accuracy

# 对测试集进行预测
y_pred = model.predict(x_test)

# 计算准确率
accuracy = categorical_accuracy(y_test, y_pred)

最后,我们可以打印出准确率的值。

print("准确率:", accuracy)

这个例子展示了使用Keras中的categorical_accuracy()函数评估多分类模型的准确率的步骤。通过准备数据、建立模型、编译和训练,然后使用categorical_accuracy()函数计算测试集上的准确率,我们可以评估模型的性能。