|
""" |
|
Environment Utils |
|
|
|
Author: Xiaoyang Wu ([email protected]) |
|
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) |
|
|