首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从目录加载图像数据集,而不是从tf.load加载MNIST数据集

传统上,我们使用tf.keras.datasets模块中的load_data()函数来加载常见的图像数据集,如MNIST。但是,当我们想要加载自定义的图像数据集时,我们需要从目录加载图像数据集。

下面是完善且全面的答案:

从目录加载图像数据集是指将图像数据集组织为一系列目录,每个目录包含一个类别的图像样本。这种方式对于自定义图像数据集非常有用,例如当我们有一个包含不同类别的图像文件夹时。

这种加载方式的优势是可以更灵活地处理各种类型的图像数据集,并且可以直接使用tf.keras中的ImageDataGenerator类进行数据增强和批量处理。

以下是使用TensorFlow实现从目录加载图像数据集的步骤:

  1. 准备数据集:将图像数据集组织为一系列目录,每个目录代表一个类别,目录的名称即为类别的名称。每个目录中存放该类别的图像样本。
  2. 导入相关库:
代码语言:txt
复制
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
  1. 定义图像数据生成器:
代码语言:txt
复制
datagen = ImageDataGenerator(
    rescale=1./255,  # 对图像进行缩放
    shear_range=0.2,  # 图像剪切强度
    zoom_range=0.2,  # 图像缩放强度
    horizontal_flip=True  # 图像水平翻转
)
  1. 加载数据集:
代码语言:txt
复制
dataset_dir = '/path/to/dataset'  # 数据集目录的路径
batch_size = 32  # 批量处理的图像数量

train_dataset = datagen.flow_from_directory(
    dataset_dir+'/train',  # 训练集目录路径
    target_size=(224, 224),  # 图像统一尺寸
    batch_size=batch_size,
    class_mode='categorical'  # 分类模式
)

val_dataset = datagen.flow_from_directory(
    dataset_dir+'/val',  # 验证集目录路径
    target_size=(224, 224),
    batch_size=batch_size,
    class_mode='categorical'
)

在上述代码中,我们使用ImageDataGenerator类定义了一个图像数据生成器,并进行了一些数据增强操作,如图像缩放、剪切和翻转等。然后,通过调用flow_from_directory()函数,指定数据集目录的路径以及一些参数,如图像的统一尺寸、批量处理的图像数量和分类模式,来加载训练集和验证集的图像数据。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):用于存储和管理大规模的非结构化数据,如图像数据集。详细信息请参考:https://cloud.tencent.com/product/cos
  • 腾讯云机器学习平台(MLPaaS):提供了丰富的机器学习算法和模型训练服务,可以用于处理图像数据集。详细信息请参考:https://cloud.tencent.com/product/mlp
  • 腾讯云云服务器(CVM):可用于托管和部署机器学习模型和应用程序。详细信息请参考:https://cloud.tencent.com/product/cvm
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • TensorFlow从1到2(二)续讲从锅炉工到AI专家

    原文第四篇中,我们介绍了官方的入门案例MNIST,功能是识别手写的数字0-9。这是一个非常基础的TensorFlow应用,地位相当于通常语言学习的"Hello World!"。 我们先不进入TensorFlow 2.0中的MNIST代码讲解,因为TensorFlow 2.0在Keras的帮助下抽象度比较高,代码非常简单。但这也使得大量的工作被隐藏掉,反而让人难以真正理解来龙去脉。特别是其中所使用的样本数据也已经不同,而这对于学习者,是非常重要的部分。模型可以看论文、在网上找成熟的成果,数据的收集和处理,可不会有人帮忙。 在原文中,我们首先介绍了MNIST的数据结构,并且用一个小程序,把样本中的数组数据转换为JPG图片,来帮助读者理解原始数据的组织方式。 这里我们把小程序也升级一下,直接把图片显示在屏幕上,不再另外保存JPG文件。这样图片看起来更快更直观。 在TensorFlow 1.x中,是使用程序input_data.py来下载和管理MNIST的样本数据集。当前官方仓库的master分支中已经取消了这个代码,为了不去翻仓库,你可以在这里下载,放置到你的工作目录。 在TensorFlow 2.0中,会有keras.datasets类来管理大部分的演示和模型中需要使用的数据集,这个我们后面再讲。 MNIST的样本数据来自Yann LeCun的项目网站。如果网速比较慢的话,可以先用下载工具下载,然后放置到自己设置的数据目录,比如工作目录下的data文件夹,input_data检测到已有数据的话,不会重复下载。 下面是我们升级后显示训练样本集的源码,代码的讲解保留在注释中。如果阅读有疑问的,建议先去原文中看一下样本集数据结构的图示部分:

    00
    领券