Я пытаюсь загрузить локальный набор данных с изображениями (всего около 225 изображений), используя следующий код:
# Set the batch size
BATCH_SIZE = 32
# Create data loaders
train_dataloader, test_dataloader, class_names = data_setup.create_dataloaders(
train_dir=train_dir,
test_dir=test_dir,
transform=manual_transforms, # use manually created transforms
batch_size=BATCH_SIZE
)
# Get a batch of images
image_batch, label_batch = next(iter(train_dataloader)) # why it takes so much time? what can
I do about it?
Мой вопрос касается последней строки кода и итерации в train_dataloader, выполнение которой занимает много времени. Почему это так? У меня всего 225 изображений.
Изменить:
Код загрузчика данных можно найти по следующей ссылке.
import os
from torchvision import datasets, transforms
from torch.utils.data import DataLoader
import pdb
NUM_WORKERS = os.cpu_count()
def create_dataloaders(
train_dir: str,
test_dir: str,
transform: transforms.Compose,
batch_size: int,
num_workers: int=NUM_WORKERS
):
# Use ImageFolder to create dataset(s)
train_data = datasets.ImageFolder(train_dir, transform=transform)
test_data = datasets.ImageFolder(test_dir, transform=transform)
# Get class names
class_names = train_data.classes
# Turn images into data loaders
train_dataloader = DataLoader(
train_data,
batch_size=batch_size,
shuffle=True,
num_workers=num_workers,
pin_memory=True,
)
test_dataloader = DataLoader(
test_data,
batch_size=batch_size,
shuffle=False, # don't need to shuffle test data
num_workers=num_workers,
pin_memory=True,
)
return train_dataloader, test_dataloader, class_names
Подробнее здесь: https://stackoverflow.com/questions/782 ... in-pytorch