B站小土堆Pytorch视频学习-Dataloader的使用(2023.06.14)

一.DataLoader配合数据集的用法

在这里插入图片描述

二.若是下载别人的数据集,用以下代码直接加载即可

import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

#准备的测试数据集
test_data=torchvision.datasets.CIFAR10("./dataset",train=False,transform=torchvision.transforms.ToTensor())
test_loader=DataLoader(dataset=test_data,batch_size=64,shuffle=True,num_workers=0,drop_last=False)
#(len(test_data))
#测试数据集中第一张图片及target
#img,target=test_data[0]
#print(img.shape)
#print(target)

writer=SummaryWriter("dataloader")
step=0
for data in test_loader:
    imgs,targets=data
    #print(imgs.shape)
    #print(targets)
    writer.add_images("test_data",imgs,step)
    step+=1
writer.close()

三.若是自己构建数据集,用第一天学的继承Dateset父类并重写构造方法和__len__和__getitem()__两个魔法方法,详情可看

自己构建数据集的方法

四.自己构建的数据集导入

import torchvision
from torch.utils.data import DataLoader, Dataset
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import os
class MyDate(Dataset):
  def __init__(self,root_path,label_path):
    self.root_path=root_path
    self.label_path=label_path
    self.path=os.path.join(self.root_path,self.label_path)
    self.img_path=os.listdir(self.path)
  def __getitem__(self, item):
    img_name=self.img_path[item]
    img_truepath=os.path.join(self.root_path,self.label_path,img_name)
    img=Image.open(img_truepath)
    img = trans_resize(img)
    img=trans_tensor(img)
    label=self.label_path
    return img,label
  def __len__(self):
    return len(self.img_path)
root="hymenoptera_data/hymenoptera_data/train"
label="ants"
trans_tensor=torchvision.transforms.ToTensor()
trans_resize=torchvision.transforms.Resize((50,50))
ants_dataset=MyDate(root,label)
writer=SummaryWriter("logs")
data_loader=DataLoader(dataset=ants_dataset,batch_size=64,shuffle=True,num_workers=0)
i=0
for data in data_loader:
  writer.add_images("test",data[0],i)
  i+=1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值