2024-04-26 12:58:28 发布
网友
我有两个tif图像的数据集文件夹,一个是名为BMMCdata的文件夹,另一个是BMMCdata图像的掩码BMMCmasks(图像的名称是对应的)。我试图制作一个定制的数据集,并随机分割数据进行训练和测试。我现在犯了个错误
self.filenames.append(fn) AttributeError: 'Customdataset' object has no attribute 'filenames'
任何评论都将不胜感激。在
Pythorch社区的@ptrblck给出了答案。谢谢你
# get all the image and mask path and number of images folder_data = glob.glob("D:\\Neda\\Pytorch\\U-net\\BMMCdata\\data\\*.tif") folder_mask = glob.glob("D:\\Neda\\Pytorch\\U-net\\BMMCmasks\\masks\\*.tif") # split these path using a certain percentage len_data = len(folder_data) print(len_data) train_size = 0.6 train_image_paths = folder_data[:int(len_data*train_size)] test_image_paths = folder_data[int(len_data*train_size):] train_mask_paths = folder_mask[:int(len_data*train_size)] test_mask_paths = folder_mask[int(len_data*train_size):] class CustomDataset(Dataset): def __init__(self, image_paths, target_paths, train=True): # initial logic happens like transform self.image_paths = image_paths self.target_paths = target_paths self.transforms = transforms.ToTensor() def __getitem__(self, index): image = Image.open(self.image_paths[index]) mask = Image.open(self.target_paths[index]) t_image = self.transforms(image) return t_image, mask def __len__(self): # return count of sample we have return len(self.image_paths) train_dataset = CustomDataset(train_image_paths, train_mask_paths, train=True) train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=4, shuffle=True, num_workers=1) test_dataset = CustomDataset(test_image_paths, test_mask_paths, train=False) test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=4, shuffle=False, num_workers=1)
Pythorch社区的@ptrblck给出了答案。谢谢你
相关问题 更多 >
编程相关推荐