【发布时间】:2021-03-13 07:42:17
【问题描述】:
如何在 Jupyter Notebook (Python3) 中获得可重现的结果?
为主要的随机生成器定义一个种子似乎是不够的,见下面的 MWE:
import numpy as np
import random
import os
random.seed(0)
np.random.seed(0)
os.environ['PYTHONHASHSEED']=str(0)
import networkx
from networkx.algorithms.mis import maximal_independent_set
G = networkx.Graph()
G.add_edges_from([ ('A', 'B'), ('B', 'C'), ('C', 'D'), ('D','E'), ('E','F'), ('A','E'), ('B','E') ])
for i in range(0,10):
print( maximal_independent_set(G, seed=0) )
在循环中的每次运行中给出相同的结果。
但是,当重新启动内核并再次运行单元时,结果会更改为另一个子集。
【问题讨论】:
-
嗨-什么版本的python和什么版本的
networkx? -
python 3.5.3 + networkx 2.4
-
结果可在同一笔记本运行中重现。但是,当我重新启动内核时,第二次运行会发生变化(请参阅更新的问题)
标签: numpy networkx reproducible-research