# from pytorch lightning | |
import random | |
import numpy as np | |
import torch | |
max_seed_value = np.iinfo(np.uint32).max | |
min_seed_value = np.iinfo(np.uint32).min | |
def seed_everything(seed=None): | |
seed = int(seed) | |
if not (min_seed_value <= seed <= max_seed_value): | |
raise ValueError(f"{seed} is not in bounds, numpy accepts from {min_seed_value} to {max_seed_value}") | |
print(f"seed set to {seed}") | |
random.seed(seed) | |
np.random.seed(seed) | |
torch.manual_seed(seed) | |
torch.cuda.manual_seed_all(seed) | |
return seed | |