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中mechanize库的简单使用示例
Jan 10 Python
Python 执行字符串表达式函数(eval exec execfile)
Aug 11 Python
Python书单 不将就
Jul 11 Python
python机器学习理论与实战(六)支持向量机
Jan 19 Python
python3读取excel文件只提取某些行某些列的值方法
Jul 10 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
Python中那些 Pythonic的写法详解
Jul 02 Python
使用python爬取抖音视频列表信息
Jul 15 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
Python 实现Numpy中找出array中最大值所对应的行和列
Nov 26 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
python退出循环的方法
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实现ping
2006/10/09 PHP
PHP 中执行系统外部命令
2006/10/09 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
PHP7 弃用功能
2021/03/09 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
处理及遍历XML文档DOM元素属性及方法整理
2013/08/23 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码
2016/06/02 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
Vue中props的使用详解
2018/06/15 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
Python数据类型学习笔记
2016/01/13 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
药学专业大学生自荐信
2013/09/28 职场文书
应届生求职推荐信
2013/10/28 职场文书
会议开场欢迎词
2014/01/15 职场文书
项目投资意向书
2014/04/01 职场文书
学校评语大全
2014/05/06 职场文书
企业党员个人自我评价
2014/09/20 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
教师个人考察材料
2014/12/16 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
小学教师党员承诺书
2015/04/27 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers