亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

pytorch之ImageFolder使用詳解

 更新時(shí)間:2020年01月06日 17:56:42   作者:樸素.無恙  
今天小編就為大家分享一篇pytorch之ImageFolder使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

pytorch之ImageFolder

torchvision已經(jīng)預(yù)先實(shí)現(xiàn)了常用的Dataset,包括前面使用過的CIFAR-10,以及ImageNet、COCO、MNIST、LSUN等數(shù)據(jù)集,可通過諸如torchvision.datasets.CIFAR10來調(diào)用。在這里介紹一個(gè)會(huì)經(jīng)常使用到的Dataset——ImageFolder。

ImageFolder假設(shè)所有的文件按文件夾保存,每個(gè)文件夾下存儲(chǔ)同一個(gè)類別的圖片,文件夾名為類名,其構(gòu)造函數(shù)如下:

ImageFolder(root, transform=None, target_transform=None, loader=default_loader)

它主要有四個(gè)參數(shù):

root:在root指定的路徑下尋找圖片

transform:對PIL Image進(jìn)行的轉(zhuǎn)換操作,transform的輸入是使用loader讀取圖片的返回對象

target_transform:對label的轉(zhuǎn)換

loader:給定路徑后如何讀取圖片,默認(rèn)讀取為RGB格式的PIL Image對象

label是按照文件夾名順序排序后存成字典,即{類名:類序號(hào)(從0開始)},一般來說最好直接將文件夾命名為從0開始的數(shù)字,這樣會(huì)和ImageFolder實(shí)際的label一致,如果不是這種命名規(guī)范,建議看看self.class_to_idx屬性以了解label和文件夾名的映射關(guān)系。

圖片結(jié)構(gòu)如下所示:

from torchvision import transforms as T
import matplotlib.pyplot as plt
from torchvision.datasets import ImageFolder


dataset = ImageFolder('data/dogcat_2/')

# cat文件夾的圖片對應(yīng)label 0,dog對應(yīng)1
print(dataset.class_to_idx)

# 所有圖片的路徑和對應(yīng)的label
print(dataset.imgs)

# 沒有任何的transform,所以返回的還是PIL Image對象
#print(dataset[0][1])# 第一維是第幾張圖,第二維為1返回label
#print(dataset[0][0]) # 為0返回圖片數(shù)據(jù)
plt.imshow(dataset[0][0])
plt.axis('off')
plt.show()

加上transform

normalize = T.Normalize(mean=[0.4, 0.4, 0.4], std=[0.2, 0.2, 0.2])
transform = T.Compose([
     T.RandomResizedCrop(224),
     T.RandomHorizontalFlip(),
     T.ToTensor(),
     normalize,
])
dataset = ImageFolder('data1/dogcat_2/', transform=transform)

# 深度學(xué)習(xí)中圖片數(shù)據(jù)一般保存成CxHxW,即通道數(shù)x圖片高x圖片寬
#print(dataset[0][0].size())

to_img = T.ToPILImage()
# 0.2和0.4是標(biāo)準(zhǔn)差和均值的近似
a=to_img(dataset[0][0]*0.2+0.4)
plt.imshow(a)
plt.axis('off')
plt.show()

以上這篇pytorch之ImageFolder使用詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論