我想用pyCUDA
生成随机数。
为此,我正在使用以下代码,这些代码正在Kaggle虚拟机上运行:
import numpy as np
import time
import pycuda.gpuarray as gpuarray
import pycuda.driver as cuda
import pycuda.autoinit
from pycuda.compiler import SourceModule
N = 10
from pycuda.curandom import XORWOWRandomNumberGenerator
rng = XORWOWRandomNumberGenerator()
d_x = rng.gen_uniform((N,), dtype = np.float32)
我的问题是我该如何为随机数生成器提供种子。
pycuda.curandom.XORWOWRandomNumberGenerator(seed_getter=None, offset=0)
类参数:
seed_getter
–给定一个 整数,将产生int32
个GPUArray的种子。
offset
– 给定种子,进入XORWOW序列的起始索引。
seed_getter
函数的示例是什么?
答案 0 :(得分:2)
curandom
模块具有两个内置函数,用于生成随机种子:
seed_getter_uniform
,它将返回使用单个随机种子初始化的数组长度N,以及seed_getter_unique
,它将返回以N个不同的随机种子初始化的数组。 根据您希望所有内部生成器实例使用相同的种子还是唯一的种子来使用一个或另一个。