TensorFlow Datasets项目:如何创建新的数据集集合

TensorFlow Datasets项目:如何创建新的数据集集合

datasets TFDS is a collection of datasets ready to use with TensorFlow, Jax, ... datasets 项目地址: https://gitcode.com/gh_mirrors/dat/datasets

前言

在机器学习项目中,数据集的组织和管理是一个重要环节。TensorFlow Datasets项目提供了一种高效的方式来管理和使用数据集。本文将详细介绍如何在TensorFlow Datasets项目中创建新的数据集集合(Dataset Collection),帮助开发者更好地组织和管理相关数据集。

什么是数据集集合

数据集集合是TensorFlow Datasets中的一个重要概念,它允许开发者将多个相关的数据集组织在一起。这种组织方式特别适合以下场景:

  1. 同一研究领域的不同数据集
  2. 同一任务的不同版本数据集
  3. 需要联合使用的多个数据集

创建数据集集合的基本步骤

要创建一个名为my_collection的数据集集合,需要按照以下结构组织文件:

my_collection/
  __init__.py
  my_collection.py        # 数据集集合定义文件
  my_collection_test.py   # 测试文件(可选)
  description.md          # 集合描述(可选)
  citations.md            # 引用信息(可选)

数据集集合的核心实现

所有数据集集合都需要继承tfds.core.dataset_collection_builder.DatasetCollection基类。下面我们来看一个最小实现示例:

import collections
from typing import Mapping
from tensorflow_datasets.core import dataset_collection_builder
from tensorflow_datasets.core import naming

class MyCollection(dataset_collection_builder.DatasetCollection):
  """我的数据集集合文档说明"""
  
  @property
  def info(self):
    return dataset_collection_builder.DatasetCollectionInfo.from_cls(
        dataset_collection_class=self.__class__,
        description="这里是数据集集合的详细描述",
        release_notes={
            "1.0.0": "初始版本发布",
            "1.1.0": "新增数据集3"
        },
    )

  @property
  def datasets(self):
    return collections.OrderedDict({
        "1.0.0":
            naming.references_for({
                "dataset_1": "natural_questions/default:0.0.2",
                "dataset_2": "media_sum:1.0.0",
            }),
        "1.1.0":
            naming.references_for({
                "dataset_1": "natural_questions/longt5:0.1.0",
                "dataset_2": "media_sum:1.0.0",
                "dataset_3": "squad:3.0.0"
            })
    })

元数据定义(info方法)

info方法返回数据集集合的元数据,包含以下关键信息:

  1. 名称:数据集集合的标识符
  2. 描述:Markdown格式的详细说明
    • 可以直接写在代码中
    • 也可以放在单独的description.md文件中
  3. 版本说明:记录每个版本的变更
  4. 引用信息:BibTeX格式的引用
    • 可以直接写在代码中
    • 也可以放在单独的citations.bib文件中

数据集定义(datasets方法)

datasets方法定义了集合中包含的具体数据集,采用版本化组织方式。每个版本包含一组数据集引用,有两种表示方法:

方法一:直接使用DatasetReference

"1.0.0": {
    "dataset_name":
        naming.DatasetReference(
            dataset_name="真实数据集名",
            version="1.0.0"
        ),
}

方法二:使用references_for简化

"1.0.0":
    naming.references_for({
        "dataset_name": "真实数据集名:1.0.0",
    }),

测试数据集集合

为了保证数据集集合的正确性,建议编写测试用例。TensorFlow Datasets提供了测试基类DatasetCollectionTestBase,可以方便地进行以下验证:

  1. 集合是否正确注册
  2. 引用的数据集是否存在

基本测试类实现:

from tensorflow_datasets.testing.dataset_collection_builder_testing import DatasetCollectionTestBase
from . import my_collection

class TestMyCollection(DatasetCollectionTestBase):
  DATASET_COLLECTION_CLASS = my_collection.MyCollection

可以配置的测试参数:

  • VERSION:指定要测试的版本
  • DATASETS_TO_TEST:指定要测试的数据集子集
  • CHECK_DATASETS_VERSION:是否检查数据集版本

最佳实践建议

  1. 版本控制:合理规划数据集集合的版本,记录每个版本的变更
  2. 描述清晰:提供详细的描述信息,方便其他开发者理解
  3. 测试覆盖:尽可能覆盖所有数据集引用
  4. 引用规范:遵循学术规范提供数据集引用信息
  5. 组织结构:相关数据集组织在一起,提高使用效率

总结

通过本文,我们了解了在TensorFlow Datasets项目中创建数据集集合的完整流程。数据集集合是组织和管理相关数据集的有效方式,能够提高机器学习项目的开发效率。合理使用这一功能,可以使你的数据集管理更加规范化和系统化。

datasets TFDS is a collection of datasets ready to use with TensorFlow, Jax, ... datasets 项目地址: https://gitcode.com/gh_mirrors/dat/datasets

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨洲泳Egerton

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值