京公网安备 11010802034615号
经营许可证编号:京B2-20210330
TensorFlow Datasets(TFDS)是一个用于下载、管理和预处理机器学习数据集的库。它提供了易于使用的API,允许用户从现有集合中选择并下载各种数据集。然而,在一些情况下,用户可能需要使用本地数据集进行模型训练和测试。在本文中,我们将介绍如何使用TFDS加载本地数据集。
为了加载本地数据集,我们需要做以下几个步骤:
1.准备数据集 2.创建TFDS数据集描述文件 3.使用描述文件加载数据集
首先,我们需要准备我们要使用的数据集。这通常涉及到收集、清洗和组织数据,以便可以轻松地访问数据。在本例中,我们将使用一个简单的示例数据集,其中包含数字图像和相应的标签。
该数据集的目录结构类似于以下内容:
data/
0/
image1.png
image2.png
...
1/
image1.png
image2.png
...
...
在上面的目录结构中,每个数字目录代表一个唯一的标签,并包含与该标签相关联的所有图像。
接下来,我们需要创建一个TFDS数据集描述文件。该文件告诉TFDS如何读取和使用我们的本地数据集。描述文件通常是一个Python模块,其中包含有关数据集的元数据和函数,该函数将数据集加载到内存中。
在描述文件中,我们需要定义以下元数据:
1.名称:数据集的名称。 2.版本:数据集的版本号。 3.描述:数据集的简短描述。 4.特征:数据集的特征(例如,输入和输出的形状、数据类型等)。 5.拆分:数据集应该如何划分以进行训练、验证和测试。 6.下载URL(可选):如果数据集没有被打包成一个文件,请提供一个URL以下载数据集。
以下是一个简单的描述文件示例:
import tensorflow_datasets as tfds import os # Define the metadata for the dataset _DESCRIPTION = 'A dataset containing images of digits.' _VERSION = tfds.core.Version('1.0.0')
_NAME = 'my_dataset' def my_dataset(split): # Define the path to the data directory data_dir = os.path.join(os.getcwd(), 'data') # Define the classes classes = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] # Load the data dataset_builder = tfds.builder(_NAME)
dataset_builder.data_dir = data_dir
dataset_builder.add_images(
os.path.join(data_dir, '*/*'),
labels=classes,
) return dataset_builder.as_dataset(split=split)
在上面的代码中,我们定义了一个名为my_dataset的函数,该函数将数据集加载到内存中。我们还定义了元数据,包括数据集的名称、版本和描述,以及数据集的特征和拆分方式。
最后,我们使用tfds.builder()函数创建了一个dataset_builder对象,并使用add_images()方法将图像添加到数据集中。请注意,此处我们使用了data_dir变量来指定数据集的路径。如果您的数据集存在其他位置,则需要更改此变量的值以反映正确的路径。
使用上述描述文件,我们可以通过调用tfds.load()函数来加载本地数据集。这个函数需要传递三个参数:数据集名称、数据集拆分方式和描述文件的路径或模块。
以下是一个简单的例子:
import tensorflow_datasets as tfds # Load the data my_dataset = tfds.load(
name='my_dataset',
split='train',
data_dir='./data',
download=False,
with_info=True,
) # Print
在上面的代码中,我们使用tfds.load()函数来加载名为my_dataset的数据集,使用了train拆分并指定了数据集路径。此外,我们将with_info参数设置为True以获取有关数据集的元信息。
一旦数据集被加载到内存中,我们可以像其他TFDS数据集一样使用它进行训练或测试。
在本文中,我们介绍了如何使用TFDS加载本地数据集。首先,我们准备了数据集,并创建了一个TFDS数据集描述文件。然后,我们使用tfds.load()函数将数据集加载到内存中,并使用它来训练或测试模型。虽然这种方法可能需要更多的手动操作,但它允许用户使用自己的数据集进行机器学习,从而获得更好的控制和灵活性。
相信读完上文,你对算法已经有了全面认识。若想进一步探索机器学习的前沿知识,强烈推荐机器学习之半监督学习课程。
学习入口:https://edu.cda.cn/goods/show/3826?targetId=6730&preview=0
涵盖核心算法,结合多领域实战案例,还会持续更新,无论是新手入门还是高手进阶都很合适。赶紧点击链接开启学习吧!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
教材入口:https://edu.cda.cn/goods/show/3151 “纲举目张,执本末从。” 若想在数据分析领域有所收获,一套合适的学习教材至 ...
2025-11-04【2025最新版】CDA考试教材:CDA教材一级:商业数据分析(2025)__商业数据分析_cda教材_考试教材 (cdaglobal.com) ...
2025-11-04在数字化时代,数据挖掘不再是实验室里的技术探索,而是驱动商业决策的核心能力 —— 它能从海量数据中挖掘出 “降低成本、提升 ...
2025-11-04在 DDPM(Denoising Diffusion Probabilistic Models)训练过程中,开发者最常困惑的问题莫过于:“我的模型 loss 降到多少才算 ...
2025-11-04在 CDA(Certified Data Analyst)数据分析师的工作中,“无监督样本分组” 是高频需求 —— 例如 “将用户按行为特征分为高价值 ...
2025-11-04当沃尔玛数据分析师首次发现 “啤酒与尿布” 的高频共现规律时,他们揭开了数据挖掘最迷人的面纱 —— 那些隐藏在消费行为背后 ...
2025-11-03这个问题精准切中了配对样本统计检验的核心差异点,理解二者区别是避免统计方法误用的关键。核心结论是:stats.ttest_rel(配对 ...
2025-11-03在 CDA(Certified Data Analyst)数据分析师的工作中,“高维数据的潜在规律挖掘” 是进阶需求 —— 例如用户行为包含 “浏览次 ...
2025-11-03在 MySQL 数据查询中,“按顺序计数” 是高频需求 —— 例如 “统计近 7 天每日订单量”“按用户 ID 顺序展示消费记录”“按产品 ...
2025-10-31在数据分析中,“累计百分比” 是衡量 “部分与整体关系” 的核心指标 —— 它通过 “逐步累加的占比”,直观呈现数据的分布特征 ...
2025-10-31在 CDA(Certified Data Analyst)数据分析师的工作中,“二分类预测” 是高频需求 —— 例如 “预测用户是否会流失”“判断客户 ...
2025-10-31在 MySQL 实际应用中,“频繁写入同一表” 是常见场景 —— 如实时日志存储(用户操作日志、系统运行日志)、高频交易记录(支付 ...
2025-10-30为帮助教育工作者、研究者科学分析 “班级规模” 与 “平均成绩” 的关联关系,我将从相关系数的核心定义与类型切入,详解 “数 ...
2025-10-30对 CDA(Certified Data Analyst)数据分析师而言,“相关系数” 不是简单的数字计算,而是 “从业务问题出发,量化变量间关联强 ...
2025-10-30在构建前向神经网络(Feedforward Neural Network,简称 FNN)时,“隐藏层数目设多少?每个隐藏层该放多少个神经元?” 是每个 ...
2025-10-29这个问题切中了 Excel 用户的常见困惑 —— 将 “数据可视化工具” 与 “数据挖掘算法” 的功能边界混淆。核心结论是:Excel 透 ...
2025-10-29在 CDA(Certified Data Analyst)数据分析师的工作中,“多组数据差异验证” 是高频需求 —— 例如 “3 家门店的销售额是否有显 ...
2025-10-29在数据分析中,“正态分布” 是许多统计方法(如 t 检验、方差分析、线性回归)的核心假设 —— 数据符合正态分布时,统计检验的 ...
2025-10-28箱线图(Box Plot)作为展示数据分布的核心统计图表,能直观呈现数据的中位数、四分位数、离散程度与异常值,是质量控制、实验分 ...
2025-10-28在 CDA(Certified Data Analyst)数据分析师的工作中,“分类变量关联分析” 是高频需求 —— 例如 “用户性别是否影响支付方式 ...
2025-10-28