Это фрагмент кода для загрузки изображений в виде набора данных из учебного пособия по передаче Pytorch :
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'
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']}
И это один из примеров в наборе данных:
image_datasets['val'][0]:
(tensor([[[ 2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],
[ 2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],
[ 2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],
...,
[ 2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],
[ 2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],
[ 2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489]],
[[ 2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],
[ 2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],
[ 2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],
...,
[ 2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],
[ 2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],
[ 2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286]],
[[ 2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],
[ 2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],
[ 2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],
...,
[ 2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],
[ 2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],
[ 2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400]]]), 0)
Существует ли какой-либо метод (лучшие практики) для изменения данных примера в наборе данных, например, изменить метку 0 на метку 1. Не работает следующее:
image_datasets['val'][0] = (image_datasets['val'][0][0], 1)