Dataset的使用

本文介绍如何使用PyTorch中的Dataset和Dataloader进行数据加载及处理,包括定义自己的数据集类、读取图像数据及其标签的方法。此外还探讨了不同数据组织形式及其在实际应用中的处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. PyTorch加载数据:Dataset和Dataloader

dataset:取数据以及其对应的label,并未其添加索引
提供一种方式去获取数据及其label
实现:
(1)如何获取每一个数据及其label
(2)告诉我们总共有多少的数据

dataloader:为后面的网络提供不同的数据形式

2. 数据的组织形式:

(1)把图片放在以label命名的文件夹
(2)图片与label分开两个文件夹,label存储在txt文件,包含坐标以及坐标信息,是一个ocr的数据集
(3)以label命名的图片放在文件夹中

3. Dataset代码实例:

from torch.utils.data import Dataset
import cv2
from PIL import Image
import os
class MyData(Dataset):
    def __init__(self,root_dir,label_dir):
        self.root_dir = root_dir
        self.label_dir = label_dir
        self.path = os.path.join(self.root_dir, self.label_dir)
        self.img_path = os.listdir(self.path)


    def __getitem__(self, idx):
        img_name = self.img_path[idx]
        img_item_path = os.path.join(self.root_dir, self.label_dir, img_name)
        img = Image.open(img_item_path)
        label = self.label_dir
        return img, label

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

root_dir = "dataset/train"
ants_label_dir = "ants_image"
bees_label_dir = "bees_image"
ants_dataset = MyData(root_dir, ants_label_dir)
bees_dataset = MyData(root_dir, bees_label_dir)
train_dataset = ants_dataset + bees_dataset
img, label = train_dataset[0]
img.show()

4. 补充

(1)读取路径时,注意: img_path = “C:\Users\ThinkPad\PycharmProjects\pythonProject\dataset\train\ants\0013035.jpg "
改成:img_path = “C:\Users\ThinkPad\PycharmProjects\pythonProject\dataset\train\ants\0013035.jpg”
像这种路径,在window下要注意将”"变成“\”。

(2)class类中的self学问:self相当于指定了一个类中的全局变量
由于class中可以又很多个函数,但函数与函数中的变量不能相互传递的,self的使用实现了,self指定的变量给后面的函数使用

(3) import cv2 出错,使用 pip install opencv-python在terminal里安装

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小六的画布

我的热爱,与你的打赏很配喔!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值