使用 Python 随机选择图片并进行图像分类预测
import random
random.seed(1) # 设置随机种子,保证每次运行代码时选取的图片相同
# 随机选择6张图片
test_images = random.sample(os.listdir(val_dir), 6) # 从 val_dir 目录中随机选择 6 张图片
# 创建一个2x3的子图,指定图像大小
fig, axs = plt.subplots(2, 3, figsize=(12, 8)) # 创建一个包含 6 个子图的图,每个子图的大小为 12x8 英寸
axs = axs.flatten() # 将子图列表展开成一维数组
# 对每张图片进行预测并显示
for i, img_name in enumerate(test_images): # 遍历随机选择的图片列表
# 加载图像并将其调整为指定的大小
img = image.load_img(os.path.join(val_dir, img_name), target_size=(IMG_HEIGHT, IMG_WIDTH)) # 加载图片,并将其调整为 IMG_HEIGHT x IMG_WIDTH 大小
img = image.img_to_array(img) # 将图片转换为 NumPy 数组
img = img / 255.0 # 归一化图片,将像素值缩放到 0 到 1 之间
img = np.expand_dims(img, axis=0) # 在图片张量前面添加一个维度,使其符合模型的输入要求
# 进行预测
prediction = model.predict(img) # 使用训练好的模型对图片进行预测
predicted_class = classes[np.argmax(prediction)] # 获取预测结果中概率最大的类别
# 在子图中显示图像和预测结果
axs[i].imshow(image.load_img(os.path.join(val_dir, img_name))) # 在子图中显示图片
axs[i].set_title(f'Predicted: {predicted_class}') # 设置子图的标题,显示预测结果
axs[i].axis('off') # 关闭子图的坐标轴
plt.tight_layout() # 自动调整子图之间的间距,避免子图重叠
plt.show() # 显示图像
原文地址: https://www.cveoy.top/t/topic/pitB 著作权归作者所有。请勿转载和采集!