Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ermongroup/mintnet
MintNet: Building Invertible Neural Networks with Masked Convolutions
https://github.com/ermongroup/mintnet
density-estimation flow-models invertible-neural-networks masked-convolutions neurips2019
Last synced: 3 months ago
JSON representation
MintNet: Building Invertible Neural Networks with Masked Convolutions
- Host: GitHub
- URL: https://github.com/ermongroup/mintnet
- Owner: ermongroup
- Created: 2019-10-28T02:59:50.000Z (about 5 years ago)
- Default Branch: release
- Last Pushed: 2020-12-16T18:38:34.000Z (almost 4 years ago)
- Last Synced: 2024-07-12T17:58:27.598Z (4 months ago)
- Topics: density-estimation, flow-models, invertible-neural-networks, masked-convolutions, neurips2019
- Language: Python
- Homepage:
- Size: 4.35 MB
- Stars: 38
- Watchers: 6
- Forks: 8
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-normalizing-flows - [Code
README
# MintNet: Building Invertible Neural Networks with Masked Convolutions
This repository contains the PyTorch implementation of our paper:
[__MintNet: Building Invertible Neural Networks with Masked Convolutions__](https://arxiv.org/abs/1907.07945), _NeurIPS 2019_ .
We propose a new way of constructing invertible neural networks by combining simple building blocks with a novel set of composition rules.
This leads to a rich set of invertible architectures, including those similar to
ResNets. Inversion is achieved with a locally convergent iterative procedure
that is parallelizable and very fast in practice. Additionally,
the determinant of the Jacobian can be computed analytically and efficiently,
enabling their generative use as flow models.
## Dependencies
The following are packages needed for running this repo.
- PyTorch==1.1.0
- tqdm
- tensorboardX
- Scipy
- PyYAML
- Numba## Running the experiments
```bash
python main.py --runner [runner name] --config [config file] --doc [experiment folder name]
```Here `runner name` is one of the following:
- `DensityEstimationRunner`. Experiments on MintNet density estimation.
- `ClassificationRunner`. Experiments on MintNet classification.`config file` is the directory of some YAML file in `configs/`, and `experiment folder name` is the folder names in `run/`.
For example, if you want to train MintNet density estimation model on MNIST, just run
```bash
python main.py --runner DensityEstimationRunner --config mnist_density_config.yml
```## Checkpoints
Checkpoints for both density estimation and classification can be downloaded from [https://drive.google.com/file/d/12kGMMg0ivJI5y32hRouhZuddr9cJxfiR/view?usp=sharing](https://drive.google.com/file/d/12kGMMg0ivJI5y32hRouhZuddr9cJxfiR/view?usp=sharing)
Unzip it to `/run`.