首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在数据集分发时对其进行划分

如何在数据集分发时对其进行划分
EN

Stack Overflow用户
提问于 2020-05-15 09:36:02
回答 1查看 1.3K关注 0票数 4

现在,我想将数据集分为两部分:火车集和验证集。我知道,在一个GPU上,我可以使用一个采样器来完成这个任务:

代码语言:javascript
运行
复制
indices = list(range(len(train_data)))
train_loader = torch.utils.data.DataLoader(
      train_data, batch_size=args.batch_size,
      sampler=torch.utils.data.sampler.SubsetRandomSampler(indices[:split]),
      pin_memory=True, num_workers=2)

但是当我想用torch.distributed并行地训练它时,我必须使用另一个取样器,即sampler = torch.utils.data.distributed.DistributedSampler(train_data)

那么,我应该如何使用这两个采样器,以便将数据集划分并同时分发?

非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-15 10:04:34

您可以在创建torch.utils.data.Dataset之前拆分torch.utils.data.DataLoader

只需像这样使用拆分

代码语言:javascript
运行
复制
train, validation =
    torch.utils.data.random_split(
        dataset, 
        (len(dataset)-val_length, val_length)
    )

这将为您提供两个单独的数据集,这些数据集可以与数据器一起使用,但是您希望如此。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61816158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档