""" The code is base on https://github.com/Pointcept/Pointcept """ 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)