pytorch 数据集图片显示方法

yipeiwu_com5年前Python基础

图片显示

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)的格式,所以进行了转换,才能显示

以上这篇pytorch 数据集图片显示方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python解析基于xml格式的日志文件

python解析基于xml格式的日志文件

大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波Python解析日志的小脚本。 首先,同样的先看看日志是个啥样。 都是xml格式的,是不是看着就头...

详解Python中的__init__和__new__

一、__init__ 方法是什么?使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__ 方法通常用在初始化一个类实例的时候。例如:复制...

详解Django+uwsgi+Nginx上线最佳实战

什么是uwsgi? uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。WSG...

python3.5安装python3-tk详解

python3.5安装python3-tk详解

 在python3.5下安装好matplotlib后,准备显示一张图片测试一下,但是控制台报错说需要安装python3-tk,我天真的以为直接: sudo apt-get i...

详解Python 函数如何重载?

什么是函数重载?简单的理解,支持多个同名函数的定义,只是参数的个数或者类型不同,在调用的时候,解释器会根据参数的个数或者类型,调用相应的函数。 重载这个特性在很多语言中都有实现,比如 C...