pytorch 笔记:DataLoader 扩展:构造图片DataLoader
生活随笔
收集整理的這篇文章主要介紹了
pytorch 笔记:DataLoader 扩展:构造图片DataLoader
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
數(shù)據(jù)來(lái)源:OneDrive for Business
涉及內(nèi)容:pytorch筆記:Dataloader_UQI-LIUWJ的博客-CSDN博客
torchvision 筆記:ToTensor()_UQI-LIUWJ的博客-CSDN博客
torchvision 筆記:transforms.Normalize()_UQI-LIUWJ的博客-CSDN博客
torchvision 筆記:transforms.Compose()_UQI-LIUWJ的博客-CSDN博客
1 數(shù)據(jù)格式
在windows的cmd上敲下 tree /F :
─img │ 00000.jpg │ 00001.jpg │ 00002.jpg │ 00003.jpg │ 00004.jpg │ 00005.jpg ..... | | │ 06998.jpg │ 06999.jpg │ └─splitlist_attr_cloth.txttest.txttest_bbox.txttest_landmards.txttrain.txttrain_attr.txttrain_bbox.txttrain_landmards.txtval.txtval_attr.txtval_bbox.txtval_landmards.txt我們這里先只用train.txt和train_attr.txt
1.1? train.txt
我們只看前五行
img/00000.jpg img/00001.jpg img/00002.jpg img/00003.jpg img/00004.jpg1.2 train_attrr.txt
也是只看前五行(每一行是這張圖片在這6個(gè)類上所屬的類別)
5 0 2 0 2 2 5 1 2 0 5 1 5 0 2 3 4 2 6 2 1 3 2 2 0 2 1 3 2 22 創(chuàng)建DataLoader
2.1 導(dǎo)入庫(kù)
from PIL import Image from torchvision import transforms, utils import torch from torch.utils.data import Dataset, DataLoader2.2?preprocess
對(duì)于每一張輸入的image進(jìn)行ToTensor和歸一化的操作
preprocess = transforms.Compose([transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225]) ])2.3 從路徑加載圖片-->圖片成為Tensor
def default_loader(path):img_pil = Image.open(path)img_pil = img_pil.resize((224,224))img_tensor = preprocess(img_pil)return img_tensor2.4 定義DataSet
還是需要實(shí)現(xiàn)__getitem__和__len__操作
class trainset(Dataset):def __init__(self,loader=default_loader,img_path='split/train.txt',tgt_path='split/train_attr.txt',attr_no=0):self.images = open(img_path,'r')#img_path代表的文件是進(jìn)行訓(xùn)練的圖片路徑的合集self.f_tmp=self.images.readlines()#self.target = open(tgt_path,'r')#img_path代表的文件是進(jìn)行訓(xùn)練的圖片標(biāo)簽的合集self.t_tmp=self.target.readlines()self.loader = loader #從路徑中讀取圖片->變成Tensorself.attr_no=attr_nodef __getitem__(self, index):fn = self.f_tmp[index].strip()#'img/00001.jpg'img = self.loader(fn)#從路徑中讀取圖片->變成Tensortt = self.t_tmp[index].strip()[self.attr_no]#由于有六個(gè)標(biāo)簽,我們一個(gè)一個(gè)設(shè)置return img,ttdef __len__(self):return len(self.f_tmp)2.5? 創(chuàng)建DataLoader
loader=DataLoader(trainset(),batch_size=4,shuffle=True)2.6 查看 效果
四張圖片以及對(duì)應(yīng)的標(biāo)簽
for step,(batch_x,batch_x_y) in enumerate(loader):print(batch_x,batch_x_y)break ''' tensor([[[[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],...,[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489]],[[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],...,[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286]],[[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],...,[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400]]],[[[2.1633, 2.1633, 2.1633, ..., 2.1804, 2.1804, 2.1804],[2.1633, 2.1633, 2.1633, ..., 2.1804, 2.1804, 2.1804],[2.1633, 2.1633, 2.1633, ..., 2.1804, 2.1804, 2.1804],...,[2.0777, 2.0777, 2.0605, ..., 2.1290, 2.1290, 2.1290],[2.1119, 2.1119, 2.1119, ..., 2.1290, 2.1290, 2.1290],[2.1462, 2.1462, 2.1290, ..., 2.1119, 2.1119, 2.1119]],[[2.3410, 2.3410, 2.3410, ..., 2.3585, 2.3585, 2.3585],[2.3410, 2.3410, 2.3410, ..., 2.3585, 2.3585, 2.3585],[2.3410, 2.3410, 2.3410, ..., 2.3585, 2.3585, 2.3585],...,[2.2360, 2.2360, 2.2185, ..., 2.3060, 2.3060, 2.3060],[2.2710, 2.2710, 2.2710, ..., 2.3060, 2.3060, 2.3060],[2.3060, 2.3060, 2.2885, ..., 2.2885, 2.2885, 2.2885]],[[2.5529, 2.5529, 2.5529, ..., 2.5703, 2.5703, 2.5703],[2.5529, 2.5529, 2.5529, ..., 2.5703, 2.5703, 2.5703],[2.5529, 2.5529, 2.5529, ..., 2.5703, 2.5703, 2.5703],...,[2.4134, 2.4134, 2.3960, ..., 2.5180, 2.5180, 2.5180],[2.4483, 2.4483, 2.4483, ..., 2.5180, 2.5180, 2.5180],[2.4831, 2.4831, 2.4657, ..., 2.5006, 2.5006, 2.5006]]],[[[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],...,[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2318, 2.2318, 2.2318, ..., 2.2489, 2.2489, 2.2489]],[[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],...,[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4111, 2.4111, 2.4111, ..., 2.4286, 2.4286, 2.4286]],[[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],...,[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6226, 2.6226, 2.6226, ..., 2.6400, 2.6400, 2.6400]]],[[[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],...,[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489]],[[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],...,[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286]],[[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],...,[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400]]]]) ('1', '1', '0', '3') '''總結(jié)
以上是生活随笔為你收集整理的pytorch 笔记:DataLoader 扩展:构造图片DataLoader的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: torchvision 笔记:trans
- 下一篇: PyTorch笔记: GPU上训练的模型