pytorch中如何设置随机种子
作者:大虾飞哥哥
这篇文章主要介绍了pytorch中如何设置随机种子,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
pytorch设置随机种子
pytorch设置随机种子 - 保证复现模型所有的训练过程
在使用 PyTorch 时,如果希望通过设置随机数种子,在 GPU 或 CPU 上固定每一次的训练结果,则需要在程序执行的开始处添加以下代码:
def seed_everything(): ''' 设置整个开发环境的seed :param seed: :param device: :return: ''' import os import random import numpy as np random.seed(seed) os.environ['PYTHONHASHSEED'] = str(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) # some cudnn methods can be random even after fixing the seed # unless you tell it to be deterministic torch.backends.cudnn.deterministic = True
pytorch/tensorflow设置随机种子 ,保证结果复现
Pytorch随机种子设置
import numpy as np import random import os import torch def seed_torch(seed=2021): random.seed(seed) os.environ['PYTHONHASHSEED'] = str(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) # if you are using multi-GPU. torch.backends.cudnn.benchmark = False torch.backends.cudnn.deterministic = True torch.backends.cudnn.enabled = False seed_torch()
Tensorflow设置随机种子
第一步 仅导入设置种子和初始化种子值所需的那些库
import tensorflow as tf import os import numpy as np import random SEED = 0
第二步 为所有可能具有随机行为的库初始化种子的函数
def set_seeds(seed=SEED): os.environ['PYTHONHASHSEED'] = str(seed) random.seed(seed) tf.random.set_seed(seed) np.random.seed(seed)
第三步 激活 Tensorflow 确定性功能
def set_global_determinism(seed=SEED): set_seeds(seed=seed) os.environ['TF_DETERMINISTIC_OPS'] = '1' os.environ['TF_CUDNN_DETERMINISTIC'] = '1' tf.config.threading.set_inter_op_parallelism_threads(1) tf.config.threading.set_intra_op_parallelism_threads(1) # Call the above function with seed value set_global_determinism(seed=SEED)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。