def seed_everything(seed):
'''固定各类随机种子,方便消融实验.
Args:
seed : int
'''
# 固定 scipy 的随机种子
random.seed(seed) # 固定 random 库的随机种子
os.environ['PYTHONHASHSEED'] = str(seed) # 固定 python hash 的随机性(并不一定有效)
np.random.seed(seed) # 固定 numpy 的随机种子
torch.manual_seed(seed) # 固定 torch cpu 计算的随机种子
torch.cuda.manual_seed(seed) # 固定 cuda 计算的随机种子
torch.backends.cudnn.deterministic = True # 是否将卷积算子的计算实现固定。torch 的底层有不同的库来实现卷积算子
torch.backends.cudnn.benchmark = True # 是否开启自动优化,选择最快的卷积计算方法
消融实验代码
最新推荐文章于 2024-09-03 19:25:01 发布