pytorch学习3-torchvisin和Dataloader的使用

2023-12-13 03:47:16

系列文章目录

  1. pytorch学习1-数据加载以及Tensorboard可视化工具
  2. pytorch学习2-Transforms主要方法使用
  3. pytorch学习3-torchvisin和Dataloader的使用
  4. pytorch学习4-简易卷积实现
  5. pytorch学习5-最大池化层的使用
  6. pytorch学习6-非线性变换(ReLU和sigmoid)
  7. pytorch学习7-序列模型搭建
  8. pytorch学习8-损失函数与反向传播
  9. pytorch学习9-优化器学习
  10. pytorch学习10-网络模型的保存和加载
  11. pytorch学习11-完整的模型训练过程


一、torchvision下载使用数据集

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

dataset_transform=torchvision.transforms.Compose(
    [
        torchvision.transforms.ToTensor()
    ]
)
#如果数据集已经在root里面存在,那么下面两行不会再下载而是校验数据集
train_set=torchvision.datasets.CIFAR10(root="./cifar10Dataset",train=True,transform=dataset_transform,download=True)#意思是从torchvision下载CIFAR10数据集并且保存到root这个地方(会自动创建)
test_set=torchvision.datasets.CIFAR10(root="./cifar10Dataset",train=False,transform=dataset_transform,download=True)#train这个参数的意思是下载的是不是训练集,transform这个可选参数代表了数据预处理的操作(也就是数据下载下来之后自动做什么操作,需要自定义)
print(test_set[0])
print(test_set.classes)#classes是所有标签,也就是target的对应标签

img,target=test_set[0]
print(img)
print(target)#target是一个数字,代表classes中的第几个标签
img.show()

witer=SummaryWriter("p10")
for i in range(10):
    img,target=test_set[i]
    witer.add_image("test_set",img,i)
witer.close()

二、Dataloder的使用

test_data=torchvision.datasets.CIFAR10("./dataset",train=False,transform=dataset_transform,download=True)#准备测试数据集
test_loader=DataLoader(dataset=test_data,batch_size=64,shuffle=True,num_workers=0,drop_last=False)#shuffle代表每一epoch是否是乱序,num_workers是否多进程,drop_last当样本不能被batchsize(整个epoch有几批)整除时候会不会舍弃最后一批数据,batch_size每一批有几个样本
img,target=test_data[0]
step=0
witer=SummaryWriter("dataloader")
for data in test_loader:#这一个test_loader的过程就是一次eopch
    imgs,targets=data
    witer.add_images("我是标题一",imgs,step)#本次每一循环传的图像都是一批,所以要使用add_imags这个方法来加载
    step+=1
witer.close()

总结

以上就是今天要讲的内容,torchvisin和Dataloader的使用

文章来源:https://blog.csdn.net/magic171/article/details/134802051
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。