netket.sampler.MetropolisAdjustedLangevin#
- netket.sampler.MetropolisAdjustedLangevin(hilbert, dt=0.001, chunk_size=None, **kwargs)[source]#
This sampler acts on all particle positions simultaneously and takes a Langevin step [1]:
\[x_{t+dt} = x_t + dt \nabla_x \log p(x) \vert_{x=x_t} + \sqrt{2 dt}\eta,\]where \(\eta\) is normal distributed noise \(\eta \sim \mathcal{N}(0,1)\). This sampler only works for continuous Hilbert spaces.
[1]: https://en.wikipedia.org/wiki/Metropolis-adjusted_Langevin_algorithm
- Parameters:
hilbert – The continuous Hilbert space to sample.
dt – Time step size for the Langevin dynamics (noise with variance 2*dt).
chunk_size – Chunk size to compute the gradients of the log probability.
n_chains – The total number of independent Markov chains across all MPI ranks. Either specify this or n_chains_per_rank.
n_chains_per_rank – Number of independent chains on every MPI rank (default = 16).
sweep_size – Number of sweeps for each step along the chain. Defaults to the number of sites in the Hilbert space. This is equivalent to subsampling the Markov chain.
reset_chains – If True, resets the chain state when reset is called on every new sampling (default = False).
machine_pow – The power to which the machine should be exponentiated to generate the pdf (default = 2).
dtype – The dtype of the states sampled (default = np.float64).
- Return type: