2. Pytorch入门教程——创建Cifar10 Pytorch数据集

2024-05-14 00:08

本文主要是介绍2. Pytorch入门教程——创建Cifar10 Pytorch数据集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们使用一个很经典的数据集Cifar10,而该数据集可以直接通过Pytorch内置函数获取到。

一、导入所需的库

import torch ## pytorch
import torchvision ## 迁移学习模型和许多其他视觉相关类
from torch import nn ## Pytorch核心神经网络模型类
from torch import optim ## 包含几个Pytorch优化器类
import torch.nn.functional as F ## 包含几个Pytorch提供的实用函数from torchvision import datasets, transforms, models ## 对于数据集和变换的一些计算机视觉相关类
from torch.utils.data import * ## 包含几个数据操作的实用函数
from PIL import Image
import numpy as np

二、创建CIFAR10 Pytorch数据集

  • 从torchvision下载CIFAR10训练集和测试集;
  • 首先设置train=True,表明我们下载训练集。然后设为False来下载测试集;
  • 设置download=True,由于我们是第一次获取这个数据集。因此,它将首先从CIFAR10类中预先指定的URL下载。
  • 在首次运行这个cell,成功的下载数据集后,应该改变为False来避免每次下载;
  • 以下操作的结果将是两个数据集对象,分别表示CIFAR10训练集和测试集。
train_dataset = datasets.CIFAR10('Cifar10', train=True,download=True)test_dataset = datasets.CIFAR10('Cifar10', train=False,download=True)

这里有两个来自torchvision.datasets.cifar的数据集对象。这是Pytorch的Dataset类的一个子类,Dataset是表示任何数据集的主类。这个特殊的类表示存储在其内部数据结构中的CIFAR10数据。稍后,这些对象将被传递给一个Pytorch Dataloader对象(稍后解释)来处理这些图像。

我们可以验证两个数据集的长度(图像的数量)

len(train_dataset),len(test_dataset)

(50000, 10000)
如上所示,我们分别有50000张图片的训练集和10000张图片的测试集。

二、张量(Tensors)快速介绍

张量是一种表示单个类型(整数或浮点数等)的n维数据对象的通用方式。例如:

  • 一个单值(整型或者浮点值)是一个0维张量;
  • 一个有N个元素的数组是一维张量;
  • 一个有M行N列的矩阵是一个二维张量(MxN);
  • 用三个矩阵表示的三个RGB(红,绿,蓝)颜色通道的MxN图像是一个三维张量(3xMxN); 图像张量包含在dataset对象中的字段train_data。让我们来看看代表一个图像张量的形状。
train_dataset.data[0].shape

(32, 32, 3)
说明我们的图片大小为3通道32x32,让我们用matplotlib.plyplot模块查看图片

%matplotlib inline
import matplotlib.pyplot as plt
plt.imshow(train_dataset.data[100])

在这里插入图片描述
这似乎是艘船,由于分辨率低(32x32),图片非常模糊

这篇关于2. Pytorch入门教程——创建Cifar10 Pytorch数据集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/987196

相关文章

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

python如何创建等差数列

《python如何创建等差数列》:本文主要介绍python如何创建等差数列的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python创建等差数列例题运行代码回车输出结果总结python创建等差数列import numpy as np x=int(in

SpringBoot中4种数据水平分片策略

《SpringBoot中4种数据水平分片策略》数据水平分片作为一种水平扩展策略,通过将数据分散到多个物理节点上,有效解决了存储容量和性能瓶颈问题,下面小编就来和大家分享4种数据分片策略吧... 目录一、前言二、哈希分片2.1 原理2.2 SpringBoot实现2.3 优缺点分析2.4 适用场景三、范围分片

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项