【发布时间】:2021-12-14 09:06:43
【问题描述】:
最近我从this page下载了CelebA数据集。现在我想使用 tensforflow_dataset 包中的 tfds.load 函数访问它。
我的 zip 文件名为 celeb_a 放在文件夹 C:/Users/name
要从 python 访问它,我使用了代码:
import tensorflow_datasets as tfds
ds = tfds.load("celeb_a", data_dir=r'C:\Users\name', split='train', download=False)
导致错误:
AssertionError: Dataset celeb_a: could not find data in C:\Users\name. Please make sure to call dataset_builder.download_and_prepare(), or pass download=True to tfds.load() before trying to access the tf.data.Dataset object.
我也试过用:
builder = tfds.image.CelebA(data_dir="C:/Users/name")
在调用tfds.load 之前,输出完全相同。
使用 python 下载 CelebA 数据集非常复杂,因为很容易超过每日配额 - 这就是我从官方页面下载它的原因,现在我想手动将它加载到 python。你能帮我做吗?
【问题讨论】:
-
data_dir期望数据已经解压缩(并根据download_and_prepare在数据集定义中所做的准备)。您必须自己重做 zip 文件上的准备步骤,并将结果放在 C:/Users/name 中,以便 tfds.load 工作。 -
我提取了 zip 文件,所以现在我有一个文件夹,其中包含名为
celeb_a的 CelebA 数据集。我使用了代码builder.download_and_prepare(download_dir=r"C:/Users/name"),但出现错误:Failed to create a directory: C/Users/name/celeb_a\celeb_a\0.3.0.incompleteOFHXNF; No such file or directory。你知道为什么吗? -
哦..我想我明白了。所以
download_and_prepare下载数据集并准备它。但是,因为我没有下载它,所以我必须自己“准备”它。对吗? -
确实如此。我正在检查是否有办法告诉 TFDS“请使用此存档而不是重新下载所有内容”,但我找不到任何内容
-
另外,关于“使用 python 下载 CelebA 数据集非常复杂,因为很容易超过每日配额”:您只需下载(并准备)数据集一次,下次你使用它时,它会重用已经准备好的数据,所以配额应该不是问题。
标签: python tensorflow dataset tensorflow-datasets