我们如何导入 MNIST 图像而不是数据帧



我正在尝试使用keras在ResNet50上运行MNIST数据集。我被困在 keras 中可用于从目录中导入文件的 mnist 数据集上使用图像数据生成器的部分。如果我正确理解了data_generator.flow_from_directory,那么它要求图像的路径作为其第一个参数。

但是,我无法弄清楚如何输入这些可用的mnist数据。

我知道from keras.datasets import mnist中可用的文件是作为数据帧导入的。 而flow_from_directory('../input/train',..)询问图像的路径

任何帮助将不胜感激。

from tensorflow.python.keras.applications.resnet50 import preprocess_input
from tensorflow.python.keras.preprocessing.image import ImageDataGenerator
image_size = 224
data_generator = ImageDataGenerator() 
import pandas
train_generator = data_generator.flow_from_directory(
        '../input/train',
        target_size=(image_size, image_size),
        batch_size=200,
        class_mode='categorical')
validation_generator = data_generator.flow_from_directory(
        '../input/val',
        target_size=(image_size, image_size),
        class_mode='categorical')

Mnist 数据集与 keras 集成。您可以按如下方式使用它

from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()

在这种情况下,您将不需要ImageDataGenerator。您可以只拟合返回到模型的元组

model.fit(x= x_train, y= y_train, validation_data= (x_test,y_test))

源 - keras 数据集
源 - 模型类 API

编辑:
至于Resnet,您可以尝试使用Lambda层来调整图像大小链接到 SO 答案

另一种方法是将数据帧转换为 numpy 数组,并使用上面代码中显示的 fit 函数

将 MNIST 查找为 JPG (https://www.kaggle.com/scolianni/mnistasjpg( 并使用它。从您的代码('../input/train'(我猜你正在使用Kaggle内核。您只需通过右侧的+添加数据按钮将数据添加到笔记本,然后将MNIST作为JPG格式。但是我在这里发现了奇怪的错误 - 内核没有读取 MNIST 数据库。解决方法是将 MNIST 下载为 JPG,在本地解压缩,然后再次打包并在使用前上传到私有数据库(。

相关内容

最新更新