Shortcuts

SobolEngine

class torch.quasirandom.SobolEngine(dimension, scramble=False, seed=None)[源代码]

The torch.quasirandom.SobolEngine 是一个用于生成(经过扰动的)Sobol序列的引擎。Sobol序列是低差异拟随机序列的一个例子。

这个用于Sobol序列的引擎实现能够采样高达21201维的序列。它使用了从https://web.maths.unsw.edu.au/~fkuo/sobol/获取的方向数,这些方向数是使用搜索标准D(6)直到21201维得到的。这是作者推荐的选项。

参考文献

  • Art B. Owen. 扰动Sobol和Niederreiter-Xing点. 复杂性杂志, 14(4):466-489, 1998年12月.

  • I. M. 索博尔。点在立方体中的分布及积分的精确评估。 计算数学与数学物理杂志,7:784-802,1967年。

Parameters
  • 维度 (整数) – 要绘制的序列的维度

  • scramble (bool, 可选) – 将其设置为 True 将生成打乱的 Sobol 序列。打乱能够生成更好的 Sobol 序列。默认值:False

  • 种子 (整数可选) – 这是用于打乱的种子。如果指定了种子,随机数生成器的种子将被设置为这个值。否则,它将使用一个随机种子。默认值: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=torch.float32)[源代码]

用于从Sobol序列中绘制一系列n个点的函数。 请注意,样本依赖于之前的样本。结果的大小为(n,dimension)(n, dimension)

Parameters
  • n (整数, 可选) – 要绘制的点的序列长度。 默认值: 1

  • 输出 (张量, 可选) – 输出张量

  • dtype (torch.dtype, 可选) – 返回张量所需的数据类型。 默认值: torch.float32

Return type

张量

draw_base2(m, out=None, dtype=torch.float32)[源代码]

用于从Sobol序列中绘制一系列2**m点的函数。 请注意,样本依赖于之前的样本。结果的大小为(2m,dimension)(2**m, dimension)

Parameters
  • m (整数) – 要绘制的点数的(以2为底的)指数。

  • 输出 (张量, 可选) – 输出张量

  • dtype (torch.dtype, 可选) – 返回张量所需的数据类型。 默认值: torch.float32

Return type

张量

fast_forward(n)[源代码]

函数用于快进 SobolEngine 的状态 n 步。这相当于抽取 n 个样本 而不使用这些样本。

Parameters

n (整数) – 快进的步数。

reset()[源代码]

SobolEngine 重置为初始状态的函数。

优云智算