亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

(圖像,掩模)對在語義分割任務中彼此不匹配

(圖像,掩模)對在語義分割任務中彼此不匹配

大話西游666 2023-12-12 21:10:51
我正在為分割數據集編寫一個簡單的自定義 DataLoader(稍后我將添加更多功能),但我使用__getitem()__方法返回的(圖像,掩碼)對是不同的;返回的掩碼屬于與返回的圖像不同的圖像。我的目錄結構是/home/bohare/data/images和/home/bohare/data/masks。以下是我的代碼:import torchfrom torch.utils.data.dataset import Datasetfrom PIL import Imageimport globimport osimport matplotlib.pyplot as pltclass CustomDataset(Dataset):    def __init__(self, folder_path):                self.img_files = glob.glob(os.path.join(folder_path,'images','*.png'))        self.mask_files = glob.glob(os.path.join(folder_path,'masks','*.png'))        def __getitem__(self, index):                image = Image.open(self.img_files[index])        mask = Image.open(self.mask_files[index])                return image, mask        def __len__(self):        return len(self.img_files)data = CustomDataset(folder_path = '/home/bohare/data')len(data)此代碼正確給出了數據集的總大小。但是當我使用: img, msk = data.__getitem__(n)其中 n 是任何(圖像,掩模)對的索引并且我繪制圖像和掩模時,它們彼此不對應。如何修改/添加什么到代碼中以確保正確返回(圖像,掩碼)對?謝謝您的幫助。
查看完整描述

1 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

glob.glob在沒有訂單的情況下返回它,glob.glob內部調用os.listdir

os.listdir(path) 返回一個列表,其中包含路徑給定目錄中的條目名稱。該列表的順序是任意的。它不包括特殊條目“.”?和“..”,即使它們存在于目錄中。

要解決這個問題,您可以對兩者進行排序,使順序相同:

self.img_files?=?sorted(glob.glob(os.path.join(folder_path,'images','*.png')))
self.mask_files?=?sorted(glob.glob(os.path.join(folder_path,'masks','*.png')))


查看完整回答
反對 回復 2023-12-12
  • 1 回答
  • 0 關注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號