深度学习(四)——torchvision中数据集的使用
一、 科研数据集
下载链接:
本文中我们使用的是\(CIFAR\)数据集
二、CIFAR10数据集详解
具体网站:
1. 参数详解
torchvision中每个数据集的参数都是大同小异的,这里只介绍CIFAR10数据集
该数据集的数据格式为PIL格式
class torchvision.datasets.CIFAR10(root:str,train:bool=True,transform:Optional[Callable]=None,target_transform:Optional[Callable]=None,download:bool=False)
内置函数:
root(string):必须设置,输入数据集下载后存放在电脑中的路径
train(bool):True代表创建的一个训练集(train);False代表创建一个测试集(test)。
transform:对数据集中的数据进行变换
target_transform:对标签(target)数据进行变换
download(bool):True的时候会自动从网上下载这个数据集,False的时候则不会下载该数据集。
代码示例:
运行后直接下载数据集
需要注意的是,如果下载速度过慢,则可以在运行后,把弹出的网址单拎出来,放到迅雷等软件上进行下载
import torchvision
#设置训练集
#root:设置为相对路径,会在该.py文件下设置一个名为dataset的文件存放CIFAR10数据
#train: True,数据集为训练集
#download: 下载该数据集
train_set=torchvision.datasets.CIFAR10(root="./dataset",train=True,download=True)
#设置测试集;train=False
test_set=torchvision.datasets.CIFAR10(root="./dataset",train=False,download=True)
数据标签查看:
在运行上面的代码下载好数据集后,输入
print(test_set[0),并使用一下pycharm的dubug功能,不难发现:
也就是说,数据标签有'airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck'十类,分别用整数0~9来表示
数据集包含的所有标签也可以用下面的代码打印出来:
print(test_set.classes)
#[Run] [airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']
- 某条数据的PIL Image、标签的获取方法:
img,target=test_set[索引]
img,target=test_set[0]
print(img)
print(target,test_set.classes[target])
#[Run]
#<PIL.Image.Image image mode=RGB size=32x32 at 0x1DDF9FCD640>
#3 cat
- 显示图片:
img.show()
三、使用transform处理多组图像数据
代码示例
首先使用\(Compose\)去定义如何处理PIL图像数据
然后代入\(torchvision.datasets.CIFAR10\)中,处理里面的图像数据
#首先用Compose处理图像数据,可以先转为tensor格式,然后再裁剪等,这里只转tensor格式
import torchvision
dataset_transform=torchvision.transforms.Compose([
torchvision.transforms.ToTensor()
])
#定义transform=dataset_transform,使得图像数据类型转换为Compose中处理过后的
train_set=torchvision.datasets.CIFAR10(root="./dataset",train=True,transform=dataset_transform,download=True)
test_set=torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=dataset_transform,download=True)
- 对处理过后的图像进行可视化操作
from torch.utils.tensorboard import SummaryWriter
writer=SummaryWriter("p10")
for i in range(10): #显示test_set数据集中的前十张图片
img,target=test_set[i]
writer.add_image("test_set",img,i)
writer.close()
深度学习(四)——torchvision中数据集的使用的更多相关文章
- 【腾讯Bugly干货分享】深度学习在OCR中的应用
本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5809bb47cc5e52161640c5c8 Dev Club 是一个交流移动 ...
- Attention机制在深度学习推荐算法中的应用(转载)
AFM:Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Ne ...
- 【AI in 美团】深度学习在OCR中的应用
AI(人工智能)技术已经广泛应用于美团的众多业务,从美团App到大众点评App,从外卖到打车出行,从旅游到婚庆亲子,美团数百名最优秀的算法工程师正致力于将AI技术应用于搜索.推荐.广告.风控.智能调度 ...
- 【深度学习】CNN 中 1x1 卷积核的作用
[深度学习]CNN 中 1x1 卷积核的作用 最近研究 GoogLeNet 和 VGG 神经网络结构的时候,都看见了它们在某些层有采取 1x1 作为卷积核,起初的时候,对这个做法很是迷惑,这是因为之前 ...
- 深度学习训练过程中的学习率衰减策略及pytorch实现
学习率是深度学习中的一个重要超参数,选择合适的学习率能够帮助模型更好地收敛. 本文主要介绍深度学习训练过程中的6种学习率衰减策略以及相应的Pytorch实现. 1. StepLR 按固定的训练epoc ...
- 深度学习在 CTR 中应用
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:高航 一. Wide&&Deep 模型 首先给出Wide && Deep [1] 网络结构: 本质上 ...
- 从零开始学会GAN 0:第一部分 介绍生成式深度学习(连载中)
本书的前四章旨在介绍开始构建生成式深度学习模型所需的核心技术.在第1章中,我们将首先对生成式建模领域进行广泛的研究,并从概率的角度考虑我们试图解决的问题类型.然后,我们将探讨我们的基本概率生成模型的第 ...
- 深度学习分类问题中accuracy等评价指标的理解
在处理深度学习分类问题时,会用到一些评价指标,如accuracy(准确率)等.刚开始接触时会感觉有点多有点绕,不太好理解.本文写出我的理解,同时以语音唤醒(唤醒词识别)来举例,希望能加深理解这些指标. ...
- go微服务框架go-micro深度学习(四) rpc方法调用过程详解
上一篇帖子go微服务框架go-micro深度学习(三) Registry服务的注册和发现详细解释了go-micro是如何做服务注册和发现在,服务端注册server信息,client获取server的地 ...
- 深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv
搞明白了卷积网络中所谓deconv到底是个什么东西后,不写下来怕又忘记,根据参考资料,加上我自己的理解,记录在这篇博客里. 先来规范表达 为了方便理解,本文出现的举例情况都是2D矩阵卷积,卷积输入和核 ...
随机推荐
- 扎实打牢数据结构算法根基,从此不怕算法面试系列之004 week01 02-04 使用泛型实现线性查找法
1.算法描述 在数组中逐个查找元素,即遍历. 2.上一篇文的实现结果 在 扎实打牢数据结构算法根基,从此不怕算法面试系列之003 week01 02-03 代码实现线性查找法中,我们实现了如下代码: ...
- 数组描述线性表(C++实现)
线性表也称有序表,其每一个实例都是元素的一个有序集合 抽象类linearList 一个抽象类包含没有实现代码的成员函数,这样的成员函数称为纯虚函数,用数字0作为初始值来说明 template<c ...
- vue侦听器(引入vue.js写法)
首先在html中引入vue.js,具体怎么下载可以参考https://blog.csdn.net/lvoelife/article/details/129254906,下载后在html中引入: 侦听d ...
- java获取到heapdump文件后,如何快速分析?
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明. 简介 在之前的OOM问题复盘之后,本周,又一Java服务出现了内存问题,这次问题不严重,只会触发堆内存占用高报警 ...
- 3. 面向对象编程(OOP):
面向对象编程的本质就是:以类的方式组织代码.以对象的组织(封装)数据 抽象:就是把不同的物品的共同点剥离出来,构成一个类.如每个人都有2条腿,我们可以把2条腿剥离出来 构成一个类 类与对象的关系 类: ...
- plotly 坐标轴范围截断rangebreaks使用的一个注意点
plotly坐标轴截断混合设置且指定设置截断时间的时候需要注意先后顺序 大范围的时间要在小范围的时间前设置,比如日内时间的截断要设置在日期截断的后面 同范围的规则截断要在指定截断前设置,对日期的截断, ...
- 2023-03-20:给定一个无向图,保证所有节点连成一棵树,没有环, 给定一个正数n为节点数,所以节点编号为0~n-1,那么就一定有n-1条边, 每条边形式为{a, b, w},意思是a和b之间的无
2023-03-20:给定一个无向图,保证所有节点连成一棵树,没有环, 给定一个正数n为节点数,所以节点编号为0~n-1,那么就一定有n-1条边, 每条边形式为{a, b, w},意思是a和b之间的无 ...
- 2022-12-07:删除重复的电子邮箱。删除重复数据后,id=3的数据被删除。请问sql语句如何写? DROP TABLE IF EXISTS `person`; CREATE TABLE `per
2022-12-07:删除重复的电子邮箱.删除重复数据后,id=3的数据被删除.请问sql语句如何写? DROP TABLE IF EXISTS `person`; CREATE TABLE `per ...
- HTB靶场之Busqueda
准备: 攻击机:虚拟机kali和win10(常规操作就直接用本机win10来操作了). 靶机:Inject,htb网站:https://www.hackthebox.com/,靶机地址:https:/ ...
- TestForPicGo
如果显示,则为成功 否则,失败 同时为CN-BLOG的vscode插件进行测试