10 类图像分类模型预测结果可视化

本示例展示如何使用 Python 代码可视化 10 类图像分类模型的预测结果。

test_images, test_labels = next(validation_generator)
predicted_labels = model.predict(test_images)
# 随机选择 15 张图片,并展示它们的预测结果
fig, ax = plt.subplots(3, 5, figsize=(12, 8))
fig.suptitle('Random Test Images with Predictions', fontsize=16)

for i, axis in enumerate(ax.flat):
    index = np.random.randint(len(test_images))
    image = test_images[index]
    label = test_labels[index].argmax(axis=-1)
    predicted_label = predicted_labels[index].argmax(axis=-1)
    # 显示图片和它的预测标签
    axis.imshow(image)
    axis.axis('off')
    class_names =['cane', 'cavallo', 'elefante', 'farfalla', 'gallina', 'gatto', 'mucca', 'pecora', 'ragno', 'scoiattolo']
    # 显示原始图像以及它的实际标签和模型预测的标签
    axis.set_title('Actual: ' + class_names[label] + '\nPredicted: ' + class_names[predicted_label])

plt.show()

代码解释:

  1. test_images, test_labels = next(validation_generator):获取一批测试数据。
  2. predicted_labels = model.predict(test_images):使用模型对测试数据进行预测。
  3. fig, ax = plt.subplots(3, 5, figsize=(12, 8)):创建画布,用于展示图片。
  4. for i, axis in enumerate(ax.flat):循环遍历画布上的每个子图。
  5. index = np.random.randint(len(test_images)):随机选择一张测试图片。
  6. image = test_images[index]:获取图片数据。
  7. label = test_labels[index].argmax(axis=-1):获取图片的实际标签。
  8. predicted_label = predicted_labels[index].argmax(axis=-1):获取图片的预测标签。
  9. axis.imshow(image):在子图上展示图片。
  10. axis.axis('off'):隐藏子图坐标轴。
  11. axis.set_title('Actual: ' + class_names[label] + '\nPredicted: ' + class_names[predicted_label]):在子图上显示图片的实际标签和预测标签。

运行代码后,将会展示 15 张随机选择的测试图片,以及它们的实际标签和模型预测的标签。


原文地址: https://www.cveoy.top/t/topic/o8Rt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录