Skip to content

Workflow overview

The typical workflow when using the package is as follows: 2. Sample parameters (from the prior or proposal distribution) to form training/validation/test parameter sets.

  • Parameters are typically stored as   matrices, where is the dimension of and is the number of parameter vectors in the given parameter set, though any batchable object is supported.
  1. Simulate data from the model conditional on these parameters, to form training/validation/test data sets.
  • Simulated data sets are stored as batches in a format amenable to the chosen neural-network architecture (see Step 3).
  1. Construct a neural network that maps data sets to a   matrix of summary statistics for , where is user-specified.
  • The architecture class (e.g., MLP, CNN, GNN, DeepSet) should reflect the structure of the data (e.g., unstructured, grid, graph, exchangeable).

  • Any Flux.jl or Lux.jl model can be used.

  • User-defined summary statistics can also be incorporated, either alongside the learned summaries or as the sole input to the estimator (see here).

  1. Initialise a neural estimator by wrapping the neural network in the type corresponding to the intended inferential method (PointEstimator, PosteriorEstimator, RatioEstimator). These constructors also initialise any additional neural networks required to map the summary statistics from Step 3 to the appropriate output space.

  2. Train the estimator using train and the training set, monitoring performance and convergence using the validation set.

  3. Assess the estimator using assess and the test set.

  4. Use the estimator to make inference from observed data using infer.

For a minimal working example, see Quick start.