SobolEngine¶
- class torch.quasirandom.SobolEngine(dimension, scramble=False, seed=None)[source][source]¶
torch.quasirandom.SobolEngine
是一个用于生成(加扰的)Sobol 序列的引擎。Sobol 序列是低偏差拟随机序列的一个示例。此 Sobol 序列生成引擎的实现能够采样维度最高达 21201 的序列。它使用来自 https://web.maths.unsw.edu.au/~fkuo/sobol/ 的方向数,这些方向数是使用搜索准则 D(6) 获取的,维度最高达 21201。这是作者推荐的选择。
参考文献
Art B. Owen. Scrambling Sobol and Niederreiter-Xing points. Journal of Complexity, 14(4):466-489, December 1998.
I. M. Sobol. The distribution of points in a cube and the accurate evaluation of integrals. Zh. Vychisl. Mat. i Mat. Phys., 7:784-802, 1967.
- 参数
dimension (Int) – 要绘制序列的维度
scramble (bool, optional) – 将此设置为
True
将生成加扰的 Sobol 序列。加扰能够生成更好的 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)[source][source]¶
从 Sobol 序列中绘制
n
个点组成的序列的函数。请注意,样本依赖于先前的样本。结果的大小为 。- 参数
n (Int, optional) – 要绘制的点序列的长度。默认值:1
out (Tensor, optional) – 输出张量
dtype (
torch.dtype
, optional) – 返回张量所需的数据类型。默认值:None
- 返回类型
- draw_base2(m, out=None, dtype=None)[source][source]¶
从 Sobol 序列中绘制
2**m
个点组成的序列的函数。请注意,样本依赖于先前的样本。结果的大小为 。- 参数
m (Int) – 要绘制点数的 (以 2 为底的) 指数。
out (Tensor, optional) – 输出张量
dtype (
torch.dtype
, optional) – 返回张量所需的数据类型。默认值:None
- 返回类型