A transition rule acting on the local degree of freedom.
This transition acts locally only on one local degree of freedom \(s_i\), and proposes a new state: \(s_1 \dots s^\prime_i \dots s_N\), where \(s^\prime_i \neq s_i\).
The transition probability associated to this sampler can be decomposed into two steps:
1. One of the site indices \(i = 1\dots N\) is chosen with uniform probability. 2. Among all the possible (\(m\)) values that \(s_i\) can take, one of them is chosen with uniform probability.
init_state(sampler, machine, params, key)¶
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 datastructure.
- Return type
An Optional State.
random_state(sampler, machine, parameters, state, key)¶
Generates a random state compatible with this rule.
By default this calls
“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.
Sampler) – The Metropolis sampler
Callable) – The forward evaluation function of the model, accepting PyTrees of parameters and inputs.
Any) – The dict of variables needed to evaluate the model.
SamplerState) – The current state of the sampler. Should not modify it.
- Return type
A new, resetted, state of the rule. This returns the same type of
sampler_state.rule_state()and might be None.
transition(sampler, machine, parameters, state, key, σ)¶