We study a non-equilbrium importance sampling (NEIS) method based on ODE flows
This Julia package NEIS provides implementation of potentials, parameterization of flows, functions to estimate normalizing constants via NEIS, as well as the training scheme to find optimized flow. See documentation (coming soon) for more details.
This package includes:
- README.md: this file.
- src: contains all source codes.
- eg_train: training examples.
- eg_generator: examples to validate that NEIS can be used as a generative model.
- tests: codes for unit testing.
- Project.toml: package dependency.
All dependent packages are listed in Project.toml and you may install all via
using Pkg
Pkg.activate("./")
Pkg.instantiate()
- We assumed that you have matplotlib and python3 installed in your system already.
- Though not necessary, it would be nice if unbuffer and tee are available (in Linux system), if you want to run some bash script files (see below).
Assuming that you are currently in the main folder of this package:
cd tests; sh test.sh
cd eg_train; sh runall.sh
This bash script automatically allocates 75% available CPU threads; you may want to change configurations before running this script. It took around 12 hours to run on a pc (i7-12700H, 15 threads are being used at maximum) to produce everything (both training and comparison with AIS). It will also automatically creates two sub-folders "assets" and "data" to store images and data files.
cd eg_generator; sh runall.sh
These examples are simple 1D or 2D cases to validate that NEIS can be used as a generative model; see manuscript for details.
More detailed explanation will be included in the folder "docs" (coming later).