为了账号安全,请及时绑定邮箱和手机立即绑定

将图像文件夹拆分为训练数据集和验证数据集

将图像文件夹拆分为训练数据集和验证数据集

绝地无双 2022-09-13 09:57:17
我已经加载了我的数据集,如下所示:full_dataset = ImageFolder(root = os.path.join(root, 'train'), transform=train_transforms)现在,为了将我的数据集拆分为训练集和验证集,我使用以下代码:train_size = int(0.8 * len(full_dataset))validation_size = len(full_dataset) - train_sizetrain_dataset, validation_dataset = random_split(full_dataset, [train_size, validation_size])和 均为 类型 : 。有没有办法将这些数据集转换为 .我需要这样做,因为我无法迭代类型的数据集train_datasetvalidation_datasettorch.utils.data.dataset.Subsettorchvision.datasets.folder.ImageFoldertorch.utils.data.dataset.Subset
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

您应该能够很好地循环访问 Subset,因为它实现了从源代码中看到的方法:__getitem__


class Subset(Dataset):

    r"""

    Subset of a dataset at specified indices.


    Arguments:

        dataset (Dataset): The whole Dataset

        indices (sequence): Indices in the whole set selected for subset

    """

    def __init__(self, dataset, indices):

        self.dataset = dataset

        self.indices = indices


    def __getitem__(self, idx):

        return self.dataset[self.indices[idx]]


    def __len__(self):

        return len(self.indices)

因此,以下方法应该有效:


for image, label in train_dataset:

    print(image, label)

或者,您可以从子集创建数据加载器:


train_dataloader = DataLoader(train_dataset, batch_size, shuffle)


for images, labels in train_dataloader:

    print(images, labels)

与 相同。validation_dataset


查看完整回答
反对 回复 2022-09-13
  • 1 回答
  • 0 关注
  • 49 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信