How to Set Seed When Using Pytorch Lightning?

How to Set Seed When Using Pytorch Lightning?

I have a training code using pytorch lightning. To get the same results in each run, I set the seeds like this:

if __name__ == '__main__':
    pl.seed_everything(1234)
    random.seed(1234)
    np.random.seed(1234)
    torch.manual_seed(1234)

but I still get different prediction results. What should I do to make sure the output of the model are always the same for all runs?

1 Answer

Try using the function seed_everything from lightning.pytorch and also specify deterministic=True when initializing pl.Trainer.

from lightning.pytorch import seed_everything
import lightning.pytorch as pl

seed_everything(42, workers=True)

trainer = pl.Trainer(limit_train_batches=100, max_epochs=1, deterministic=True)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Elena Rostova
Author

Elena Rostova

Elena Rostova holds a Master's degree in Public Health Journalism. She covers groundbreaking medical research, holistic wellness trends, mental health awareness, and nutritional science.