Torchvison数据集dataset和dataloader使用

Torchvison-dataset的使用

这里介绍的时是Torchvision中关于数据库Dataset的一些使用方法。
首先我们可以在Pytorch观望中看到Torchvision中的很多数据集:
在这里插入图片描述
以CIFAR为例,点进去后可以了解到更多关于该数据集的一些信息:
在这里插入图片描述
在这里介绍了调用该数据库时的一些参数的设置及其功能。

Dataset的使用:

首先,我们需要导入torchvision库,为后面调用数据库提供库,同时导入SummaryWriter库,使用tersorboard可视化过程:

import  torchvision
from torch.utils.tensorboard import SummaryWriter

我们定义train_set用于调用CIFAR10数据集:
torchvision.datasets.CIFAR10()

train_set = torchvision.datasets.CIFAR10(root='./dataset_learn',train=True,transform=dataset_transform,download=True)

①root=’'为该数据集保存的目录位置
②train为True代表该数据集用于训练,否则用于测试集
③transform为用于使用的将PIL图像数据转化为tensor类型的函数操作,可以自己定义操作内容(可以参照官方文档:transform (callable, optional) – A function/transform that takes in an PIL image and returns a transformed version. E.g, transforms.RandomCrop)
④download为True代表如果该数据集不存在的话,自动下载;数据集存在的话不下载

用一个for循环将数据集中的前10个样本展示在tersorboard上:

writer = SummaryWriter("p10")
for i in range(10):
    img,target=train_set[i]
    writer.add_image('dataset',img,i)

tensorboard上展示结果为:
在这里插入图片描述
完整实现代码:


                
datasetdataloader是在深度学习中常用的数据处理工具。 Dataset是一个抽象类,用于表示数据集。在使用时,我们可以继承该类并实现自己的数据加载逻辑。通常情况下,我们需要重写`__len__`方法返回数据集大小,以及`__getitem__`方法根据索引返回对应的样本数据。 Dataloader是一个用于批量加载数据的迭代器。它接收一个Dataset对象作为输入,并提供一些参数用于配置数据加载的行为。通过调用dataloader的`__iter__`方法,我们可以得到一个可迭代的对象,每次迭代返回一个批次的数据。 下面是一个简单示例,展示了如何使用datasetdataloader加载数据: ```python import torch from torch.utils.data import Dataset, DataLoader class MyDataset(Dataset): def __init__(self, data): self.data = data def __len__(self): return len(self.data) def __getitem__(self, index): return self.data[index] data = [1, 2, 3, 4, 5] dataset = MyDataset(data) dataloader = DataLoader(dataset, batch_size=2, shuffle=True) for batch in dataloader: # 在这里进行模型训练或推断 print(batch) ``` 在上面的示例中,我们首先定义了一个自定义的Dataset类`MyDataset`,并实现了必要的方法。然后我们创建了一个dataset对象并传入了我们的数据。接下来,我们创建了一个dataloader对象,并指定了一些参数,例如批大小是否打乱数据等。最后,我们使用for循环迭代dataloader,每次迭代得到一个batch的数据,可以用于模型的训练或推断。 通过使用datasetdataloader,我们可以更方便地处理加载数据,从而提高模型训练推断的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值