np.random.seed(seed)
random.seed(seed)
os.environ['PYTHONHASHSEED'] = str(seed)
用于设置随机种子,以确保代码执行时的随机过程具有可重复性。随机种子(seed)是随机数生成器的起点,设置相同的种子可以确保每次运行程序时生成相同的随机数序列。这对于实验的可重复性、调试和结果的一致性非常重要。
np.random.seed(seed)
- 功能:设置 NumPy 的随机数生成器的种子。
- 用途:确保 NumPy 的随机数生成在每次运行时都具有确定性。这意味着如果你在程序中使用 NumPy 生成随机数(例如创建随机数组或进行随机抽样),每次运行程序时都会生成相同的随机数。
random.seed(seed)
- 功能:设置 Python 内置的随机数生成器的种子。
- 用途:确保 Python 内置的
random
模块生成的随机数具有确定性。例如,如果你使用random
模块来生成随机整数、选择随机元素或打乱列表,每次运行程序时这些操作都会产生相同的结果。
os.environ['PYTHONHASHSEED'] = str(seed)
- 功能:设置环境变量
PYTHONHASHSEED
。 - 用途:确保 Python 的哈希种子具有确定性。Python 3.3 之后,为了防止哈希冲突攻击,Python 对字符串哈希计算使用了随机化。通过设置
PYTHONHASHSEED
环境变量,可以使哈希种子固定,从而确保字典和集合等使用哈希的结构在不同运行之间保持顺序一致。这对需要一致性哈希行为的场景(例如分布式系统或某些测试场景)很重要。
这些代码片段确保程序中各部分使用的随机数生成器和哈希种子具有确定性,从而实现程序运行结果的可重复性。