PyTorch ImageFolder:如何对属于特定类的图像进行采样

PyTorch ImageFolder:如何对属于特定类的图像进行采样,pytorch,tensor,Pytorch,Tensor,我有一个文件夹。我看到ImageFolder的\uuu getitem\uuuu(index)方法可以获得索引的张量和类。但是,如果我想使用ImageFolder从我选择的一个类(或多个类)中随机抽取一定数量的图像,然后为\uuuu getitem\uuu方法获取它们的索引,该怎么办?(有点像反向操作,即选择class->get index而不是选择index->get class) 如何做到这一点?我曾经尝试过类似的MNIST数据集,但遗憾的是找不到相应的代码。如果我没记错的话,我只是简单地对

我有一个文件夹。我看到ImageFolder的
\uuu getitem\uuuu(index)
方法可以获得索引的张量和类。但是,如果我想使用ImageFolder从我选择的一个类(或多个类)中随机抽取一定数量的图像,然后为
\uuuu getitem\uuu
方法获取它们的索引,该怎么办?(有点像反向操作,即选择class->get index而不是选择index->get class)


如何做到这一点?

我曾经尝试过类似的MNIST数据集,但遗憾的是找不到相应的代码。如果我没记错的话,我只是简单地对数据集的自定义拆分进行了迭代,但现在有了一种更自然的方法:
本质上,与其担心
数据集
类,不如担心
数据加载器
的问题。
数据集
仅包含引用此数据的方法;但是,实际调用此数据的点发生在
DataLoader

不幸的是,您必须编写自己的
DataLoader
,这允许您进行额外的自定义。我最好的猜测是使用一个采样器,它可以获取多个采样器(每个类一个采样器),在这个采样器中传递每个类的相应索引,并在运行时请求与特定类对应的采样器

顺便说一句,在定期提供的
DataLoader
s中不可能有这样的东西。 还要注意的是,当您一次通过所有训练数据时(如果您仍然希望在一个历元中通过所有不同的样本进行训练),跟踪变得越来越困难