""" Environment Utils Author: Xiaoyang Wu (xiaoyang.wu.cs@gmail.com) Please cite our work if the code is helpful to you. """ import os import random import numpy as np import torch import torch.backends.cudnn as cudnn from datetime import datetime def get_random_seed(): seed = ( os.getpid() + int(datetime.now().strftime("%S%f")) + int.from_bytes(os.urandom(2), "big") ) return seed def set_seed(seed=None): if seed is None: seed = get_random_seed() random.seed(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) cudnn.benchmark = False cudnn.deterministic = True os.environ["PYTHONHASHSEED"] = str(seed)