class netket.models.RBMModPhase(dtype=<class 'numpy.float64'>, activation=<function log_cosh>, alpha=1, use_hidden_bias=True, precision=None, kernel_init=<function normal.<locals>.init>, hidden_bias_init=<function normal.<locals>.init>, parent=<flax.linen.module._Sentinel object>, name=None)[source]

Bases: flax.linen.module.Module

A fully connected Restricted Boltzmann Machine (RBM) with real-valued parameters.

In this case, two RBMs are taken to parameterize, respectively, the real and imaginary part of the log-wave-function, as introduced in Torlai et al., Nature Physics 14, 447–450(2018).

This type of RBM has spin 1/2 hidden units and is defined by:

\[\Psi(s_1,\dots s_N) = e^{\sum_i^N a_i s_i} \times \Pi_{j=1}^M \cosh \left(\sum_i^N W_{ij} s_i + b_j \right)\]

for arbitrary local quantum numbers \(s_i\).

alpha: Union[float, int] = 1

feature density. Number of features equal to alpha * input.shape[-1]

precision: Any = None

numerical precision of the computation see `jax.lax.Precision`for details.

use_hidden_bias: bool = True

if True uses a bias in the dense layer (hidden layer bias).


Returns the variables in this module.

Return type

Mapping[str, Mapping[str, Any]]

kernel_init(shape, dtype=<class 'jax._src.numpy.lax_numpy.float32'>)