【问题标题】:How to split data into train and test sets from one directory with PyTorch?如何使用 PyTorch 将数据从一个目录拆分为训练集和测试集?
【发布时间】:2020-08-18 00:48:33
【问题描述】:

我有一个数据文件夹,其中没有将数据拆分为训练和测试文件夹。如何将数据拆分为训练集和测试集?标签来自文件的名称,因此该顺序的任何更改都必须包含标签。我想在使用 ImageFolder 之前拆分数据,以便可以在训练和测试数据集上完成不同的转换。

train_transforms = transforms.Compose([transforms.RandomRotation(10),
                                       transforms.RandomResizedCrop(224),
                                       transforms.RandomHorizontalFlip(),
                                       transforms.ToTensor(),
                                       transforms.Normalize([0.485, 0.456, 0.406], 
                                                            [0.229, 0.224, 0.225])])

test_transforms = transforms.Compose([transforms.Resize(256),
                                      transforms.CenterCrop(224),
                                      transforms.ToTensor(),
                                      transforms.Normalize([0.485, 0.456, 0.406], 
                                                           [0.229, 0.224, 0.225])])

train_image_dataset =  datasets.ImageFolder(data_dir, transform=train_transforms)

test_image_dataset = datasets.ImageFolder(data_dir, transform=test_transforms)

train_dataloader = torch.utils.data.DataLoader(train_image_dataset, batch_size=64, shuffle=True)

test_dataloader = torch.utils.data.DataLoader(test_image_dataset, batch_size=32)

【问题讨论】:

    标签: python neural-network pytorch training-data torchvision


    【解决方案1】:

    我认为您正在寻找的是 Cross-Validation ,请查看answer。您可以添加带有标签的列,然后应用任何交叉验证方法来拆分为测试和训练。

    【讨论】:

    • 能够进行 k 折交叉验证会更好,但我看不出这如何显示如何使用 ImageFolder 或在使用 ImageFolder 之前进行拆分,因此某些转换仅适用于训练集.
    • 好的,所以我找到了一个类似的question。希望这会有所帮助,早些时候我以为您正在寻找一个概念。
    猜你喜欢
    • 1970-01-01
    • 2018-07-21
    • 2019-05-01
    • 2019-12-06
    • 2021-04-19
    • 2021-02-27
    • 2020-02-29
    • 1970-01-01
    • 2019-08-01
    相关资源
    最近更新 更多