شما می تونید از 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)