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中用于计算分类准确率的度量函数,用于评估模型分类任务的性能。
