Sobol引擎
- 类torch.quasirandom.SobolEngine(dimension, scramble=False, seed=None)[源代码]
-
The
torch.quasirandom.SobolEngine
是用于生成(打乱的)Sobol序列的引擎。Sobol序列是一种低差异准随机序列。此 Sobol 序列引擎的实现能够采样最大维度为 21201 的序列。它使用从 https://web.maths.unsw.edu.au/~fkuo/sobol/ 获取的方向数字,这些方向数字是通过在维度 21201 内使用搜索标准 D(6) 获得的。这是作者推荐的选择。
参考资料
-
Art B. Owen. Scrambling Sobol和Niederreiter-Xing点。复杂性杂志,14(4):466-489,1998年12月。
-
I. M. Sobol. 立方体内点的分布及积分的精确计算. Zh. Vychisl. Mat. i Mat. Phys., 7:784-802, 1967.
- 参数
-
-
dimension (Int) – 序列的维度
-
scramble (bool, optional) – 设置为
True
将生成打乱的 Sobol 序列,这有助于产生更好的序列。默认值:False
。 -
seed (Int, optional) – 用于扰乱的种子。如果指定了种子值,随机数生成器将使用该种子;否则,它会使用一个随机种子。默认值:
None
-
示例:
>>> soboleng = torch.quasirandom.SobolEngine(dimension=5) >>> soboleng.draw(3) tensor([[0.0000, 0.0000, 0.0000, 0.0000, 0.0000], [0.5000, 0.5000, 0.5000, 0.5000, 0.5000], [0.7500, 0.2500, 0.2500, 0.2500, 0.7500]])
- draw(n=1, out=None, dtype=None)[源代码]
-
用于从Sobol序列中绘制包含
n
个点的序列的函数。需要注意的是,每个样本都依赖于之前的样本。结果的大小为$(n, dimension)$。- 参数
-
-
n (Int, 可选) – 要绘制的点序列的长度。默认值为 1。
-
out (Tensor, 可选) – 指定输出张量
-
dtype (
torch.dtype
, 可选) - 返回的张量的数据类型。默认为None
-
- 返回类型
- draw_base2(m, out=None, dtype=None)[源代码]
-
用于从Sobol序列中绘制
2**m
个点的函数。请注意,每个样本都依赖于之前的样本。结果的大小为$(2**m, dimension)$。- 参数
-
-
m (Int) – 绘制点数的以2为底的指数。
-
out (Tensor, 可选) – 指定输出张量
-
dtype (
torch.dtype
, 可选) - 返回的张量的数据类型。默认为None
-
- 返回类型
- fast_forward(n)[源代码]
-
该函数用于快速将SobolEngine的状态向前推进
n
步。这相当于抽取n
个样本但不使用它们。- 参数
-
n (Int) – 需要快进的步数。
- reset()[源代码]
-
用于将
SobolEngine
重置为初始状态的函数。
-