Pytorch 是否可以使用Pytork'倒扣最后一个;什么是数据加载器?

Pytorch 是否可以使用Pytork'倒扣最后一个;什么是数据加载器?,pytorch,dataloader,Pytorch,Dataloader,我目前正在尝试制作一个定制的PyTorch数据加载器 我知道,当首次声明DataLoader对象时,设置drop\u last=True会告诉对象如果大小不合适,则删除最后一个不完整的批。然而,我想知道是否可以反过来做,数据加载器从后面计算批数和计数 我问这个问题的原因是因为我目前使用的数据是时间序列数据,我想使用最新的样本,因此,如果从数据的最旧部分删除“剩余”样本,这将是理想的 我想到了一些方法,比如首先反转数据,然后创建DataLoader对象并将其反转回原来的方式,或者先反转数据并创建对

我目前正在尝试制作一个定制的PyTorch数据加载器

我知道,当首次声明DataLoader对象时,设置
drop\u last=True
会告诉对象如果大小不合适,则删除最后一个不完整的批。然而,我想知道是否可以反过来做,数据加载器从后面计算批数和计数

我问这个问题的原因是因为我目前使用的数据是时间序列数据,我想使用最新的样本,因此,如果从数据的最旧部分删除“剩余”样本,这将是理想的

我想到了一些方法,比如首先反转数据,然后创建DataLoader对象并将其反转回原来的方式,或者先反转数据并创建对象,然后在运行
\uu getitem\uuuuu
时按相反顺序输入
idx
,但这似乎很麻烦,而且容易出错,所以我想知道PyTorch是否提供了这种行为


提前感谢。

计算将要移除的样本数量相对简单。一旦你有了这个数字,你就可以用它从一开始就截断你的数据。比如说

batch_size = ... # your batch size
dataset = ... # your dataset

# compute number of samples to remove
dropped_samples = len(dataset) - batch_size * int(len(dataset) // batch_size)

subset_dataset = torch.utils.data.Subset(dataset, range(dropped_samples, len(dataset)))
loader = torch.utils.data.DataLoader(subset_dataset, ...
在这种情况下,设置
drop\u last=True
将无效,因为
len(子集数据集)
可被
批大小整除