# Readme


<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

The library is organized with three main modules:

- **dataset**: Collect the quantum data and their types, as well as the
  tuning parameters to be used further in the pipeline.
- **vae**: Define the Variational Auto-Encoder (VAE) model, as well as a
  Trainer Wrapper that generates a representation of the phase space of
  quantum data.
- **sr**: Symbolic Regression (SR) methods, used to generate compact
  descriptors of the unknown clusters that appear in the learned
  representation.

The library also contains submodules which are/could be used in this
pipeline:

- **nn**: Where some neural network architectures are defined.
- **clutering**: Where a clustering algorithm is implemented, which
  could be used to cluster the learned representation.

The use of these modules throughout the entire pipeline is summarised
below:

<p align="center">

<img width="700" src="VAE4Spins_pipeline_with_modules_github.png">

The `qdisc.vae` module uses the `qdisc.Dataset` and neural networks from
`qdisc.nn` to learn a representation. Then the `qdisc.sr` module uses
the dataset (and, for some approaches, the VAE) to extract analytical
expressions.
