Pytorch代码入门学习之分类任务(二):定义数据集

一、导包

import torch
import torchvision
import torchvision.transforms as transforms

二、下载数据集

2.1 代码展示

# 定义数据加载进来后的初始化操作:
transform = transforms.Compose([
    # 张量转换:
    transforms.ToTensor(),
    # 归一化操作:
    transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))
])
 
trainset = torchvision.datasets.CIFAR10(root='./data',train=True,download=True,transform=transform)
testset = torchvision.datasets.CIFAR10(root='./data',train=False,download=True,transform=transform)
trainloader = torch.utils.data.DataLoader(trainset,batch_size=4,shuffle=True,num_workers=0)
testloader = torch.utils.data.DataLoader(testset,batch_size=4,shuffle=False,num_workers=0)

2.2 数据集介绍与下载方式

       (1)数据集介绍:

        CIFAR10数据集共60000个样本,其中有50000个训练样本和10000个测试样本。每个样本都是一张32*32像素的RGB图像(彩色图像),每个图像分为3个通道(R通道、G通道与B通道)。 

        CIFAR10数据集用来进行监督学习训练,每个样本包含一个标签值,其中有10类物体,标签值按照0~9来区分,分别是飞机( airplane )、汽车( automobile )、鸟( bird )、猫( cat )、鹿( deer )、狗( dog )、青蛙( frog )、马( horse )、船( ship )和卡车( truck )。

        CIFAR10数据集的内容,如下图所示。

        官网介绍链接:CIFAR-10 and CIFAR-100 datasets (toronto.edu)

        (2)下载方式:

        ①下载文件:下载地址:https://pan.baidu.com/s/1Nh28RyfwPNNfe_sS8NBNUA 

        提取码:1h4x

        ②将下载好的文件重命名为cifar-10-batches-py.tar.gz

        ③将文件保存至相应地址下即可

2.3 transforms.Compose

        transforms.Compose:相当于将所有需要的操作进行打包;

        transforms.ToTensor:完成张量转换,pytorch处理的都是tensor数据,需要将读入的图片转换为tensor,其中tensor比普通图片的三通道多了一个通道—batch;

       transforms.Normalize:归一化操作,对这一批次的数据进行归一,可以加速网络的收敛、放置梯度消失与梯度爆炸。

2.4 Dataset

        Dataset是指定义好数据的格式和数据变换的形式,完成一些初始化的变化,然后送给网络(相当于将数据读入进去)。

       torchvision.datasets.CIFAR10(调用数据集):第一个参数为数据集加载的地址、第二个参数为是否是训练数据或测试数据(训练数据为True,测试数据为False)、第三个为download-指该数据集是否本地下载,最后一个参数为要做哪些变化(transform是指数据变换格式,torchvision会将我们需要的数据进行格式变换)。

2.4 Dataloader

        Dataloader:负责用iterative迭代的方式不断读入批次数据,一批次一批次将数据进行打包,送入网络进行训练、学习、测试。

        torch.utils.data.DataLoader:第一个参数为数据,第二个参数为batch_size(代表Dataloader一次从这么多数据中拿多少个数据走),第三个参数为是否将数据打乱(训练的时候将数据打乱会让数据变得复杂,测试的时候不需要变得复杂),第四个参数为需要几线程进行读取数据(对于windows,默认为0就可以)

三、定义元组

        定义元组进行类别名的中文转换:

classes = ('airplane','automobile','bird','car','deer','dog','frog','horse','ship','truck')

四、定义显示函数与运行数据加载器

4.1 代码展示

import matplotlib.pyplot as plt
import numpy as np  # 用这个包中的根据将tensor数据转换成矩阵数据
 
def imshow(img):
    img = img / 2 + 0.5
    # tensor数据转换为numpy
    npimg = img.numpy()
    # 使用transpose进行数据转换-通道转换
    plt.imshow(np.transpose(npimg,(1,2,0)))
    plt.show()
 
