溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

pytorch 數(shù)據(jù)集圖片顯示方法

發(fā)布時(shí)間:2020-09-09 00:54:04 來源:腳本之家 閱讀:217 作者:zzw小凡 欄目:開發(fā)技術(shù)

圖片顯示

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è)參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(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)容。

AI