如何在张量流中加载本地图像?

Posted

技术标签:

【中文标题】如何在张量流中加载本地图像?【英文标题】:How to load local images in tensorflow? 【发布时间】:2020-02-22 13:07:55 【问题描述】:

我从 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。如何在tensorflow中加载和预处理本地存储的图像?

【问题讨论】:

您是在我提供的帮助下成功的吗? 是的。但是我发现基本的python图像预处理很容易实现,原因可能是我是初学者。 请发布您的解决方案作为答案:) 【参考方案1】:

这是由 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 应该等于您的训练数据的大小。 validation_steps * batch_size 应该等于验证数据的大小。

【讨论】:

以上是关于如何在张量流中加载本地图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android WebView 中加载本地图像

如何在 Next.js 中加载外部图像?

在 WebView 中加载页面之前,用本地 Android 资源替换 HTML 文档的图像

iOS:如何在 webview 或 wkwebview 中加载动画 webp 图像

如何从子目录加载张量流中的数据

填充单元格后如何在单元格中加载/显示 UIImageView