[Python] I need help understanding code for creating a dataset in an PyTorch tutorial

Discussão em 'Python' iniciado por Stack, Fevereiro 17, 2025.

  1. Stack

    Stack Membro Participativo

    I'm reading through a PyTorch tutorial for transfer learning and I'm having a hard time figuring out exactly what the following block is doing, with regards to generating the dataset:

    # Data augmentation and normalization for training
    # Just normalization for validation
    data_transforms = {
    'train': transforms.Compose([
    transforms.RandomResizedCrop(224),
    transforms.RandomHorizontalFlip(),
    transforms.ToTensor(),
    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ]),
    'val': transforms.Compose([
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor(),
    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ]),
    }

    data_dir = 'data/hymenoptera_data'
    image_datasets = {x: datasets.ImageFolder(os.path.join(data_dir, x),
    data_transforms[x])
    for x in ['train', 'val']}
    dataloaders = {x: torch.utils.data.DataLoader(image_datasets[x], batch_size=4,
    shuffle=True, num_workers=4)
    for x in ['train', 'val']}
    dataset_sizes = {x: len(image_datasets[x]) for x in ['train', 'val']}
    class_names = image_datasets['train'].classes


    Particularly, operations of form similar to (excuse any misuse of terminology - I'm still learning Python) {x: len(image_datasets[x]) for x in ['train', 'val']}.

    It was explained to me before but I've since forgotten and I'm not sure how to phrase the question for a general internet search, so I'm asking here. I know that the code is defining a loop but the syntax is confusing me. Any clarification would be greatly appreciated.

    I tried googling some stuff.

    Continue reading...

Compartilhe esta Página