You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CelebA数据集加载提示未找到或损坏,download=True无效如何解决?

报错核心原因

  • 导入语句存在语法错误,缺少import关键字
  • 手动下载的数据集目录结构不符合TorchVision内置CelebA类的读取要求
  • download=True失效是因为官方数据集源托管在谷歌云盘,区域访问受限会触发下载失败

解决步骤

方案1:使用TorchVision内置CelebA类(需要用到数据集标注时选择)

  1. 首先调整数据集目录为官方要求的结构:
你自定义的根目录/
└── celeba/
    ├── img_align_celeba/ # 所有人脸图片都放在这个文件夹里
    ├── list_attr_celeba.txt
    ├── list_eval_partition.txt
    ├── list_landmarks_align_celeba.txt
    └── identity_CelebA.txt

所有标注文件可以从你下载数据集的页面单独下载齐全,放到上述对应路径。

  1. 修正代码:
from torchvision import transforms
# 修正导入语法错误,补全import关键字
from torchvision.datasets import CelebA

celeba_transforms = transforms.Compose([
    transforms.CenterCrop(130),
    transforms.Resize([64, 64]),
    transforms.ToTensor()
])

# root填你自定义的根目录路径,不要直接写图片文件夹路径
train_dataset = CelebA(
    root='你自定义的根目录的路径',
    split='train',
    download=False,
    transform=celeba_transforms
)

方案2:使用ImageFolder加载(仅需要用到人脸图片时选择,更简单)

如果你不需要用到CelebA的属性、划分等标注信息,直接用ImageFolder类加载图片目录即可,不需要调整目录结构,也不需要下载标注文件:

from torchvision import transforms
from torchvision.datasets import ImageFolder

celeba_transforms = transforms.Compose([
    transforms.CenterCrop(130),
    transforms.Resize([64, 64]),
    transforms.ToTensor()
])

# root直接填你存放所有CelebA图片的文件夹路径
train_dataset = ImageFolder(
    root='img_align_celeba',
    transform=celeba_transforms
)

两种方案加载成功后,你定义的变换逻辑会自动在读取每张图片时生效。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:27:01