Python图像分类模型评估与预测结果可视化
Python图像分类模型评估与预测结果可视化
这篇文章介绍如何使用Python评估图像分类模型的性能,并通过可视化方法将预测结果与真实标签进行对比。
代码示例
以下代码展示了如何计算模型的准确率和损失值,以及如何随机选择测试样本进行预测并展示结果:python# 进行预测并计算准确率和损失值loss, accuracy = model.evaluate(test_data_gen)print('Loss: {:.2f}'.format(loss))print('Accuracy: {:.2f}%'.format(accuracy * 100))
随机选择一些测试样本进行展示for i in range(5): rand_num = random.randint(0, total_test - 1) # 随机选择一个样本 img, label = test_data_gen[rand_num] # 获取样本图像和标签 img = img[0] # 从batch中取出单个图像 label_name = class_names[np.argmax(label)] # 获取标签名称 pred_class = model.predict_classes(img.reshape(1, IMG_HEIGHT, IMG_WIDTH, 3)) # 获取预测结果的类别 pred_name = class_names[pred_class[0]] # 获取预测结果名称 plt.title('真实标签: {}, 预测标签: {}'.format(label_name, pred_name)) plt.imshow(img) plt.show()
代码解读
-
模型评估: -
model.evaluate(test_data_gen): 使用测试数据集评估模型,返回损失值和准确率。 -print('Loss: {:.2f}'.format(loss))和print('Accuracy: {:.2f}%'.format(accuracy * 100)): 打印损失值和准确率。 -
预测结果可视化: -
for i in range(5):: 循环五次,随机选择五个测试样本。 -rand_num = random.randint(0, total_test - 1): 随机选择一个样本的索引。 -img, label = test_data_gen[rand_num]: 获取选择的样本的图像和标签。 -img = img[0]: 从batch中取出单个图像。 -label_name = class_names[np.argmax(label)]: 获取标签名称。 -pred_class = model.predict_classes(img.reshape(1, IMG_HEIGHT, IMG_WIDTH, 3)): 使用模型预测图像的类别。 -pred_name = class_names[pred_class[0]]: 获取预测结果的名称。 -plt.title('真实标签: {}, 预测标签: {}'.format(label_name, pred_name)): 设置图像标题,显示真实标签和预测标签。 -plt.imshow(img): 显示图像。 -plt.show(): 展示图像。
注意: - class_names 是一个列表,包含所有类别的名称。- IMG_HEIGHT 和 IMG_WIDTH 分别代表图像的高度和宽度。- total_test 是测试数据集的大小。
这段代码展示了如何评估图像分类模型并可视化预测结果,帮助开发者更直观地理解模型的性能。
原文地址: https://www.cveoy.top/t/topic/gs8 著作权归作者所有。请勿转载和采集!