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

Keras.metrics中的categorical_accuracy()函数:用于计算分类准确率

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

Keras是一个深度学习框架,提供了一系列的度量函数用于评估模型的性能。其中之一是categorical_accuracy()函数,用于计算分类准确率。

在深度学习任务中,分类准确率是评估模型分类性能的一个重要指标。它表示模型在所有样本上预测正确的比例。

下面是一个使用categorical_accuracy()函数的例子:

import tensorflow as tf
from tensorflow import keras

# 构建模型
model = keras.Sequential([
    keras.layers.Dense(64, activation='relu', input_shape=(100,)),
    keras.layers.Dense(64, activation='relu'),
    keras.layers.Dense(10, activation='softmax')
])

# 编译模型
model.compile(optimizer=tf.keras.optimizers.Adam(),
              loss=tf.keras.losses.CategoricalCrossentropy(),
              metrics=[tf.keras.metrics.CategoricalAccuracy()])

# 准备数据
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train = x_train.reshape((60000, 784))
x_test = x_test.reshape((10000, 784))
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255
y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)

# 训练模型
model.fit(x_train, y_train, epochs=5, batch_size=32, verbose=1)

# 评估模型
test_loss, test_accuracy = model.evaluate(x_test, y_test)

print('Test Accuracy: ', test_accuracy)

在上面的例子中,首先创建了一个模型,由三个密集层组成,其中最后一层是用于多类别分类任务的softmax层。

接下来,通过model.compile()函数编译模型,使用Adam优化器和CategoricalCrossentropy损失函数。在metrics参数中通过CategoricalAccuracy()函数传入了一个度量函数,用于计算分类准确率。

然后,加载了MNIST数据集,并进行预处理。

最后,使用model.fit()函数训练模型,并使用model.evaluate()函数评估模型的性能。其中,分类准确率通过变量test_accuracy获取,并打印输出。

这里的categorical_accuracy()函数计算的是基于预测的概率分布和真实标签之间的准确率。预测的类别为具有最高概率值的类别。

总结来说,categorical_accuracy()函数是Keras中用于计算分类准确率的度量函数,用于评估模型分类任务的性能。