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

ImageFolder数据集是否包含标签?获取标签时报Subset无labels属性如何处理

ImageFolder常见问题解答

ImageFolder的标签属性与存储内容

  • 原生ImageFolder类默认自带标签,它会自动将同级子文件夹的名称作为类别名,按字典序为每个类别分配从0开始的数字标签,无需手动标注。
  • ImageFolder实例内置的核心可访问属性包括:
    • classes:所有类别的名称列表,顺序和标签数字一一对应
    • class_to_idx:类别名到数字标签的映射字典
    • samples/imgs:所有样本组成的列表,每个元素是(图片完整路径, 对应数字标签)的元组
    • labels:所有样本的数字标签组成的列表,和样本顺序一致

'Subset' object has no attribute 'labels'报错解决

该报错的本质是你操作的对象不是原生ImageFolder实例,而是使用random_split等拆分函数对ImageFolder切分后得到的Subset实例,Subset作为包装类本身没有labels属性。
两种通用解决方法:

  1. 通过Subset内置的dataset属性访问原ImageFolder的标签,再配合indices属性筛选对应拆分部分的标签:
# 示例:假设拆分得到的训练集对象为train_subset
origin_labels = train_subset.dataset.labels
train_labels = [origin_labels[idx] for idx in train_subset.indices]
  1. 直接遍历Subset提取标签,适配所有版本的torchvision,无需关心原数据集属性:
train_labels = [label for img, label in train_subset]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:15:03