Dataset相关内容

认识Dataset

在这里插入图片描述

Dataset就相当于在一堆杂乱无章的数据中,挑选出需要的数据出来,并且给这些数据进行编码与排列,提供一种方式去获取数据及其label,方便后续的数据处理,就像上图一样。而Dataloader就相当于对处理好的数据进行一个装包,从而为后面的网络提供不同的数据形式。

  • 右键文件夹,选择Open In Explorer加载图片文件源。

在这里插入图片描述

  • 将图片源文件夹粘贴在上个步骤打开的文件夹当中。完成步骤即可关闭文件夹,然后看到pycharm文件中出现了新的文件源。

在这里插入图片描述

  • 对加载好的文件图片按键盘上的 Ctrl+Shift +C 复制路径,即可直接粘贴。

在这里插入图片描述

  • 注意粘贴路径的时候,如果是windows系统,那么要在路径上打上两个//表示路径转义才能够识别出来。

在这里插入图片描述

以下的代码在pycharm控制台中输入,因为pycharm控制台可以即时看到相关内容,从而方便代码纠错。

  • 打开图片:
img = Image.open(img_path)
  • 展示图片尺寸:
img.size
  • 显示图片:
img.show()
  • 通过右键复制可以得到数据集的相对路径:
    在这里插入图片描述
  • 将文件的所有东西变成一个列表:
img_path_list = os.listdir(dir.path)
  • 展示第一个图片的名称:
img_path_list[0]

具体代码展示与解析:

import os.path

from torch.utils.data import Dataset
from PIL import Image

class MyData(Dataset):
#self 是封装函数自带的
    def __init__(self,root_dir,label_dir):

        #把对应的值赋给函数内部
        #能够成为我们类当中的存储变量
        self.root_dir = root_dir
        self.label_dir = label_dir

        #通过join将目录整合在一起
        self.path = os.path.join(self.root_dir,self.label_dir)
        #指定目录下的所有文件和目录的列表,并将这个列表赋值给 `self.img_path` 属性。
        self.img_path = os.listdir(self.path)

#读取其中的每一个图片
    def __getitem__(self, idx):
        #idx是作为一个编号
        #把idx检索值赋给img_name
        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_dir
        label = self.label_dir
        return img,label

    def __len__(self):
        #返回该文件的长度
        return len(self.img_path)

root_dir = "dataset/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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值