Reproducible CNN model with data transforms?

Hi community,

I tried to create my reproducible CNN model, but it seems not to happen on my end. I set the seeds with the following train_loader. Each re-train (train/valid/test loss and acc for each epoch) always looks slightly different. May I know why?

seed = 1
os.environ["PL_GLOBAL_SEED"] = str(seed)
random.seed(seed)
np.random.seed(seed)
torch.manual_seed(seed)
torch.cuda.manual_seed_all(seed)

data_transform = transforms.Compose([
    transforms.Resize((32, 32)),
    transforms.RandomHorizontalFlip(),
    transforms.RandomCrop((32, 32), padding = 4),
    transforms.RandomRotation(10),
    transforms.ColorJitter(),
    transforms.RandomAffine(10),
    transforms.ToTensor(),
    transforms.Normalize((0.4941, 0.4851, 0.4504), (0.2467, 0.2430, 0.2617)),
])

data = datasets.CIFAR10('data', train=True, download=True, transform=data_transform)

train_loader  = DataLoader(data,  batch_size=batch_size, num_workers=num_workers, shuffle=True)

Find a good answer from another post: Reproducibility with all the bells and whistles

1 Like