首页 新闻 会员 周边

MNIST手写数据集识别

0
悬赏园豆:60 [已解决问题] 解决于 2023-05-04 16:07

使用Python语言, 用sys,os包实现MNIST手写数据集识别,修改程序代码,实现记录所有识别错误的图片信息,并且将所有识别错误的图片单独保存在一个指定的文件夹内,目前得到识别正确率为93.2%,求教如何保存错误图片信息

小虎Paulo的主页 小虎Paulo | 初学一级 | 园豆:148
提问于:2023-05-03 16:52
< >
分享
最佳答案
0

可以使用以下步骤来记录所有识别错误的图片信息,并将它们保存到一个指定的文件夹中:

在程序中引入os和sys包,并创建一个用于保存错误图片的文件夹,如"error_images"。
在测试数据集上进行预测,并将预测结果与真实标签进行比较,找出预测错误的图片。
将错误图片的文件名添加到一个列表中。
将错误图片从原始目录中复制到指定的错误图片文件夹中。
将错误图片的文件名列表保存到文件中,以备后续使用。
以下是实现上述步骤的Python代码:

python

import os
import sys
import numpy as np
from keras.datasets import mnist
from keras.models import load_model
from shutil import copyfile

Load MNIST test data

(x_test, y_test), _ = mnist.load_data()

Reshape data

x_test = np.reshape(x_test, (len(x_test), 28, 28, 1))
x_test = x_test.astype('float32') / 255

Load pre-trained model

model = load_model('mnist_model.h5')

Create directory for error images

if not os.path.exists('error_images'):
os.makedirs('error_images')

List to store error image filenames

error_images = []

Make predictions on test data

predictions = model.predict(x_test)

Iterate over predictions and true labels to find errors

for i, (pred, true) in enumerate(zip(predictions, y_test)):
# Find index of predicted label
pred_label = np.argmax(pred)

# If prediction is incorrect, save image and add filename to list
if pred_label != true:
    # Save image to error_images directory
    filename = f"error_image_{i}.png"
    copyfile(f"test_images/image_{i}.png", f"error_images/{filename}")
    error_images.append(filename)

Save list of error image filenames to file

with open("error_image_filenames.txt", "w") as f:
f.write('\n'.join(error_images))
在上面的代码中,我们首先加载MNIST测试数据集并将其转换为模型输入格式。然后,我们加载预训练模型并创建一个目录来存储所有的错误图片。接下来,我们通过模型对测试数据集进行预测,并将每个预测结果与真实标签进行比较以找出错误的预测。当找到错误的预测时,我们将该图片从原始目录中复制到错误图片文件夹中,并将该文件名添加到错误图片列表中。最后,我们将所有错误图片的文件名保存到一个文件中,以备后续使用。

收获园豆:60
Technologyforgood | 大侠五级 |园豆:5669 | 2023-05-03 21:04

感谢感谢

小虎Paulo | 园豆:148 (初学一级) | 2023-05-04 15:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册