Pytorch学习:常见数据集torchvision.datasets及数据集的使用DataLoader

文章目录

    • 1. Datasets常见数据集
      • 1.1 CIFAR10
      • 1.2 Fashion-MNIST
      • 1.3 ImageNet
    • 2. DataLoader
      • 2.1 shuffle
      • 2.2 drop_last

1. Datasets常见数据集

Torchvision在 torchvision.datasets 模块中提供了许多内置的数据集,以及用于构建自己的数据集的实用程序类。

官方文档:Datasets

  • 所有数据集都是 torch.utils.data.Dataset 的子类,即它们实现了 __getitem____len__ 方法。
  • 它们都可以被传递到 torch.utils.data.DataLoadertorch.utils.data.DataLoader 可以使用 torch.multiprocessing 工作器并行加载多个样本。

举例:在这里插入图片描述


1.1 CIFAR10

数据集地址:CIFAR-10

官方文档:torchvision.datasets.CIFAR10
CLASS torchvision.datasets.CIFAR10(root: str, train: bool = True, transform: Optional[Callable] = None, target_transform: Optional[Callable] = None, download: bool = False)
主要参数:

  • root(string):数据集的根目录,其中目录 cifar-10-batches-py 存在或将保存到(如果下载设置为True)。
  • train(bool,可选):如果为True,则从训练集创建数据集,否则从测试集创建。
  • transform(可调用,可选):接受PIL图像并返回转换版本的函数/转换。例如, transforms.RandomCrop
  • target_transform(可调用,可选):接收目标并对其进行转换的函数/transform。
  • download(bool,可选):如果为true,则从Internet下载数据集并将其放在根目录中。如果数据集已下载,则不会再次下载。

CIFAR-10数据集由10个类别的60000张32 x32彩色图像组成,每个类别6000张图像。有50000张训练图像和10000张测试图像。

该数据集分为五个训练批次和一个测试批次,每个批次有10000张图像。测试批次包含从每个类别中随机选择的1000个图像。训练批次包含随机顺序的剩余图像,但是一些训练批次可能包含来自一个类的图像多于来自另一个类的图像。在它们之间,训练批次包含来自每个类的5000个图像。

以下是数据集中的类,以及每个类中的10个随机图像:
在这里插入图片描述
代码调用

import torchvision
from torch.utils.data import DataLoader

train_data = torchvision.datasets.CIFAR10("./dataset", train=True, transform=torchvision.transforms.ToTensor(),
                                         download=True)
train_loader = DataLoader(dataset=train_data, batch_size=64, shuffle=True, num_workers=0, drop_last=True)

1.2 Fashion-MNIST

数据集地址:Fashion-MNIST

