首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过一次操作合并两个torch.utils.data数据加载器

如何通过一次操作合并两个torch.utils.data数据加载器
EN

Stack Overflow用户
提问于 2021-01-08 07:29:45
回答 3查看 1.3K关注 0票数 0

我有两个数据加载器,我想在不重新定义数据集的情况下合并它们,在我的例子中是train_dataset和val_dataset。

代码语言:javascript
复制
train_loader = DataLoader(train_dataset, batch_size = 512, drop_last=True,shuffle=True)
val_loader = DataLoader(val_dataset, batch_size = 512, drop_last=False)

想要的结果:

代码语言:javascript
复制
train_loader = train_loader + val_loader 
EN

回答 3

Stack Overflow用户

发布于 2021-01-08 07:59:25

数据加载器是迭代器,您可以实现一个函数来返回一个迭代器,该迭代器产生数据加载器的内容,一个接一个数据加载器。

给定多个迭代器itrs,它将遍历每个迭代器,然后遍历每个迭代器,一次产生一个批。一种可能的实现就像下面这样简单:

代码语言:javascript
复制
def itr_merge(*itrs):
    for itr in itrs:
        for v in itr:
            yield v

下面是一个使用示例:

代码语言:javascript
复制
>>> dl1 = DataLoader(TensorDataset(torch.zeros(5, 1)), batch_size=2, drop_last=True)
>>> dl2 = DataLoader(TensorDataset(torch.ones(10, 1)), batch_size=2)

>>> for x in itr_merge(dl1, dl2):
>>>   print(x)
[tensor([[0.], [0.]])]
[tensor([[0.], [0.]])]
[tensor([[1.], [1.]])]
[tensor([[1.], [1.]])]
[tensor([[1.], [1.]])]
[tensor([[1.], [1.]])]
[tensor([[1.], [1.]])]
票数 3
EN

Stack Overflow用户

发布于 2021-08-31 11:08:12

https://pytorch.org/docs/stable/_modules/torch/utils/data/dataset.html#ConcatDataset中有一个可用的ConcatDataset。您可以在将数据集传递给DataLoader之前将其连接起来

代码语言:javascript
复制
import torch
from torch.utils.data import TensorDataset, ConcatDataset, DataLoader
dsa = TensorDataset(torch.rand(100, 3), torch.rand(100, 1) )
dsb = TensorDataset(torch.rand(150, 3), torch.rand(150, 1) )

dsab_cat = ConcatDataset([dsa, dsb])
dsab_cat_loader = DataLoader(dsab_cat)

参考文献:https://www.oreilly.com/library/view/deep-learning-with/9781789534092/5f2cf6d8-4cdf-4e83-8c5b-58fbf722f6b6.xhtml

票数 1
EN

Stack Overflow用户

发布于 2021-11-20 11:51:01

返回一个张量列表,您可以像通常迭代DataLoader那样迭代训练张量

代码语言:javascript
复制
trainval = [d for dl in [train_loader, val_loader] for d in dl]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65621414

复制
相关文章

相似问题

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