跳到内容

支持的数据集格式

本页列出了支持的数据集格式及其潜在限制。

在 YDF 中,传递数据集有两种方式

  • Python 数据集对象,例如 Pandas DataFrame。
  • 类型化路径 (typed-path),例如 "csv:/path/to/dataset"。

使用 Python 对象数据集具有灵活性,您可以轻松对数据应用预处理操作。但是,对于大型数据集效率较低,因为整个数据集需要加载到内存中。一般来说,Python 对象数据集最适合少于 1 亿个样本的数据集。

另一方面,类型化路径 (typed-path) 更节省内存,并且分布式训练需要使用它们。然而,它们不够灵活(预处理需要具体化输出),并且对某些格式和特征语义的支持有限。

提供 Python 数据集的推荐方法是使用 NumPy 数组字典。Pandas DataFrame 也受到良好支持。对于类型化路径数据集,目前的推荐是使用 TensorFlow Records,但这将来可能会改变。

格式 可用性 作为 Python 对象 类型化路径前缀 备注
NumPy 数组字典 公开 原生 高效;推荐用于小型数据集
Pandas DataFrame 公开 原生
csv 公开 csv 不支持多维特征。
TensorFlow Records (gzip 压缩) 公开 使用 ydf.util.read_tf_recordio tfrecord 高效;推荐用于大型数据集
TensorFlow Records (非压缩) 公开 使用 ydf.util.read_tf_recordio tfrecordv2 效率低;应避免使用
TensorFlow Tensor 公开 原生 效率低;应避免使用
TensorFlow Dataset 公开 原生 效率低;应避免使用
Xarray 公开 原生
TF Examples 的 SSTable 内部 sstable+tfe
TF Examples 的 RecordIO 内部 recordio+tfe 高效;推荐用于大型数据集
YDF Examples 的 RecordIO 内部 recordio+ygge 非常高效;适用于高级用户
Capacitor 内部 capacitor 非常高效;不支持多维特征。