dataiter = iter(trainloader)
images,labels = dataiter.next()
 
imshow(torchvision.utils.make_grid(images))
 
print(labels)
print(labels[0],classes[labels[0]])
print(' '.join(classes[labels[j]] for j in range(4)))

4.2 定义显示函数

        tensor[batch,channel,H,W],而正常显示图片的顺序为H、W、channel,因此需要定义显示函数,通过反归一化才能变成正常的图片去显示。

4.3 定义迭代器

        iter(trainloader) : 定义迭代器,读一次迭代的数据(batch_size=4,所以迭代器一次会读取四张图片);

        torchvision.utils.make_grid:将多张图片拼接为一张图片。

参考:003 第一个分类任务1_哔哩哔哩_bilibili

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

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

相关文章

FLStudio2024汉化破解版在哪可以下载?

水果音乐制作软件FLStudio是一款功能强大的音乐创作软件,全名:Fruity Loops Studio。水果音乐制作软件FLStudio内含教程、软件、素材,是一个完整的软件音乐制作环境或数字音频工作站... FL Studio21简称FL 21,全称 Fruity Loops Studio 21,因此国人习惯叫…

图像数据噪音种类以及Python生成对应噪音

前言 当涉及到图像处理和计算机视觉任务时,噪音是一个不可忽视的因素。噪音可以由多种因素引起,如传感器误差、通信干扰、环境光线变化等。这些噪音会导致图像质量下降,从而影响到后续的图像分析和处理过程。因此,对于从图像中获…

0027Java程序设计-房屋出租管理系统

文章目录 摘 要目 录系统设计开发环境 摘 要 随着我国市场经济的快速发展和人们生活水平的不断提高,简单的房屋出租服务已经不能满足人们的需求。如何利用先进的管理手段,提高房屋出租的管理水平,是当今社会所面临的一个重要课题。 本文采用…

I/O 模型学习笔记【全面理解BIO/NIO/AIO】

文章目录 I/O 模型什么是 I/O 模型Java支持3种I/O模型BIO(Blocking I/O)NIO(Non-blocking I/O)AIO(Asynchronous I/O) BIO、NIO、AIO适用场景分析 java BIOJava BIO 基本介绍Java BIO 编程流程一个栗子实现…

【2024秋招】小米中间件后端开发一面2023-9-13-base武汉

1 自我介绍 2 快手实习 2.1 讲讲你写的curd启动器,做了哪些工作呢 答: 2.2 网上也有一些开源的curd代码生成器,你为什么需要自研呢(重要) 答: (1)这个必须得自研,因…

『第三章』雨燕栖息地:Swift 开发环境

在本篇博文中,您将学到如下内容: 1. Swift 开发平台2. Swift 集成开发环境 Xcode?3. 原型试验场:Playground4. 另一种尝试:iPad 上的 Swift Playgrounds5. Swift 交互实验室:Swift REPL总结 咫尺春三月,寻常百姓家。为…

【RTOS学习】软件定时器 | 中断处理

🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 软件定时器 | 中断处理 🏀软件定时器⚽守护任务守护任务的调度 ⚽使用软件定时器的函数…

多级缓存入门

文章目录 什么是多级缓存JVM进程缓存环境准备安装MySQL导入Demo工程导入商品查询页面 初识Caffeine Lua语法初识Lua第一个lua程序变量和循环Lua的数据类型声明变量循环 条件控制、函数函数条件控制 多级缓存安装OpenRestyOpenResty快速入门反向代理流程OpenResty监听请求编写it…

【linux】麒麟v10安装Redis哨兵集群(ARM架构)

安装redis单示例的请看:麒麟v10安装Redis(ARM架构) 安装服务器 ​Hostname​IP addressmaster,sentinel192.168.0.1slave1,sentinel192.168.0.2slave2,sentinel192.168.0.3 下载安装包 (三台都操作) wget https://re…

