netket.sampler.rules.HamiltonianRuleΒΆ
-
class
netket.sampler.rules.
HamiltonianRule
(operator)ΒΆ Bases:
netket.sampler.MetropolisRule
Rule proposing moves according to the terms in an operator.
In this case, the transition matrix is taken to be:
\[T( \mathbf{s} \rightarrow \mathbf{s}^\prime) = \frac{1}{\mathcal{N}(\mathbf{s})}\theta(|H_{\mathbf{s},\mathbf{s}^\prime}|),\]This rule only works on CPU! If you want to use it on GPU, you must use the numpy variant
netket.sampler.rules.HamiltonianRuleNumpy
together with the numpy metropolis samplernetket.sampler.MetropolisSamplerNumpy
.- Inheritance
- Methods
-
init_state
(sampler, machine, params, key)[source]ΒΆ Initialises the optional internal state of the Metropolis sampler transition rule.
The provided key is unique and does not need to be splitted.
It should return an immutable data structure.
- Parameters
sampler β The Metropolis sampler.
machine β A Flax module with the forward pass of the log-pdf.
params β The PyTree of parameters of the model.
key β A Jax PRNGKey.
- Returns
An optional state.
-
random_state
(sampler, machine, parameters, state, key)ΒΆ Generates a random state compatible with this rule.
By default this calls
netket.hilbert.random.random_state()
.- Parameters
sampler (
MetropolisSampler
) β The Metropolis sampler.machine (
Module
) β A Flax module with the forward pass of the log-pdf.parameters (
Any
) β The PyTree of parameters of the model.state (
SamplerState
) β The current state of the sampler. Should not modify it.key (
Any
) β The PRNGKey to use to generate the random state.
-
replace
(**updates)ΒΆ βReturns a new object replacing the specified fields with new values.
-
reset
(sampler, machine, params, sampler_state)ΒΆ Resets the internal state of the Metropolis Sampler Transition Rule.
- Parameters
sampler (
MetropolisSampler
) β The Metropolis sampler.machine (
Module
) β A Flax module with the forward pass of the log-pdf.params (
Any
) β The PyTree of parameters of the model.sampler_state (
SamplerState
) β The current state of the sampler. Should not modify it.
- Return type
- Returns
A new, resetted, state of the rule. This returns the same type of
sampler_state.rule_state()
and might be None.
-