对于字典中的循环,pytorch
For loops in a dictionary, pytorch
大家好,我有一个问题,变量 "image_datasets"
有一个 for 循环 for x in ['train', 'val']
。以前没见过在dict中实现for循环的。
data_transforms = {
'train': transforms.Compose([
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize(mean, std)
]),
'val': transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean, std)
]),
}
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=0)
for x in ['train', 'val']}
dataset_sizes = {x: len(image_datasets[x]) for x in ['train', 'val']}
class_names = image_datasets['train'].classes
它被称为dict comprehension and there's also list comprehensions:
https://book.pythontips.com/en/latest/comprehensions.html
它们的功能基本上与您预期的一样:
Do X with x for x in List
然后将结果用作字典或列表等的输入。
这称为 dictionary comprehension,它正在遍历列表。
代码
dataloaders = {
x: torch.utils.data.DataLoader(
image_datasets[x],
batch_size=4,
shuffle=True,
num_workers=0
)
for x in ['train', 'val']
}
相当于
dataloaders = {
'train': torch.utils.data.DataLoader(
image_datasets['train'],
batch_size=4,
shuffle=True,
num_workers=0
),
'val': torch.utils.data.DataLoader(
image_datasets['val'],
batch_size=4,
shuffle=True,
num_workers=0
)
}
大家好,我有一个问题,变量 "image_datasets"
有一个 for 循环 for x in ['train', 'val']
。以前没见过在dict中实现for循环的。
data_transforms = {
'train': transforms.Compose([
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize(mean, std)
]),
'val': transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean, std)
]),
}
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=0)
for x in ['train', 'val']}
dataset_sizes = {x: len(image_datasets[x]) for x in ['train', 'val']}
class_names = image_datasets['train'].classes
它被称为dict comprehension and there's also list comprehensions: https://book.pythontips.com/en/latest/comprehensions.html
它们的功能基本上与您预期的一样:
Do X with x for x in List
然后将结果用作字典或列表等的输入。
这称为 dictionary comprehension,它正在遍历列表。
代码
dataloaders = {
x: torch.utils.data.DataLoader(
image_datasets[x],
batch_size=4,
shuffle=True,
num_workers=0
)
for x in ['train', 'val']
}
相当于
dataloaders = {
'train': torch.utils.data.DataLoader(
image_datasets['train'],
batch_size=4,
shuffle=True,
num_workers=0
),
'val': torch.utils.data.DataLoader(
image_datasets['val'],
batch_size=4,
shuffle=True,
num_workers=0
)
}