1

我正在尝试使用 keras 在 ResNet50 上运行 MNIST 数据集。我被困在 mnist 数据集上使用 ImageDatagenerator 的部分,因为 keras 可以从目录导入文件。如果我理解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')
4

2 回答 2

1

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 层来调整图像的大小 Link to SO answer

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

于 2018-04-16T03:06:26.970 回答
0

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

于 2019-02-15T09:45:44.467 回答