PyTorch使用random_split后如何获取train_dataset的文件路径列表
实现方法
random_split 生成的训练/验证集是 Subset 类型对象,它本身不会额外存储样本路径,仅保存了原数据集的引用、以及划分得到的样本在原数据集中的索引列表,你可以结合原ImageFolder数据集的内置属性获取所有训练集路径:
- 首先通过
train_dataset.indices拿到所有训练集样本在原dataset中的下标 - 再从原
ImageFolder的samples属性中,按下标取出对应样本的路径即可,samples的每个元素是(样本路径, 标签)的元组
代码示例
# 仅获取训练集所有文件路径 train_file_paths = [dataset.samples[idx][0] for idx in train_dataset.indices] # 如果需要同时获取路径和对应标签,可以这么写 train_samples = [dataset.samples[idx] for idx in train_dataset.indices]
补充说明:
ImageFolder的imgs属性和samples属性存储内容完全一致,替换使用也可以。
内容的提问来源于stack exchange,提问作者deepLearner
相关产品推荐
相关产品推荐

