pytorch dataset.imagefolder的加载程序选项的角色是什么?

2024-04-27 01:02:42 发布

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

Loader option

PyTorch dataset.imagefolder的加载程序选项的角色是什么

实际上,现在我在一个文件夹中有10000个图像,但我只想使用100个图像。现在,我按索引加载所有图像和子集数据集

from torch.utils.data import Subset
a = dset.ImageFolder(root=path_F,transform=transform)
index = list(range(0,100))
b = Subset(a,index)

加载器选项能使我的代码变得简单吗


Tags: 数据图像程序文件夹角色index选项transform
1条回答
网友
1楼 · 发布于 2024-04-27 01:02:42

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())

我强烈反对这种方法,因为意图还不是很明确,它将通过整个数据集检查每个图像您当前的方式就是前进的方式

相关问题 更多 >