Я немного смущен об увеличении данных, выполненных в PyTorch. Теперь, насколько я знаю, когда мы выполняем аудит данных, мы сохраняем наш исходный набор данных, а затем добавляем другие его версии (Flipping, Cropping... и т.д.). Но это не похоже на то, что происходит в PyTorch. Насколько я понял из ссылок, когда мы используем data.transforms
в 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])
]),
}
Здесь, для обучения, мы сначала произвольно обрезаем изображение и (224,224)
его размер до формы (224,224)
. Затем мы берем эти (224,224)
изображения и горизонтально переворачиваем их. Поэтому наш набор данных теперь содержит ТОЛЬКО горизонтально перевернутые изображения, поэтому наши исходные изображения теряются в этом случае.
Я прав? Правильно ли это понимание? Если нет, то где мы скажем PyTorch в этом коде выше (взятом из официальной документации), чтобы сохранить исходные изображения и изменить их размер до ожидаемой формы (224,224)
?
Спасибо