SobolEngine
-
class torch.quasirandom.SobolEngine(dimension, scramble=False, seed=None)
[source] -
The
torch.quasirandom.SobolEngine
is an engine for generating (scrambled) Sobol sequences. Sobol sequences are an example of low discrepancy quasi-random sequences.This implementation of an engine for Sobol sequences is capable of sampling sequences up to a maximum dimension of 21201. It uses direction numbers from https://web.maths.unsw.edu.au/~fkuo/sobol/ obtained using the search criterion D(6) up to the dimension 21201. This is the recommended choice by the authors.
References
- 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.
- Parameters
-
- dimension (Int) – The dimensionality of the sequence to be drawn
-
scramble (bool, optional) – Setting this to
True
will produce scrambled Sobol sequences. Scrambling is capable of producing better Sobol sequences. Default:False
. -
seed (Int, optional) – This is the seed for the scrambling. The seed of the random number generator is set to this, if specified. Otherwise, it uses a random seed. Default:
None
Examples:
>>> soboleng = torch.quasirandom.SobolEngine(dimension=5) >>> soboleng.draw(3) tensor([[0.5000, 0.5000, 0.5000, 0.5000, 0.5000], [0.7500, 0.2500, 0.7500, 0.2500, 0.7500], [0.2500, 0.7500, 0.2500, 0.7500, 0.2500]])
-
draw(n=1, out=None, dtype=torch.float32)
[source] -
Function to draw a sequence of
n
points from a Sobol sequence. Note that the samples are dependent on the previous samples. The size of the result is .- Parameters
-
- n (Int, optional) – The length of sequence of points to draw. Default: 1
- out (Tensor, optional) – The output tensor
-
dtype (
torch.dtype
, optional) – the desired data type of the returned tensor. Default:torch.float32
-
draw_base2(m, out=None, dtype=torch.float32)
[source] -
Function to draw a sequence of
2**m
points from a Sobol sequence. Note that the samples are dependent on the previous samples. The size of the result is .- Parameters
-
- m (Int) – The (base2) exponent of the number of points to draw.
- out (Tensor, optional) – The output tensor
-
dtype (
torch.dtype
, optional) – the desired data type of the returned tensor. Default:torch.float32
-
fast_forward(n)
[source] -
Function to fast-forward the state of the
SobolEngine
byn
steps. This is equivalent to drawingn
samples without using the samples.- Parameters
-
n (Int) – The number of steps to fast-forward by.
-
reset()
[source] -
Function to reset the
SobolEngine
to base state.
© 2019 Torch Contributors
Licensed under the 3-clause BSD License.
https://pytorch.org/docs/1.8.0/generated/torch.quasirandom.SobolEngine.html