خطا در dataloader پایتورچ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

خطا در dataloader پایتورچ

0 امتیاز

سلام من از  datasets.ImageFolder به روش زیر استفاده می کنم. عجیبه تصاویرم tif هست exception ریز میشه و میاد بیرون به دنبال روشی هستم که همان تصویر مشکل داره را بیخیال شه به کارش ادامه بده.

        image_datasets =  datasets.ImageFolder(src_path, data_transforms)
        dataloaders =  torch.utils.data.DataLoader(image_datasets, batch_size=self.batch_size, shuffle=False, num_workers=4)

 

dataloader PIL.UnidentifiedImageError: cannot identify image file <_io.BufferedReader

سوال شده تیر 7, 1402  بوسیله ی ققنوس (امتیاز 151)   4 20 29 1 نشانه گذاری شده
ویرایش شده تیر 7, 1402 بوسیله ی ققنوس

1 پاسخ

0 امتیاز

شما می تونید از custom loader استفاده کنید.

import os
from PIL import Image
import torch
from torchvision import datasets, transforms

def custom_loader(path):
    try:
        with open(path, 'rb') as f:
            img = Image.open(f)
            return img.convert('RGB')
    except PIL.UnidentifiedImageError as e:
        print(f"Error: {e}. Skipping image {path}.")
        return None

data_transforms = transforms.Compose([
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406],
                         std=[0.229, 0.224, 0.225])
])

src_path = '/path/to/your/data'

image_datasets = datasets.ImageFolder(src_path, transform=data_transforms, loader=custom_loader)
dataloaders = torch.utils.data.DataLoader(image_datasets, batch_size=32, shuffle=True, num_workers=4)

 

پاسخ داده شده تیر 7, 1402 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
ممنون از توضیحاتتون
...