施工进度难以把控,项目失控怎么办?

在施工项目中,施工进度的控制是非常重要的,它直接关系到项目是否能够按时完成以及项目成本的控制。然而,有时候由于各种原因,施工进度可能会难以把控,导致项目失控。那么,当项目失控时,我们应该…

Ansible上通过roles简化playbook演示介绍

目录 一.roles介绍 1.作用 2.role的目录结构 3.role和tasks的执行优先级顺序 二.自定义一个httpd的角色 1.完整目录结构展示 2.主要的各个目录配置 (1)vars目录和templates目录 (2)tasks目录和handlers目录 &#xff08…

云原生Docker数据管理

目录 Docker的数据管理 数据卷 数据卷容器 容器互联 容器中管理数据主要有两种方式: 数据卷(Data Volumes)数据卷容器(Data Volume Dontainers) Docker的数据管理 数据卷 数据卷是一个供容器使用的特殊目录&a…

题目 1120: C语言训练-“水仙花数“问题2python详解)——练气三层后期

✨博主:命运之光 🦄专栏:算法修炼之练气篇(C\C版) 🍓专栏:算法修炼之筑基篇(C\C版) 🍒专栏:算法修炼之练气篇(Python版) ✨…

今天玩到一个微信钓鱼小游戏,很有趣,居然还能玩萝卜刀

这款钓鱼冠军微信小游戏很有创意,除了传统的钓鱼玩法,居然还融合了黄金矿工的玩法,很不错的想法,而且居然还能玩最近比较火的萝卜刀,快来扫码体验一下吧,或者微信里搜索 《钓鱼冠军》小游戏,认…

2023年Q3线上生鲜水产数据分析:市场不景气,销额同比下滑44%

事实上,今年线上的生鲜生意市场并不景气。无论是Q1季度还是Q2季度,线上(京东平台)的销售额均同比去年下滑了10%左右。 然而到了Q3季度,整个下滑态势愈发严峻。可以看到鲸参谋数据显示,7月至9月生鲜水产在京…

Jmeter性能测试 —— TPS拐点寻找

寻找TPS性能拐点1、准备脚本①在本地电脑调试Jmeter压测脚本 ②上传到压测机Jmeter所在的服务器 2、执行压力测试①执行压测脚本 jmeter –n –t xianchengzuse.jmx ②记录业务压测数据 3、监控服务器性能指标 ①监控CPU输入top命令 ②监控内存 free –m ③jstat监控sweep和…

基于WebRTC构建的程序因虚拟内存不足导致闪退问题的排查以及解决办法的探究

目录 1、WebRTC简介 2、问题现象描述 3、将Windbg附加到目标进程上分析 3.1、Windbg没有附加到主程序进程上,没有感知到异常或中断 3.2、Windbg感知到了中断,中断在DebugBreak函数调用上 3.3、32位进程用户态虚拟地址和内核态虚拟地址的划分 …

大数据-Storm流式框架(四)---storm容错机制

1、集群节点宕机 Nimbus服务器 硬件 单点故障?可以搭建HA jStorm搭建 nimbus的HA nimbus的信息存储到zookeeper中,只要下游没问题(进程退出)nimbus退出就不会有问题, 如果在nimbus宕机,也不能提交…

特约|数码转型思考:Web3.0与银行

日前,欧科云链研究院发布重磅报告,引发银行界及金融监管机构广泛关注。通过拆解全球70余家银行的加密布局,报告认为,随着全球采用率的提升与相关技术的成熟,加密资产已成为银行业不容忽视也不能错过的创新领域。 作为…

机器学习实验一:KNN算法,手写数字数据集(使用汉明距离)(2)

KNN-手写数字数据集: 使用sklearn中的KNN算法工具包( KNeighborsClassifier)替换实现分类器的构建,注意使用的是汉明距离; 运行结果:(大概要运行4分钟左右) 代码: import pandas as…