Wur*_*tor 5 python random global global-variables random-seed
就像在 R 中一样,我想为整个脚本/会话全局设置一个随机种子,而不是每次执行函数或运行模型时都必须调用随机种子函数。我知道 sci-kit learn 使用 numpy RNG,但也找不到全局设置它的方法。
我在这里阅读了几篇关于这个主题的文章,比如这个: Python 中 numpy.random 和 random.random 之间的差异
它解释了两个 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())
Run Code Online (Sandbox Code Playgroud)
小智 -2
您的问题看起来与随机数生成器的整个想法相反(在获得确定性结果的情况下有效)。通常,您希望为随机数生成器添加一些会改变每次执行的值(或不同的数字,例如设置一些cookie no)一个会话)的程序。例如,当前时间是常用的种子。这不会自动发生的原因是,如果您愿意,您可以提供特定的种子来获得确定性序列。
回到你的问题,如果你想拥有全局种子并想用该种子生成随机数。然后你就可以有一个功能来组合这两个东西并在你需要的时候调用。
def same_seed_random()
np.random.seed(42)
print(np.random.random())
Run Code Online (Sandbox Code Playgroud)
我鼓励您检查有关随机种子的更多信息@ https://pynative.com/python-random-seed/
| 归档时间: |
|
| 查看次数: |
7355 次 |
| 最近记录: |