Loader option
PyTorch dataset.imagefolder 的加载器选项的作用是什么?
实际上,现在我在一个文件夹中有 10,000 张图片,但我只想使用 100 张图片。现在我按索引加载所有图像和子集数据集。
from torch.utils.data import Subset
a = dset.ImageFolder(root=path_F,transform=transform)
index = list(range(0,100))
b = Subset(a,index)
加载器选项可以使我的代码简单吗?
最佳答案
loader
负责加载给定路径的图像。默认情况下,PyTorch 使用 pillow
它是 Image.open(path)
功能见 docs .
您可以像这样指定自定义加载(加载并旋转 45
度):
import torchvision
from PIL import Image
def loader(path):
return Image.open(path).rotate(45)
dataset = torchvision.datasets.ImageFolder("images", loader=loader)
所以不,你不应该用它来选择图像。原则上,您可以使用
is_valid_file
尽管如此,这样做的论据:class Chooser:
def __init__(self):
self._counter = -1
def __call__(self, path):
self._counter += 1
return self._counter < 100
dataset = torchvision.datasets.ImageFolder("images", is_valid_file=Chooser())
虽然我强烈反对这种方法 因为意图不是立即明确的,它将通过整个数据集检查每个图像。 您当前的方式是要走的路 .
关于python - pytorch dataset.imagefolder 的加载器选项有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62672870/