Dataset类实战

Dataset:

提供一种方式获取数据及其label

如何获取每一个数据及其label

告诉我们总共有多少个数据

1.首先导入包

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

2.写一个类 ,继承Dataset。

class Mydata(Dataset):

    def __init__(self, root_dir, laber_dir):
        self.root_dir = root_dir
        self.laber_dir = laber_dir
        self.data_path = os.path.join(root_dir, laber_dir)
        self.data_list = os.listdir(self.data_path)

    def __getitem__(self, index):
        return os.path.join(self.root_dir, self.laber_dir, self.data_list[index])
   
     def __len__(self):
        return len(self.data_list)

①def __init__(self, root_dir, laber_dir): 在创建类的时候,实现初始化。

root_dir:根目录

laber_dir:目标目录

通过data_path=os.path.join(root_dir,laber_dir)实现路径组合连接,使windows和linux都可以使用。

os.listdir[data_path]:会生成该文件夹内所有图片的"集合"

②重写def __getitem__(self, index):

返回下标为index图片的详细说明“路径+文件名”

实例化:

①根据下标查找单个数据集

ants_data = Mydata("dataset/train", "ants")
ants_data .__getitem__(2)返回第三张图片的信息
ants_data[2]。返回第三张图片的信息。[] 运算符取值时,会调用它的方法__getitem__

② 数据集的拼接

ants_data = Mydata("dataset/train", "ants")

bees_data = Mydata("dataset/train", "bees")

new_data = ants_data + bees_data

new_data就是拼接后两个的数据集。

③图片打开并查看

img = Image.open(my[5])
img.show()

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值