torchvision.datasets.ImageFolder

文章目录

什么是ImageFolder

torchvision.datasets.ImageFolder 是 PyTorch 中 torchvision 库提供的一个用于加载图像数据集的类,特别适用于处理按类别组织的图像数据集。通过使用 ImageFolder 类,你可以轻松地加载包含图像数据的文件夹,并且该类会自动根据文件夹结构解析出每个类别的图像数据

用代码来理解

假设我们有一个图像数据集,包含两个类别:"cat" 和 "dog",每个类别各有一些图像。数据集的目录结构如下:

dataset/

├── cat/

│ ├── cat001.jpg

│ ├── cat002.jpg

│ └── ...

└── dog/

├── dog001.jpg

├── dog002.jpg

└── ...

在这个例子中,"dataset" 文件夹下有一个名为 "cat" 的子文件夹和一个名为 "dog" 的子文件夹,分别存放了 "cat" 类别和 "dog" 类别的图像。每个子文件夹中包含该类别的多张图像。

接下来,我们可以使用 ImageFolder 类来加载这个数据集,并查看返回的内容是什么:

python 复制代码
import torch
from torchvision import datasets, transforms

# 定义数据转换
transform = transforms.Compose([
    transforms.Resize((224, 224)),  # 调整图像大小
    transforms.ToTensor(),           # 将图像转换为Tensor
])

# 加载数据集
dataset = datasets.ImageFolder('dataset', transform=transform)

# 查看数据集中的内容
print(dataset.classes)  # 打印类别列表
print(dataset.class_to_idx)  # 打印类别到索引的映射
print(dataset.imgs)  # 打印图像路径列表

dataset.classes 返回的结果会是 'cat', 'dog',表示数据集中包含的类别

dataset.class_to_idx 返回的结果可能是 {'cat': 0, 'dog': 1},表示每个类别对应的索引

而 dataset.imgs 则会返回一个列表,其中每个元素对应一个元组 (image_path, class_index),包含了图像的路径和对应的类别索引。

用法

python 复制代码
import torch
from torchvision import datasets, transforms

# 定义数据转换
transform = transforms.Compose([
    transforms.Resize((224, 224)),  # 调整图像大小
    transforms.ToTensor(),           # 将图像转换为Tensor
])

# 加载数据集
dataset = datasets.ImageFolder('path/to/dataset', transform=transform)

# 创建数据加载器
data_loader = torch.utils.data.DataLoader(dataset, batch_size=32, shuffle=True)
相关推荐
小程故事多_801 小时前
从线性建模到网络语义重构,AI本体建模平台技术落地与实践复盘
人工智能
RockChinQ1 小时前
把飞书、QQ 变成翻译助手:n8n + LangBot + GPT-6 实战,保留人名、时间和链接
人工智能
ACP广源盛139246256731 小时前
GSV5600 国产 8K Serdes 视频延长芯片,AI 超高清可视化远距离传输方案解析
大数据·人工智能·ai·硬件架构·国产芯片
奈斯先生Vector1 小时前
当模型版本不断变化,RelayRouter 能否帮助 AI 应用摆脱深度绑定
android·java·人工智能·开源·aigc
苏苏susuus1 小时前
核密度估计(KDE)与高斯核(概念分享)
人工智能·python·ocr
9i编程1 小时前
1. 把 DDD 开源脚手架化为自己的:先读懂它——Spring Boot 4.1 的四层架构、多数据源与领域事件
人工智能·openai·ai编程
野生技术架构师1 小时前
FastAPI + LangGraph + Milvus + ES + Redis + MySQL 高性能智能体中台方案
人工智能
Raas1001 小时前
AI网关支持哪些模型?MAI Gateway(魔芋企业级AI网关)功能实测与最佳实践
大数据·人工智能·gateway·mai gateway·企业级产品
豪气的程序猿1 小时前
电商素材工作流怎么搭?Lingko AI 对比宠物喂食器的主图与详情页分工
人工智能·宠物
面包狗AI4S1 小时前
GitHub AI4S 项目观察(2026-09-07—2026-09-13)
人工智能·深度学习·机器学习