pytorch 数据集图片显示方法
作者:zzw小凡 发布时间:2022-01-14 08:57:36
标签:pytorch,数据集,图片
图片显示
pytorch 载入的数据集是元组tuple 形式,里面包括了数据及标签(train_data,label),其中的train_data数据可以转换为torch.Tensor形式,方便后面计算使用。
同样给一些刚入门的同学在使用载入的数据显示图片的时候带来一些难以理解的地方,这里主要是将Tensor与numpy转换的过程,理解了这些就可以就行转换了
CIAFA10数据集
首先载入数据集,这里做了一些数据处理,包括图片尺寸、数据归一化等
import torch
from torch.autograd import Variable
import matplotlib.pyplot as plt
import torchvision.datasets as dset
import torchvision.transforms as transforms
from autoencoder import AutoEncoder
import torch.nn as nn
import torchvision
import numpy as np
dataset = dset.CIFAR10(root='../train/data', download=True,
transform=transforms.Compose([
transforms.Scale(200),
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
transforms.Gray()
]))
在这里 dataset 是一个CIFAR10对象,(大家可以查看一下他的源代码)
方式一
dataset[1] = ([torch.FloatTensor of size 1x200x200],9)
载入的第二个数据是个tensor格式,包含一个标签 9
这里我们做的就是将torch.FloatTensor 转换为numpy,然后显示
b = dataset[1][0].numpy()
#取数据,不取标签
因为这里的b仍然是1*200*200的大小,所以要重新reshape一下,适合输出图像
plt.imshow(b.reshape(200,200),cmap = 'gray')
plt.show()
然后可以显示图像了
方式二
利用torch的接口
img = torchvision.utils.make_grid(dataset[1][0]).numpy()
plt.imshow(np.transpose(img,(1,2,0)))
plt.show()
这用np.transpose 是因为plt.imshow在显示 时候输入的是(imgsize,imgsieze,channels),而这里得到的img是(3,200,200)的格式,所以进行了转换,才能显示
来源:https://blog.csdn.net/zzw000000/article/details/77949570


猜你喜欢
- 简介这两天更新完Xcode8之后发现Xcode对图标的要求又有了变化,之前用的一个小应用“IconKit”还没赶上节奏,已经不能满足Xcod
- 1、下载安装 python https://www.python.org/downloads/windows/web-based insta
- 通常,由于类别不均衡,需要使用weighted cross entropy loss平衡。def inverse_freq(label):
- print函数python输出主要使用print函数,print函数介绍:print(*objects, sep=' ',
- 使用Numpy创建三维矩阵创建语句#创建形式有两种#1 随机数形式np.random.random((x,y,z))#2 0或1形式np.o
- Python对象动态的增加属性和方法前面我们了解到数据封装、继承和多态只是面向对象程序设计中最基础的3个概念。在Python中,面向对象还有
- python里面可以将路径里面的\替换成/避免转义。os.walk方法可以将目标路径下文件的root,dirs,files提取出来。后面对每
- 详细参考:https://gitee.com/copperpeas/uniapp-paymentuniapp-payment介绍uniapp
- 本文实例主要实现的是使用urllib和BeautifulSoup爬取 * 的词条,具体如下。简洁代码:#引入开发包from urllib.
- 场景:mysql统计一个数据库里所有表的数据量,最近在做统计想查找一个数据库里基本所有的表数据量,数据量少的通过select count再加
- 本文实例讲述了Python实现随机生成手机号及正则验证手机号的方法。分享给大家供大家参考,具体如下:依据根据2017年10月份最新的手机号正
- 这两天在用python的bottle框架开发后台管理系统,接口约定使用RESTful风格请求,前端使用jquery ajax与接口进行交互,
- Python中类似于PHP的数组的结构有list,tuple,dict和set, 其中list, tuple和set的类似于PHP的索引数组
- 有的时候,一个 if … else … 还不够用。比如,根据年龄的划分:条件1:18岁或以上:adult条件2:6岁或以上:teenager
- 文章略长,但比较简单。es6中的数组方法some()和every()都接收一个回调函数作为参数,该回调函数又接收三个参数,分别是数组元素、数
- 研究网页编码很长时间了,因为最近要设计一个友情链接检测的VBS脚本,而与你链接的人的页面很可能是各种编码,以前采取的方法是:如果用GB231
- 1、需要准备工具xftp:上传项目文件本地下载地址:https://www.jb51.net/softs/81853.htmlxshell:
- pyx文件是python的c扩展文件,代码要符合cython的规范,用什么编辑器写都行。我在eric4上写的,结果它默认用python解释器
- 一.简单介绍: functools模块用于高阶函数:作用于或返回其他函数的函数。一般而言,任何可调用对象都可以作为本模块用途的函数
- numpy.reshape(重塑)给数组一个新的形状而不改变其数据numpy.reshape(a, newshape, order='