torchvision数据集及DataLoader的使用

发布时间:2026/9/13 11:12:31
torchvision数据集及DataLoader的使用 本文主要介绍torchvision内置数据集及DataLoader使用文章目录一、CIFAR10 数据集初识举例1.一句话理解2.CIFAR10 数据档案3.数据集下载二、查看数据集内容1.基本操作2.数据结构三、与 transforms 联动四、DataLoader — 从一副牌到一手牌1.为什么要 DataLoader2.基本用法五、DataLoader 参数速查表总结一、CIFAR10 数据集初识举例1.一句话理解以前要手动写 Dataset 类现在 torchvision 帮你把常用数据集都封装好了一行代码下载 加载。2.CIFAR10 数据档案属性数值总样本数60,000 张训练集 / 测试集50,000 / 10,000图像尺寸32×32 像素RGB 三通道类别10 类飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船、卡车3.数据集下载importtorchvision animals_transformtorchvision.transforms.Compose([torchvision.transforms.ToTensor()])train_settorchvision.datasets.CIFAR10(root./animals,#存在哪trainTrue,## True训练集, False测试集downloadTrue)# 自动下载已有则跳过test_settorchvision.datasets.CIFAR10(root./animals,trainFalsedownloadTrue)参数含义root数据集存放目录trainTrue 训练集 / False 测试集downloadTrue 自动下载transform预处理转换二、查看数据集内容1.基本操作代码如下示例# 查看所有类别名print(test_set.classes)# [airplane, automobile, bird, cat, deer,# dog, frog, horse, ship, truck]# 取第 0 个样本img,targettest_set[0]print(img)# PIL.Image.Image modeRGB size32x32print(target)# 3数字标签print(test_set.classes[target])# catimg.show()# 弹窗显示图片2.数据结构test_set[0] → (PIL图片, 数字标签)↓ ↓32×32 RGB 0~9 整数三、与 transforms 联动CIFAR10 给的是 PIL Image必须转成 Tensor 才能训练。fromtorchvisionimporttransforms# 定义转换管道dataset_transformtransforms.Compose([transforms.ToTensor()# PIL → Tensor (C, H, W)])# 下载时直接应用 transformtrain_settorchvision.datasets.CIFAR10(root./dataset,trainTrue,transformdataset_transform,# ← 关键参数downloadTrue)CIFAR10 原始数据 (PIL) ──transform──▶ Tensor (可直接训练)四、DataLoader — 从一副牌到一手牌1.为什么要 DataLoaderDataset一副牌DataLoader抓牌器告诉你总共有多少张牌每次抓多少张batch_size可以一张一张拿是否洗牌shuffle返回 (图片, 标签)返回批量 (图片们, 标签们)模型不吃一张图要吃一批图。DataLoader 就是那个打包工人。2.基本用法fromtorch.utils.dataimportDataLoader test_loaderDataLoader(datasettest_data,batch_size64,# 一次抓 64 张shuffleTrue,# 打乱顺序num_workers0,# Windows 下必须设为 0drop_lastFalse# 最后不足 64 张也保留)遍历 DataLoaderforimgs,targetsintest_loader:print(imgs.shape)# torch.Size([64, 3, 32, 32])print(targets.shape)# torch.Size([64])break结合 TensorBoard 可视化fromtorch.utils.tensorboardimportSummaryWriter writerSummaryWriter(dataloader_logs)forepochinrange(2):# 跑两轮观察 shuffle 效果forstep,(imgs,targets)inenumerate(test_loader):writer.add_images(fEpoch_{epoch},imgs,step)writer.close()终端输入tensorboard --logdirdataloader_logs五、DataLoader 参数速查表参数作用建议值dataset指定数据集必填batch_size每批多少张图32 / 64 / 128shuffle是否打乱训练True测试Falsenum_workers多进程加载Windows 必须设为 0drop_last丢弃最后不完整的 batch一般 False总结本文主要介绍了怎么使用torchvision的数据集以及DataLoader。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询