官方文档:torchvision.datasets.FashionMNIST
CLASS torchvision.datasets.FashionMNIST(root: str, train: bool = True, transform: Optional[Callable] = None, target_transform: Optional[Callable] = None, download: bool = False)
主要参数:

  • root(string): FashionMNIST/raw/train-images-idx3-ubyte 和 FashionMNIST/raw/t10k-images-idx3-ubyte 存在的数据集的根目录。
  • train(bool,可选):如果为True,则从 train-images-idx3-ubyte 创建数据集,否则从 t10k-images-idx3-ubyte 创建。
  • download(bool,可选):如果为True,则从Internet下载数据集并将其放在根目录中。如果数据集已下载,则不会再次下载。
  • transform(可调用,可选:接受PIL图像并返回转换版本的函数/转换。例如, transforms.RandomCrop。
  • target_transform(可调用,可选):接收目标并对其进行转换的函数/transform。

Fashion-MNIST 是Zalando文章图像的数据集-由60,000个示例的训练集和10,000个示例的测试集组成。每个示例都是28 x28灰度图像,与来自10个类别的标签相关联。
在这里插入图片描述
代码调用

import torchvision
from torch.utils.data import DataLoader

train_data = torchvision.datasets.FashionMNIST("./dataset", train=True, transform=torchvision.transforms.ToTensor(),
                                         download=True)
train_loader = DataLoader(dataset=train_data, batch_size=64, shuffle=True, num_workers=0, drop_last=True)

1.3 ImageNet

数据集地址(Kaggel):ImageNet

官方文档:torchvision.datasets.ImageNet
CLASS torchvision.datasets.ImageNet(root: str, split: str = 'train', **kwargs: Any)
主要参数:

  • root(string):ImageNet数据集的根目录。
  • split(string,可选):数据集分割,支持 train 或 val 。
  • transform(可调用,可选):接受PIL图像并返回转换版本的函数/转换。例如, transforms.RandomCrop。
  • target_transform(可调用,可选):接收目标并对其进行转换的函数/transform。
  • loader:加载给定路径的图像的函数。

ImageNet最常用的子集是ImageNet大规模视觉识别挑战(ILSVRC)2012-2017图像分类和定位数据集。该数据集涵盖1000个对象类,包含1,281,167张训练图像,50,000张验证图像和100,000张测试图像。此子集在Kaggle上可用。

代码调用(注:ImageNet无法使用torchvision直接下载)

import torchvision
from torch.utils.data import DataLoader

train_data = torchvision.datasets.ImageNet("./dataset", split=train=True, transform=torchvision.transforms.ToTensor())
train_loader = DataLoader(dataset=train_data, batch_size=64, shuffle=True, num_workers=0, drop_last=True)

2. DataLoader

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

# 准备的数据集
train_data = torchvision.datasets.CIFAR10("./dataset", train=True, transform=torchvision.transforms.ToTensor(),
                                         download=True)
train_loader = DataLoader(dataset=train_data, 
						 batch_size=64, 
						 shuffle=True, 
						 num_workers=0, 
						 drop_last=True)

writer = SummaryWriter("logs")
step = 0
for data in train_loader:
    imgs, targets = data
    writer.add_images("train_data", imgs, step)
    step = step + 1

writer.close()

打开命令行

tensorboard --logdir=logs

2.1 shuffle

打乱顺序。
在这里插入图片描述
在这里插入图片描述

2.2 drop_last

丢弃最后一组不满 batch_size 的数据。
在这里插入图片描述\

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/88388.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端需要理解的 TypeScript 知识

Typescript是添加了类型系统的JavaScript,属于弱类型(即允许隐式类型转换)、静态类型语言,适应于任何规模的项目,支持 ES6,由微软开发并开源。Typescript增加的功能包括:类型批注和编译时类型检…

JAVA-编程基础-10-集合

Lison <dreamlison163.com>, v1.0.0, 2023.04.23 JAVA-编程基础-10-集合 文章目录 JAVA-编程基础-10-集合List、Set、Map、队列全面解析ListArrayList创建ArrayList 向ArrayList中添加元素 List、Set、Map、队列全面解析 Java 集合框架可以分为两条大的支线&#xff1a;…

一种IDEA疑难杂症的解决办法

解决办法 重启IDEA 针对于IDEA各种羡慕解析&#xff0c;运行时问题&#xff0c;但是无法通过搜索引擎得到答案的问题请试试此方法。 删除根目录下[.idea]文件夹后重启 此文件夹为idea首次导入项目时根据项目情况自动生成的配置文件。方便idea下次更快的解析项目。但是某些情…

Flask 单元测试

如果一个软件项目没有经过测试&#xff0c;就像做的菜里没加盐一样。Flask 作为一个 Web 软件项目&#xff0c;如何做单元测试呢&#xff0c;今天我们来了解下&#xff0c;基于 unittest 的 Flask 项目的单元测试。 什么是单元测试 单元测试是软件测试的一种类型。顾名思义&a…

hive中的DDL操作以及数据的导入导出

文章目录 DDL库操作表操作内部表&外部表分区表修改表&删除表 数据的导入导出数据导入数据导出 DDL DDL(data definition language)&#xff0c;命令有CREATE、ALTER、DROP等。主要用在定义、修改数据库对象的结构或数据类型&#xff1b; 理解 库操作 创建 语法 CRE…

021-从零搭建微服务-短信服务(一)

写在最前 如果这个项目让你有所收获&#xff0c;记得 Star 关注哦&#xff0c;这对我是非常不错的鼓励与支持。 源码地址&#xff08;后端&#xff09;&#xff1a;https://gitee.com/csps/mingyue 源码地址&#xff08;前端&#xff09;&#xff1a;https://gitee.com/csps…

图数据库Neo4j学习五渲染图数据库neo4jd3

文章目录 1.现成的工具2.Neo4j JavaScript Driver3.neovis4.neo4jd34.1neo4jd3和neovis对比4.2获取neo4jd34.3neo4jd3的数据结构4.4Spring data neo4.4.1 定义返回数据格式4.4.1.1NeoResults4.4.1.2GraphVO4.4.1.3NodeVO4.4.1.4ShipVO 4.4.2 SDN查询解析4.4.2.1 Repo查询语句4.…

LVS DR模式搭建

目录 一、DR模式概述 一、与NET模式的区别 二、操作命令图 三、搭建流程 一、首先配置三台虚拟机并配置环境&#xff08;关闭防火墙&#xff0c;宽容模式&#xff09; 二、ping通百度 三、在115.3的&#xff08;lvs&#xff09;虚拟机上安装 ipvsadm 四、调整ARP参数 五…

【云原生】Docker私有仓库 RegistryHabor

目录 1.Docker私有仓库&#xff08;Registry&#xff09; 1.1 Registry的介绍 1.2 Registry的部署 步骤一&#xff1a;拉取相关的镜像 步骤二&#xff1a;进行 Registry的相关yml文件配置&#xff08;docker-compose&#xff09; 步骤三&#xff1a;镜像的推送 2. Regist…

自动化测试之Selenium

自动化测试Selenium介绍环境搭建如何操作浏览器定位元素css类选择器定位元素xpath定位元素css选择语法xpath选择语法 常用操作添加等待打印信息浏览器更多操作键盘事件鼠标事件特殊场景只选复选框iframe标签下拉框处理弹窗显示上传文件 关闭浏览器切换窗口截图 自动化测试 自动…

kafka复习:(11)auto.offset.reset的默认值

在ConsumerConfig这个类中定义了这个属性的默认值&#xff0c;如下图 也就是默认值为latest,它的含义是&#xff1a;如果没有客户端提交过offset的话&#xff0c;当新的客户端消费时&#xff0c;把最新的offset设置为当前消费的offset. 默认是自动提交位移的&#xff0c;每5秒…

Java后端开发面试题——消息中间篇

RabbitMQ-如何保证消息不丢失 交换机持久化&#xff1a; Bean public DirectExchange simpleExchange(){// 三个参数&#xff1a;交换机名称、是否持久化、当没有queue与其绑定时是否自动删除 return new DirectExchange("simple.direct", true, false); }队列持久化…

HTML番外篇(五)-移动端适配

一、媒体查询 1.认识媒体查询 媒体查询是一种提供给开发者针对不同设备需求进行定制化开发的一个接口。 你可以根据设备的类型&#xff08;比如屏幕设备、打印机设备&#xff09;或者特定的特性(比如屏幕的宽度)来修改你的页面。 媒体查询的使用方式主要有三种&#xff1a;…

人工智能技术

人工智能技术是什么&#xff1f; 人工智能技术&#xff08;Artificial Intelligence Technology&#xff0c;AI技术&#xff09;是一种模仿人类智能和思维方式的计算机技术&#xff0c;旨在使计算机能够执行需要人类智能才能完成的任务。这些任务包括理解自然语言、解决问题、…

鼠标拖拽盒子移动

目录 需求思路代码页面展示【补充】纯js实现 需求 浮动的盒子添加鼠标拖拽功能 思路 给需要拖动的盒子添加鼠标按下事件鼠标按下后获取鼠标点击位置与盒子边缘的距离给 document 添加鼠标移动事件鼠标移动过程中&#xff0c;将盒子的位置进行重新定位侦听 document 鼠标弹起&a…

c#设计模式-创建型模式 之 原型模式

概述 原型模式是一种创建型设计模式&#xff0c;它允许你复制已有对象&#xff0c;而无需使代码依赖它们所属的类。新的对象可以通过原型模式对已有对象进行复制来获得&#xff0c;而不是每次都重新创建。 原型模式包含如下角色&#xff1a; 抽象原型类&#xff1a;规定了具…

Flink流批一体计算(16):PyFlink DataStream API

目录 概述 Pipeline Dataflow 代码示例WorldCount.py 执行脚本WorldCount.py 概述 Apache Flink 提供了 DataStream API&#xff0c;用于构建健壮的、有状态的流式应用程序。它提供了对状态和时间细粒度控制&#xff0c;从而允许实现高级事件驱动系统。 用户实现的Flink程…

Docker微服务实战

文章目录 业务需求IDEA编写代码编写Dockerfile构建镜像运行容器网页端访问测试 业务需求 利用Docker部署应用服务&#xff0c;实现在网页端通过输入地址 ip:端口/hello/docker&#xff0c;页面显示hello docker ! IDEA编写代码 创建springboot项目 网上很多教程,此步骤省略……

校园跑腿小程序开发方案详解

校园跑腿小程序App的功能有哪些&#xff1f; 1、用户注册与登录 用户可以通过手机号、社交账号等方式进行注册和登录&#xff0c;以便使用跑腿服务。 2、下单与发布任务 用户可以发布各类跑腿任务&#xff0c;包括食品外卖、快递代收、文件送达、帮我买、帮我取、帮我送等等…