20210408
在另外一篇文章中说明了在使用深度学习库的时候,实验结果的可复现的属性,《深度学习实验结果可复现所需设置 - 随机数等内容设置》,文中提到,如果是用GPU加速的话,那么很可能导致实验无法复现。那么就只能使用CPU。好在手里服务器比较多,机器性能也还不错。
那么多台机器设置了随机性内容之后,输出结果是否也是一样的呢?!
其实实验之前我也大概知道结果,一般来说应该是一样的,这取决于随机数生成原理。但是还是通过实验来查看结果。代码很简单
#! /bin/pyton3 import os os.environ['PYTHONHASHSEED'] = '0' print(hash("keras")) import random random.seed(10) for i in range(10): print(f"{random.randint(1,10)}")
这里要说明的是,通过python 3.6.8
进行实验,但是上述结果中,通过设置python哈希种子的方法并不生效,而通过环境变量的方法将这部分传入是可以的。
PYTHONHASHSEED=0 python3 test.py
在两台不同的机器上执行上述命令,得到的结果是一样的。