In pytorch, if you plan to make your model result be reproduced, you have to make a random seed as follows:
# Seed seed = 123 torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) np.random.seed(seed) random.seed(seed) torch.backends.cudnn.benchmark = False torch.backends.cudnn.deterministic = True os.environ["PYTHONHASHSEED"] = str(seed)
However, is any other simple way?
The answer is yes, we can use pytorch_lightning to implement it.
from pytorch_lightning import seed_everything # set the random seeds. seed_everything(42, workers=True) torch.backends.cudnn.determinstic = True torch.backends.cudnn.benchmark = False
In pytorch_lightning, we can use seed_everything() function to make a random seed for numpy, python and pytorch.
It will make our model can be reproduced. Here is more detail.
If you are using tensorflow, you read this tutorial to make your model can be reproduced.