如何在tensorflow中加载本地图像

时间:2019-10-26 13:09:39

标签: python tensorflow conv-neural-network

我从tensorflow文档中发现,加载名为“ flower_photos”的数据集的代码是

  

data_dir = tf.keras.utils.get_file(origin ='https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz',                                            fname ='flower_photos',untar = True)

我在本地计算机上有一些图像,并且希望加载并使用它来进行某些神经网络算法(例如CNN)。如何在张量流中加载和预处理本地存储的图像?

1 个答案:

答案 0 :(得分:0)

这是通过Keras的图像预处理功能完成的。

我将根据Keras文档中的示例提供一些解释(有关更多信息,请read the docs。)

此预处理为培训提供了一条管道,并且有一种.flow_from_directory()方法可从本地文件系统读取。

在文档的此示例中,通过水平翻转图片并应用0.2的剪切范围和缩放范围来增强图片。进行了重新缩放以将RGB值标准化为0到1的范围。

train_datagen = ImageDataGenerator(
        rescale=1./255,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
        'data/train',
        target_size=(150, 150),
        batch_size=32,
        class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
        'data/validation',
        target_size=(150, 150),
        batch_size=32,
        class_mode='binary')

model.fit_generator(
        train_generator,
        steps_per_epoch=2000,
        epochs=50,
        validation_data=validation_generator,
        validation_steps=800)

使用此ImageDataGenerator,您可以使用.fit_generator()方法(而不是.fit())来使用此准备好的管道来进行模型处理。

steps_per_epoch * batch_size应该等于训练数据的大小。 validate_steps * batch_size应该等于验证数据的大小。