torchvision.datasets.ImageFolder(最详细功能总结)

1. 数据集目录结构

数据集按类别放在不同的子文件夹中。
示例结构:

/path/to/hotdog/
    train/
        hotdog/
            img1.jpg
            img2.jpg
            ...
        not-hotdog/
            img1.jpg
            img2.jpg
            ...
    test/
        hotdog/
            img1.jpg
            img2.jpg
            ...
        not-hotdog/
            img1.jpg
            img2.jpg
            ...

2. 加载数据集

使用 torchvision.datasets.ImageFolder 类加载数据集。
示例代码:

import os
from torchvision import datasets

data_dir = '/path/to/hotdog'
train_imgs = datasets.ImageFolder(os.path.join(data_dir, 'train'))

3. ImageFolder 如何工作

  • 递归遍历指定目录中的所有图像文件。
  • 子文件夹名称作为类别标签,按字母顺序自动分配标签。
      - hotdog 文件夹中的图像标签为 0
      - not-hotdog 文件夹中的图像标签为 1
  • 每个样本以 (image, label) 的形式存储:
      - train_imgs[i][0] 是图像数据。
      - train_imgs[i][1] 是类别标签。

4. 展示图像示例

从前8个和后8个样本中分别取出图像部分并显示。
示例代码:

from d2l import torch as d2l

hotdogs = [train_imgs[i][0] for i in range(8)]
not_hotdogs = [train_imgs[-i-1][0] for i in range(8)]

d2l.show_images(hotdogs + not_hotdogs, 2, 8, scale=1.4)

核心要点

  • 目录结构:按类别组织文件夹。
  • 加载数据:使用 ImageFolder 类加载数据集。
  • 标签分配:子文件夹名称按字母顺序自动分配标签。
  • 访问数据
      - train_imgs[i][0] 获取图像。
      - train_imgs[i][1] 获取标签。

这样,你可以很方便地将这个总结保存为 Markdown 文件或笔记。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值