对数据集中的每个图像进行N次单批采样

2024-10-01 07:10:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在学习表征(深度嵌入)的任务。我使用的数据集每个对象只有一个示例图像。我也使用增广。你知道吗

在训练期间,每个批必须包含数据集中单个图像的N个不同的扩充版本(dataset[index]总是返回新的随机变换)。你知道吗

是否有一些标准的解决方案或带有DataLoader的库可以用于torch.utils.data.distributed.DistributedSampler? 如果没有,那么从torch.utils.data.DataLoader(并调用super().__init__(...))继承的任何数据加载器都将在分布式训练中工作吗?你知道吗


Tags: 数据对象图像版本示例data标准index
1条回答
网友
1楼 · 发布于 2024-10-01 07:10:50

据我所知,这不是一种标准的处理方式-即使每个对象只有一个样本,每个批仍然会从不同的对象中采样不同的图像,并且在不同的时代采样的图像会进行不同的转换。你知道吗

也就是说,如果你真的想做你正在做的事情,为什么不简单地为你的数据集写一个包装器呢?你知道吗

class Wrapper(Dataset):
    N = 16
    def __getitem__(self, index):
        sample = [ super().__getitem__(index) for _ in N ]
        sample = torch.stack(sample, dim=0)
        return sample

那么每个批都是BxNxCxHxW,其中B是批大小,N是重复。您可以在从dataloader获取批处理之后对其进行重塑。你知道吗

相关问题 更多 >