Skip to content

支持的数据集格式

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

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

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

使用 Python 对象数据集提供了灵活性,因为您可以轻松地对数据应用预处理操作。然而,对于大型数据集,它们的效率较低,因为整个数据集需要加载到内存中。通常情况下,Python 对象数据集最适合少于 1 亿个样本的数据集。

另一方面,类型化路径更节省内存,并且是分布式训练所必需的。然而,它们的灵活性较低(预处理需要物化输出),并且对某些格式和特征语义的支持有限。

推荐提供 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: 非常高效;不支持多维特征。