pytorch 數(shù)據(jù)集圖片顯示方法
圖片顯示
pytorch 載入的數(shù)據(jù)集是元組tuple 形式,里面包括了數(shù)據(jù)及標簽(train_data,label),其中的train_data數(shù)據(jù)可以轉(zhuǎn)換為torch.Tensor形式,方便后面計算使用。
同樣給一些剛?cè)腴T的同學在使用載入的數(shù)據(jù)顯示圖片的時候帶來一些難以理解的地方,這里主要是將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 是一個CIFAR10對象,(大家可以查看一下他的源代碼)
方式一
dataset[1] = ([torch.FloatTensor of size 1x200x200],9)
載入的第二個數(shù)據(jù)是個tensor格式,包含一個標簽 9
這里我們做的就是將torch.FloatTensor 轉(zhuǎn)換為numpy,然后顯示
b = dataset[1][0].numpy() #取數(shù)據(jù),不取標簽
因為這里的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)的格式,所以進行了轉(zhuǎn)換,才能顯示
以上這篇pytorch 數(shù)據(jù)集圖片顯示方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux環(huán)境下MySQL-python安裝過程分享
這篇文章主要介紹了Linux環(huán)境下MySQL-python安裝過程分享,本文使用的編譯方式安裝,需要的朋友可以參考下2015-02-02
淺析python實現(xiàn)動態(tài)規(guī)劃背包問題
這篇文章主要介紹了python實現(xiàn)動態(tài)規(guī)劃背包問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
Python實現(xiàn)圖片和視頻的相互轉(zhuǎn)換
有時候我們需要把很多的圖片合成視頻,或者說自己寫一個腳本去加快或者放慢視頻;也有時候需要把視頻裁剪成圖片,進行后續(xù)操作。這篇文章就將為大家介紹如何通過Python實現(xiàn)圖片和視頻的相互轉(zhuǎn)換,需要的可以參考一下2021-12-12

