您好,登錄后才能下訂單哦!
圖片顯示
pytorch 載入的數(shù)據(jù)集是元組tuple 形式,里面包括了數(shù)據(jù)及標(biāo)簽(train_data,label),其中的train_data數(shù)據(jù)可以轉(zhuǎn)換為torch.Tensor形式,方便后面計(jì)算使用。
同樣給一些剛?cè)腴T的同學(xué)在使用載入的數(shù)據(jù)顯示圖片的時(shí)候帶來一些難以理解的地方,這里主要是將Tensor與numpy轉(zhuǎn)換的過程,理解了這些就可以就行轉(zhuǎn)換了
CIAFA10數(shù)據(jù)集
首先載入數(shù)據(jù)集,這里做了一些數(shù)據(jù)處理,包括圖片尺寸、數(shù)據(jù)歸一化等
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 是一個(gè)CIFAR10對(duì)象,(大家可以查看一下他的源代碼)
方式一
dataset[1] = ([torch.FloatTensor of size 1x200x200],9)
載入的第二個(gè)數(shù)據(jù)是個(gè)tensor格式,包含一個(gè)標(biāo)簽 9
這里我們做的就是將torch.FloatTensor 轉(zhuǎn)換為numpy,然后顯示
b = dataset[1][0].numpy() #取數(shù)據(jù),不取標(biāo)簽
因?yàn)檫@里的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 是因?yàn)閜lt.imshow在顯示 時(shí)候輸入的是(imgsize,imgsieze,channels),而這里得到的img是(3,200,200)的格式,所以進(jìn)行了轉(zhuǎn)換,才能顯示
以上這篇pytorch 數(shù)據(jù)集圖片顯示方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。