时间:2021-05-22
图片显示
pytorch 载入的数据集是元组tuple 形式,里面包括了数据及标签(train_data,label),其中的train_data数据可以转换为torch.Tensor形式,方便后面计算使用。
同样给一些刚入门的同学在使用载入的数据显示图片的时候带来一些难以理解的地方,这里主要是将Tensor与numpy转换的过程,理解了这些就可以就行转换了
CIAFA10数据集
首先载入数据集,这里做了一些数据处理,包括图片尺寸、数据归一化等
import torchfrom torch.autograd import Variable import matplotlib.pyplot as plt import torchvision.datasets as dsetimport torchvision.transforms as transformsfrom autoencoder import AutoEncoderimport torch.nn as nnimport torchvisionimport numpy as npdataset = 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)的格式,所以进行了转换,才能显示
以上这篇pytorch 数据集图片显示方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在使用pytorch训练模型,经常需要加载大量图片数据,因此pytorch提供了好用的数据加载工具Dataloader。为了实现小批量循环读取大型数据集,在Da
PyTorch提供了ImageFolder的类来加载文件结构如下的图片数据集:root/dog/xxx.pngroot/dog/xxy.pngroot/dog/
取图片方法英文命令:GetPic 操作系统支持:Windows所属对象:画板返回画板上所有现有显示内容的图片数据。如果失败,返回空字节集。语法:字节集画板.取图
图片属性数据类型:字节集;本属性指定显示在对象上的图片。语法:对象.图片=字节集应用对象:图片框、按钮、选择框、单选框例程:说明:设置按钮背景显示的图片——将图
pytorch官网给出的例子中都是使用了已经定义好的特殊数据集接口来加载数据,而且其使用的数据都是官方给出的数据。如果我们有自己收集的数据集,如何用来训练网络呢