Spaces:
Build error
Build error
""" | |
@Date: 2021/08/15 | |
@description: | |
""" | |
import random | |
import torch | |
import torch.backends.cudnn as cudnn | |
import numpy as np | |
import os | |
import cv2 | |
def init_env(seed, deterministic=False, loader_work_num=0): | |
# Fix seed | |
# Python & NumPy | |
np.random.seed(seed) | |
random.seed(seed) | |
os.environ['PYTHONHASHSEED'] = str(seed) | |
# PyTorch | |
torch.manual_seed(seed) # 为CPU设置随机种子 | |
if torch.cuda.is_available(): | |
torch.cuda.manual_seed(seed) # 为当前GPU设置随机种子 | |
torch.cuda.manual_seed_all(seed) # 为所有GPU设置随机种子 | |
# cuDNN | |
if deterministic: | |
# 复现 | |
torch.backends.cudnn.benchmark = False | |
torch.backends.cudnn.deterministic = True # 将这个 flag 置为 True 的话,每次返回的卷积算法将是确定的,即默认算法 | |
else: | |
cudnn.benchmark = True # 如果网络的输入数据维度或类型上变化不大,设置true | |
torch.backends.cudnn.deterministic = False | |
# Using multiple threads in Opencv can cause deadlocks | |
if loader_work_num != 0: | |
cv2.setNumThreads(0) | |