就像R中一样,我想为整个脚本/会话全局设置一个随机种子,而不是每次执行函数或运行模型时都必须调用随机种子函数。我知道sci-kit learning使用numpy RNG,但是也找不到全局设置它的方法。
我在这里阅读了有关该主题的几篇文章,例如: Differences between numpy.random and random.random in Python
它解释了两个RNG类之间的区别,但没有说明如何全局设置它。
除了每次我希望输出都相同时都调用随机种子外,没有其他方法吗?
## Random Library
import random
##### Random seed given
random.seed(42)
print(random.random()) #will generate a random number
##### No seed given
print(random.random()) #will generate a random number
##### Random seed given
random.seed(42)
print(random.random()) #will generate a random number
#############################
## Numpy Library
import numpy as np
##### Random seed given
np.random.seed(42)
print(np.random.random())
##### No seed given
print(np.random.random())
##### Same seed given
np.random.seed(42)
print(np.random.random())
答案 0 :(得分:0)
您的问题看起来与随机数生成器的整体思想相反(在获取确定性结果的情况下有效)。通常,您希望为随机数生成器植入一些值,该值将更改每次执行(或设置不同的数字,例如设置一些程序的Cookie否)。例如,当前时间是一个经常使用的种子。之所以不会自动发生,是因为您可以根据需要提供特定的种子来获得确定的序列。
回到您的问题,如果您想拥有全局种子并想使用该种子生成随机数。然后,您可以具有将所有内容结合在一起并随时调用的功能。
def same_seed_random()
np.random.seed(42)
print(np.random.random())
我建议您在随机种子@ https://pynative.com/python-random-seed/
上检查更多内容