【问题标题】:what is the function of default_loader in torch?pytorch中默认加载器的作用是什么?
【发布时间】:2020-10-07 20:14:43
【问题描述】:
    import os
    import pandas as pd
    import numpy as np
    from torchvision.datasets.folder import default_loader
    from torchvision.datasets.utils import download_url
    from torch.utils.data import Dataset

   
 class Sample_Class(Dataset):
      def __init__(self,root,train=True,transform=None,loader=default_loader):
        self.root = os.path.expanduser(root)
        self.transform = transform
        self.loader = default_loader

上面代码sn-p中,loader=default_loader的意义是什么,具体是做什么的?

【问题讨论】:

    标签: dataset pytorch dataloader


    【解决方案1】:

    这个Sample_Class 可能在模仿ImageFolderDatasetFolderImageNet 的行为。该函数应将文件名作为输入,并根据所选的图像后端返回PIL.Imageaccimage.Image

    default_loader 函数在torchvision/datasets/folder.py 中定义

    def pil_loader(path):
        # open path as file to avoid ResourceWarning (https://github.com/python-pillow/Pillow/issues/835)
        with open(path, 'rb') as f:
            img = Image.open(f)
            return img.convert('RGB')
    
    
    def accimage_loader(path):
        import accimage
        try:
            return accimage.Image(path)
        except IOError:
            # Potentially a decoding problem, fall back to PIL.Image
            return pil_loader(path)
    
    
    def default_loader(path):
        from torchvision import get_image_backend
        if get_image_backend() == 'accimage':
            return accimage_loader(path)
        else:
            return pil_loader(path)
    

    【讨论】:

      猜你喜欢
      • 2018-09-23
      • 2021-11-21
      • 1970-01-01
      • 2020-05-06
      • 2021-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多