netket.models.GCNNΒΆ

class netket.models.GCNN(symmetries=None, product_table=None, irreps=None, point_group=None, mode='auto', shape=None, layers=None, features=None, characters=None, parity=None, **kwargs)[source]ΒΆ

Implements a Group Convolutional Neural Network (G-CNN) that outputs a wavefunction that is invariant over a specified symmetry group.

The G-CNN is described in ` Cohen et. al <http://proceedings.mlr.press/v48/cohenc16.pdf>`_ and applied to quantum many-body problems in ` Roth et. al <https://arxiv.org/pdf/2104.05085.pdf>`_.

The G-CNN alternates convolution operations with pointwise non-linearities. The first layer is symmetrized linear transform given by DenseSymm, while the other layers are G-convolutions given by DenseEquivariant. The hidden layers of the G-CNN are related by the following equation:

\[{\bf f}^{i+1}_h = \Gamma( \sum_h W_{g^{-1} h} {\bf f}^i_h).\]
Parameters
  • symmetries – A specification of the symmetry group. Can be given by a nk.graph.Graph, a nk.utils.PermuationGroup, or an array [n_symm, n_sites] specifying the permutations corresponding to symmetry transformations of the lattice.

  • product_table – Product table describing the algebra of the symmetry group. Only needs to be specified if mode=’fft’ and symmetries is specified as an array.

  • irreps – List of 3D tensors that project onto irreducible representations of the symmetry group. Only needs to be specified if mode=’irreps’ and symmetries is specified as an array.

  • point_group – The point group, from which the space group is built. If symmetries is a graph the default point group is overwritten.

  • mode – string β€œfft, irreps, matrix, auto” specifying whether to use a fast fourier transform over the translation group, a fourier transform using the irreducible representations or by constructing the full kernel matrix.

  • shape – A tuple specifying the dimensions of the translation group.

  • layers – Number of layers (not including sum layer over output).

  • features – Number of features in each layer starting from the input. If a single number is given, all layers will have the same number of features.

  • characters – Array specifying the characters of the desired symmetry representation

  • parity – Optional argument with value +/-1 that specifies the eigenvalue with respect to parity (only use on two level systems).

  • dtype – The dtype of the weights.

  • activation – The nonlinear activation function between hidden layers.

  • output_activation – The nonlinear activation before the output.

  • equal_amplitudes – If True forces all basis states to have equal amplitude by setting Re[psi] = 0.

  • use_bias – If True uses a bias in all layers.

  • precision – Numerical precision of the computation see `jax.lax.Precision`for details.

  • kernel_init – Initializer for the Dense layer matrix.

  • bias_init – Initializer for the hidden bias.