以下是使用多个核心打印随机值的代码:
import multiprocessing
import numpy as np
import random
def print_map(_):
print(np.random.rand(1))
# print (random.uniform(0, 1))
num_data = 8
cores = 8
pool = multiprocessing.Pool(processes=cores)
print_random = pool.map(print_map, np.arange(num_data))
random.uniform可以产生不同的随机值。但是numpy.random.rand产生的一些值总是相同的。
例如,numpy模块产生:
[ 0.13633318]
[ 0.13633318]
[ 0.13633318]
[ 0.21356165]
[ 0.13633318]
[ 0.13633318]
[ 0.13633318]
[ 0.13633318]
随机模块产生:
0.608248187123
0.624808314139
0.578712513812
0.184301478758
0.297702915307
0.886168638762
0.236475271032
0.302152315241
有人有这个问题吗?我真的想知道为什么会这样。