pytorch以及tensorflow设置随机数种子seed


首先设置任意种子:

 SEED=666

 

对于pytorch

torch.manual_seed(SEED)
torch.cuda.manual_seed_all(SEED)
np.random.seed(SEED)
random.seed(SEED)
torch.backends.cudnn.deterministic = True

 

tensorflow在使用gpu时由于cudnn中分配GPU多线程的随机问题,复现结果需要NVIDIA官方的一个tensorflow gpu库,支持tf版本1.14-2.x(参考 https://github.com/NVIDIA/framework-determinism

先shell安装库:

pip install tensorflow-determinism

对于tensorflow 1.14 或 1.15:

from tfdeterminism import patch
patch()
os.environ['PYTHONHASHSEED']=str(SEED)
random.seed(SEED)
np.random.seed(SEED)
tf.set_random_seed(SEED)

对于tensorflow 2.0:

from tfdeterminism import patch
patch()
os.environ['PYTHONHASHSEED']=str(SEED)
random.seed(SEED)
np.random.seed(SEED)
tf.random.set_seed(SEED)

对于tensorflow 2.4:

os.environ['TF_DETERMINISTIC_OPS'] = '1'
os.environ['PYTHONHASHSEED']=str(SEED)
random.seed(SEED)
np.random.seed(SEED)
tf.random.set_seed(SEED)

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM