数据集未找到或已损坏。您可以使用 download=True 来下载它

Dataset not found or corrupted. You can use download=True to download it

最近我从 this page 下载了 CelebA 数据集。我想对这个数据集应用一些转换:

首先让我们定义转换:

from torchvision import transforms
from torchvision.datasets CelebA
celeba_transforms = transforms.Compose([
    transforms.CenterCrop(130),
    transforms.Resize([64, 64]),
    transforms.ToTensor()
    ])

现在执行它:

CelebA(root='img_align_celeba',
       split='train',
       download=False,
       transform=celeba_transforms)

但是此代码的结果是错误的:

Dataset not found or corrupted. You can use download=True to download it

设置download=True 也不起作用。你能帮我把这些转换应用到这个数据集吗?

似乎出于某些 copyright/privacy/legal 的考虑,CelebA 数据集正在慢慢“脱离网格”。
如果实在非要用的话,试试百度网盘下载吧

其他用户报告可能存在 ,重试可能会解决问题。

当您尝试 download=True 时遇到的错误到底是什么?

我终于解决了这个问题。我正在发布我的解决方案:

问题一

由于达到每日配额,下载 zip 文件 img_align_celeba.zip 时出现问题。这个问题的解决方案是简单地从互联网上下载这个文件,例如Kaggle.

问题二

CelebA函数与download=True程序一起使用时,程序会想一会然后return出现问题标题中提到的错误。问题的原因是我在下面列出的损坏的 .txt 文件(这些文件也通过 CelebA 函数下载):

要正确使用此功能,您必须直接从互联网上下载这些 .txt 文件。我找到了它们 here。当您下载所有这些并替换旧的功能时 CelebA 应该可以正常工作。