Newbie here.
I have a dataset of images that I want to train a model on. I want to train first on the “base” images and then applying augmentations to the images in a GRADUAL way (more and more aggressive) and keep training.
So, I use:
base_transform = transforms.Compose([
transforms.Resize((224,224)), # resize to 224x224
transforms.ToTensor()
])
base_data = datasets.ImageFolder(os.path.join(DATASET_PATH, 'train'), transform=base_transform)
base_loader = DataLoader(base_data, batch_size=len(train_data), shuffle=True)
#This part takes 2.5 min, but should be done only ONCE
X_train_base,y_train_base = next(iter(base_loader)) #X_train_base and y_train_base are tensors on the CPU
#Push to the GPU
X_train_base = X_train_base.to(device)
y_train_base = y_train_base.to(device)
to create the base variables (and they are now tensors on the GPU). No problem here.
Now, I want to create the augmentation transformation:
aug_transform = transforms.Compose([
transforms.RandomHorizontalFlip(), # reverse 50% of images
transforms.RandomAffine(degrees = (0,45), translate=(0.3,0.3), scale=(0.8,1.2), shear=None, resample=False, fillcolor=0),
transforms.ColorJitter(brightness=0.3, contrast=0.3, saturation=0.3, hue=0.3),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
How do I now apply it to my base variables? I could only figure out how to apply them to images files on the disk.