一个关于 Numpy 中随机数生成的问题。
我有一个代码执行以下操作:
import numpy as np
for i in range(very_big_number):
np.random.randn(5)
# other stuff that uses the generated random numbers
因为不幸的是 very_big_number
真的可以是一个非常大的数字,我想把这个循环分成 block ,比如调用 10 次
相同
for i in range(very_big_number/10):
np.random.randn(5)
# other stuff that uses the generated random numbers
然后将所有输出整理在一起。但是,我想确保这种分成 block 的方式保留了我生成的数字的随机性。
我的问题是:阅读 numpy 文档或等效的 this关于 StackOverflow 的问题,我很想认为仅划分循环并在例如上运行子循环就足够了。十个不同的核心同时。但是我想知道这是否正确,或者我是否应该设置一些随机数种子,如果是,如何设置。
最佳答案
分割循环....随机性值得怀疑....
改为并行处理....
如果您知道并行处理,请尝试下面所说的“Joblib”库或任何其他库....
https://pythonhosted.org/joblib/parallel.html
Joblib provides a simple helper class to write parallel for loops using multiprocessing
关于python - Numpy:随机数生成 - 将循环分成 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50415690/