PyTorch 解決Dataset和Dataloader遇到的問(wèn)題
今天在使用PyTorch中Dataset遇到了一個(gè)問(wèn)題。先看代碼
class psDataset(Dataset): def __init__(self, x, y, transforms = None): super(Dataset, self).__init__() self.x = x self.y = y if transforms == None: self.transforms = Compose([Resize((224, 224)), ToTensor()]) else: self.transforms = transforms def __len__(self): return len(self.x) def __getitem__(self, idx): img = Image.open(self.x[idx]) img = self.transforms(img) return img, torch.tensor([[self.y[idx]]])
結(jié)果運(yùn)行時(shí)報(bào)錯(cuò):RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0. Got 3 and 1 in dimension 1 at /opt/conda/conda-bld/pytorch_1522182087074/work/torch/lib/TH/generic/THTensorMath.c:2897
Google了一下發(fā)現(xiàn)是這樣的:讀入的圖片有些是灰度圖(1個(gè)通道),絕大多數(shù)是RGB圖片(3通道),也有些是帶透明度的(4通道)
。這導(dǎo)致在讀入后最后一個(gè)維度(通道數(shù))不一致(可能是1、3或者4)。
Dataloader在制作batch data時(shí),tensor的shape必須一樣,就報(bào)了這個(gè)錯(cuò)誤。解決的方法是:img = img.convert(“RGB”)。完
整代碼如下:
class psDataset(Dataset): def __init__(self, x, y, transforms = None): super(Dataset, self).__init__() self.x = x self.y = y if transforms == None: self.transforms = Compose([Resize((224, 224)), ToTensor()]) else: self.transforms = transforms def __len__(self): return len(self.x) def __getitem__(self, idx): img = Image.open(self.x[idx]) img = img.convert("RGB") img = self.transforms(img) return img, torch.tensor([[self.y[idx]]])
以上這篇PyTorch 解決Dataset和Dataloader遇到的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Pytorch數(shù)據(jù)讀取之Dataset和DataLoader知識(shí)總結(jié)
- Pytorch自定義Dataset和DataLoader去除不存在和空數(shù)據(jù)的操作
- pytorch Dataset,DataLoader產(chǎn)生自定義的訓(xùn)練數(shù)據(jù)案例
- PyTorch實(shí)現(xiàn)重寫(xiě)/改寫(xiě)Dataset并載入Dataloader
- 一文弄懂Pytorch的DataLoader, DataSet, Sampler之間的關(guān)系
- PyTorch?Dataset與DataLoader使用超詳細(xì)講解
相關(guān)文章
python實(shí)現(xiàn)搜索本地文件信息寫(xiě)入文件的方法
這篇文章主要介紹了python實(shí)現(xiàn)搜索本地文件信息寫(xiě)入文件的方法,涉及Python針對(duì)文件的遍歷及屬性操作相關(guān)技巧,需要的朋友可以參考下2016-02-02python中playwright結(jié)合pytest執(zhí)行用例的實(shí)現(xiàn)
本文主要介紹了python中playwright結(jié)合pytest執(zhí)行用例的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12YOLOv5部署到web端詳細(xì)過(guò)程(flask+js簡(jiǎn)單易懂)
YOLOv5是一個(gè)目標(biāo)檢測(cè)模型,Flask是一個(gè)Python的Web框架,下面這篇文章主要給大家介紹了關(guān)于YOLOv5部署到web端(flask+js簡(jiǎn)單易懂)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04Pythonr基于selenium如何實(shí)現(xiàn)不同商城的商品價(jià)格差異分析系統(tǒng)
這篇文章主要給大家介紹了關(guān)于Pythonr基于selenium如何實(shí)現(xiàn)不同商城的商品價(jià)格差異分析系統(tǒng)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03對(duì)Python中class和instance以及self的用法詳解
今天小編就為大家分享一篇對(duì)Python中class和instance以及self的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06python 寫(xiě)一個(gè)性能測(cè)試工具(一)
這篇文章主要介紹了利用python 寫(xiě)一個(gè)性能測(cè)試工具,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-10-10Python使用Beautiful Soup包編寫(xiě)爬蟲(chóng)時(shí)的一些關(guān)鍵點(diǎn)
這篇文章主要介紹了Python使用Beautiful Soup包編寫(xiě)爬蟲(chóng)時(shí)的一些關(guān)鍵點(diǎn),文中講到了parent屬性的使用以及soup的編碼問(wèn)題,需要的朋友可以參考下2016-01-01