【Pytorch】1.读取训练数据集

导入Dataset类

py 复制代码
from torch.utils.data import Dataset
# 注意是Dataset(大写)的才是类

通过jupyter我们可以阅读一下Dataset类的具体使用方法

py 复制代码
help(Dataset)
# 或者直接
Dataset??

我们可以看到具体对Dataset类的解释

从蓝色字体我们可以得出

  • 所有的代表map的数据集应该继承这个类
  • 所有继承的子类都重写__getitem__这个方法,这个方法支持获取数据样本中的指定键
  • 同时子类也要重写__len__这个方法返回数据集大小
  • 子类可以重写__getitem__,来加速样本生成
    也就是说我们要重写__getitem__方法与__len__方法

其他导入包

py 复制代码
from PIL import Image  # 主要用于图像的操作
import os  # 文件操作

Image用于将目标路径的文件转化为可以打开的图片变量
os用于文件操作

  • listdir对目标文件夹中的文件名称列成列表
  • os.path.join用于将两个地址进行拼接

MyData类的定义

py 复制代码
class MyData(Dataset):  # 创建一个MyData类,同时继承Dataset类
    def __init__(self, root_dir, label_dir):  # 类似于c++的构造函数
        # root_dir 一般设置为训练集文件夹的地址(train)
        # label_dir 一般设置为分类文件夹的地址(ants)
        self.root_dir = root_dir
        self.label_dir = label_dir
        self.path = os.path.join(root_dir, label_dir)  # 这个函数的作用是将root_dir的地址与label_dir的地址拼接起来
        self.img_path = os.listdir(self.path)  # 将特定文件夹地址(path)中的所有文件列成一个list

    def __getitem__(self, index):  # 重写父类的方法
        img_name = self.img_path[index]  # 获取对应下标的图片名
        img_item_path = os.path.join(self.path, img_name)  # 获取图片路径
        img = Image.open(img_item_path)  # 根据图片路径打开图片
        # img.show()    展示图片
        label = self.label_dir
        return img, label

    def __len__(self):
        return len(self.img_path)

类的实例化

py 复制代码
# root_dir 一般设置为训练集文件夹的地址(train)
# label_dir 一般设置为分类文件夹的地址(ants)
root_dir = "hymenoptera_data/train"
ant_label_dir = "ants"
bee_label_dir = "bees"
# 生成对应训练集的图片、标签列表
ants_dataset = MyData(root_dir, ant_label_dir)
bees_dataset = MyData(root_dir, bee_label_dir)

# 列表相加,前提是必须重载__len__方法
train_dataset = ants_dataset + bees_dataset

源码链接

github

参考资料

PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】

相关推荐
cver12312 分钟前
野生动物检测数据集介绍-5,138张图片 野生动物保护监测 智能狩猎相机系统 生态研究与调查
人工智能·pytorch·深度学习·目标检测·计算机视觉·目标跟踪
巴里巴气28 分钟前
2025.1版本PyCharam找不到已存在的conda虚拟环境
pycharm·conda
点我头像干啥5 小时前
用 PyTorch 构建液态神经网络(LNN):下一代动态深度学习模型
pytorch·深度学习·神经网络
IT古董5 小时前
【第三章:神经网络原理详解与Pytorch入门】01.神经网络算法理论详解与实践-(2)神经网络整体结构
pytorch·神经网络·算法
晓13135 小时前
OpenCV篇——项目(二)OCR文档扫描
人工智能·python·opencv·pycharm·ocr
Naiva8 小时前
【小技巧】Python + PyCharm 小智AI配置MCP接入点使用说明(内测)( PyInstaller打包成 .exe 可执行文件)
开发语言·python·pycharm
喝过期的拉菲8 小时前
使用 Pytorch Lightning 时追踪指标和可视化指标
pytorch·可视化·lightning·指标追踪
巴里巴气11 小时前
安装GPU版本的Pytorch
人工智能·pytorch·python
江太翁12 小时前
Pytorch torch
人工智能·pytorch·python
William.csj13 小时前
Pytorch——查看模型的推理引擎
人工智能·pytorch