# Mutual Information Flow Matching
Testing the Use of Flow Matching to Control Mutual Information.

## To install dependencies

Copy the relevant files from the [environments](environments) directory, i.e. [environment.yml](environments/environment.yml) for Conda and pixi.* files for Pixi.

If you use Conda:
```bash
conda env create -f environment.yml
conda activate flow_matching
```
Note: If you are setting this on a computer without CUDA, replace `pytorch-gpu` with `pytorch`.

If you use Pixi:
```bash
pixi init
pixi run download
pixi install
```

## Generating Datasets

```bash
python dataset_generation.py @generation_arguments.txt
```

You can also add individual arguments to update things on the fly (useful for HTCondor)

```bash
python dataset_generation.py @generation_arguments.txt --job_id 0
```

Possible arguments include dataset size, number of correlated images, batch size, covariance matrices, labels wanted, and more. The full list can be found in [generation_arg_parser.py](dataset_generation/generation_arg_parser.py). Examples arguments can be found in the [generation arguments](generation_arguments/) directory.
