如何添加随机种子保证代码每次复现的一致性?
-
在main()程序中首先设定随机种子:
def set_seed(seed=42): os.environ['PYTHONHASHSEED'] = str(seed) random.seed(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.backends.cudnn.deterministic = True def main(): # 设定随机种子 set_seed(42) # 设定随机种子
-
如果运行还是出现不一致,此时,请设置pycharm中的环境变量:
PYTHONHASHSEED=42
-
如果还是不行,设置系统中的用户环境变量:
- windows: 右击计算机(我的电脑)-》选择属性-》在弹出的面板中选择高级系统设置-》选择环境变量-添加PYTHONHASHSEED=42
- linux: vim /etc/profile 或者 .bash_profile 然后添加PYTHONHASHSEED=42
- 遇到某些程序可能存在多线程的情况,还需要设置为单线程:
from gensim.models import Word2Vec # workers=1 设置为单线程 w2v = Word2Vec(sentences, size=emb_dim, min_count=1, seed=seed, workers=1)