PyTorch读取Cifar数据集并显示图片的实例讲解


Posted in Python onJuly 27, 2018

首先了解一下需要的几个类所在的package

PyTorch读取Cifar数据集并显示图片的实例讲解

from torchvision import transforms, datasets as ds
from torch.utils.data import DataLoader
import matplotlib.pyplot as plt
import numpy as np

#transform = transforms.Compose是把一系列图片操作组合起来,比如减去像素均值等。
#DataLoader读入的数据类型是PIL.Image
#这里对图片不做任何处理,仅仅是把PIL.Image转换为torch.FloatTensor,从而可以被pytorch计算
transform = transforms.Compose(
 [
 transforms.ToTensor()
 ]
)

Step 1,得到torch.utils.data.Dataset实例。

torch.utils.data.Dataset是一个抽象类,CIFAR100是它的一个实例化子类

train=True,读取训练集;train=False,读取测试集

download=False,不下载。如果为True,则先检查root下有无该数据集,如果没有就先下载。

train_set = ds.CIFAR100(root='.', train=True, transform=transform, target_transform=None, download=True)

Step 2,把Dataset封装成torch.utils.data.DataLoader

data_loader = DataLoader(dataset=train_set,
  batch_size=1,
  shuffle=False,
  num_workers=2)


# # 生成torch.utils.data.DataLoaderIter
# # 不过DataLoaderIter它会被DataLoader自动创建并且调用,我们用不到
# data_iter = iter(data_loader)
# images, labels = next(data_iter)

step 3,从DataLoader里读取数据,并将图片显示出来。

注意:

1)使用for...in...循环读取数据的时候,会自动调用DataLoader里的__next__()函数

而且只能对Tensor实例进行迭代,所以之前的transforms必须最后加一个transforms.ToTensor()

2)显示图片有两种方式:Image.show()和plt.imshow(ndarray)

Image.show():

通过transforms.ToPILImage()把FloatTensor转化为Image

plt.imshow(ndarray):

通过FloatTensor.numpy()转化为ndarray,再调用plt.imshow()

to_pil_image = transforms.ToPILImage()
cnt = 0
for image,label in data_loader:
 if cnt>=3: # 只显示3张图片
 break
 print(label) # 显示label

 # 方法1:Image.show()
 # transforms.ToPILImage()中有一句
 # npimg = np.transpose(pic.numpy(), (1, 2, 0))
 # 因此pic只能是3-D Tensor,所以要用image[0]消去batch那一维
 img = to_pil_image(image[0])
 img.show()

 # 方法2:plt.imshow(ndarray)
 img = image[0] # plt.imshow()只能接受3-D Tensor,所以也要用image[0]消去batch那一维
 img = img.numpy() # FloatTensor转为ndarray
 img = np.transpose(img, (1,2,0)) # 把channel那一维放到最后

 # 显示图片
 plt.imshow(img)
 plt.show()

 cnt += 1

另外补一句np.transpose()的用法。

第一个参数是要transpose的图片;

第二个是shape。比如一个ndarray是(channel, height, width),如果给第二个参数(height, width,channel),就会把第0维channel整个搬到最后。

以上这篇PyTorch读取Cifar数据集并显示图片的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python让图片按照exif信息里的创建时间进行排序的方法
Mar 16 Python
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
Python语言生成水仙花数代码示例
Dec 18 Python
利用Python暴力破解zip文件口令的方法详解
Dec 21 Python
python实现梯度下降算法
Mar 24 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
django 自定义过滤器的实现
Feb 26 Python
浅谈python的深浅拷贝以及fromkeys的用法
Mar 08 Python
解决python3 安装不了PIL的问题
Aug 16 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
python3实现用turtle模块画一棵随机樱花树
Nov 21 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
Jun 18 Python
pytorch 数据集图片显示方法
Jul 26 #Python
mac安装pytorch及系统的numpy更新方法
Jul 26 #Python
浅谈pytorch和Numpy的区别以及相互转换方法
Jul 26 #Python
pytorch: tensor类型的构建与相互转换实例
Jul 26 #Python
pytorch中tensor的合并与截取方法
Jul 26 #Python
Python爬虫框架Scrapy常用命令总结
Jul 26 #Python
Python退火算法在高次方程的应用
Jul 26 #Python
You might like
PHP的cURL库简介及使用示例
2015/02/06 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
Python随机生成均匀分布在三角形内或者任意多边形内的点
2017/12/14 Python
EM算法的python实现的方法步骤
2018/01/02 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
python进度条显示之tqmd模块
2020/08/22 Python
Pycharm中如何关掉python console
2020/10/27 Python
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
工业学校毕业生自荐书
2014/01/03 职场文书
三年级数学教学反思
2014/01/31 职场文书
施工安全责任书范本
2014/07/24 职场文书
励志演讲稿500字
2014/08/21 职场文书
出售房屋委托书范本
2014/09/24 职场文书
整改报告怎么写
2014/11/06 职场文书
成本会计岗位职责
2015/02/03 职场文书
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript