python - pytorch dataset.imagefolder 的加载器选项有什么作用?

标签 python pytorch

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/

相关文章:

python - 如何在pytorch中通过给定的索引和张量生成新的张量?

python - 输入列表并查找相同输入 python 的最长连胜

python - HuggingFace BERT `inputs_embeds` 给出了意想不到的结果

python - 为什么 Heroku 在新部署中安装旧的 Python (pip) 依赖项?

machine-learning - Pytorch 中 GRU 单元的隐藏和输出是否相同?

android - 如何构建Pytorch Mobile示例HelloWorld应用程序?

python - 奇数的最大池化可能吗?

python - 为什么 Python 3.7 数据类不支持 < > <= 和 >=,或者它们支持?

python - 为什么 Python 不预先构建所需的库,如 pandas、numpy 等

python - 如何找到 3 channel 图像的均值和标准差