是否可以只加载 TensorFlow 数据集的一部分?

Syt*_*tze 4 python tensorflow tensorflow-datasets

我在 Google Colab 中有一个笔记本,其中包含以下代码:

batch_size = 64
dataset_name = 'coco/2017_panoptic'

tfds_dataset, tfds_info = tfds.load(
    dataset_name, 
    split='train', 
    with_info=True)
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以使用该tfds_load函数仅下载部分数据集(例如:5% 或 X 个图像)。据我在文档中看到,没有任何理由可以这样做。当然,下载后可以对数据集进行切片,但这个特定数据集 ( coco/2017_panoptic) 为 19.57 GiB,这显然需要相当长的时间来下载。

小智 7

最初的问题是关于如何下载数据集的子集。

因此,建议使用参数作为split='train[:5%]'仅下载 5% 训练数据的方式的答案是错误的。看起来这仍然会下载整个数据集,但只加载了 5%。

mnist_ds_5p = tfds.load("mnist", split="train[:5%]") 您可以通过运行以下命令来亲自检查这一点 mnist_ds = tfds.load("mnist", split="train")

运行第二个命令后不会进行下载。这是因为在运行第一个命令后整个数据集已经被下载并缓存!

由于许多数据集是从压缩形式获取的,我怀疑是否有一种简单的方法可以避免下载整个数据集。