PyTorch深度学习入门笔记(三)PyTorch加载数据初认识

课程学习笔记,课程链接
学习笔记同步发布在我的个人网站上,欢迎来访查看。

一、 Dataset 和 Dataloader

Pytorch 读取数据主要涉及两个类:DatasetDataloader
数据可类比为“垃圾”,不同数据是不同种类的垃圾,这里蓝色是可回收垃圾。
Dataset能够把垃圾中的可回收垃圾即蓝色块给挑选出来,并对其进行编号,供后续网络的使用。

而数据进入网络不会是一个个送进去,在送进去之前会进行打包,比如以一次多个的形式把数据输入进网络。
总结:

  • Dataset 提供了一种方式去获取每个数据及其label并告诉我们总共有多少的数据。
  • Dataloader为数据进行打包,给要训练的网络提供不同形式的数据。

二、数据集初识

数据集 蚂蚁蜜蜂分类 下载链接:https://download.pytorch.org/tutorial/hymenoptera_data.zip
解压打开查看:
在这里插入图片描述
分为训练数据集和验证数据集。
两个文件夹都分别有分类好的蚂蚁和蜜蜂的图片:
在这里插入图片描述
在这里插入图片描述

这是一个用于对蚂蚁和蜜蜂进行二分类的数据集。

三、Dataset类初识

打开jupyter,新建一个名为 read_dataset的notebook。输入下图所示代码:
可以看到
在这里插入图片描述
Dataset的使用说明表示任何数据集应该继承Dataset,并改写成员函数:__getitem____len__(可选)。

这里将数据集放到工程目录下,这样就可以用相对路径进行访问了:
在这里插入图片描述
代码:

from torch.utils.data import Dataset
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)
        # get relative address of ants pictures
        self.img_path = os.listdir(self.path)


    def __getitem__(self, idx):
        """
        :param idx: img_name
        :return: object of data,label
        """
        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 = "hymenoptera_data/train"
ants_label_dir ="ants"
bees_label_dir ="bees"
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]
print(label)
img.show()

这里就是对数据集进行简单读取,可以通过索引来对指定的数据进行图片信息和 label 读取,输出如下图所示:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

雪天鱼

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值