All Projects → ermongroup → sliced_score_matching

ermongroup / sliced_score_matching

Licence: GPL-3.0 license
Code for reproducing results in the sliced score matching paper (UAI 2019)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to sliced score matching

awesome-ebm
Collecting research materials on EBM/EBL (Energy Based Models, Energy Based Learning)
Stars: ✭ 143 (+110.29%)
Mutual labels:  energy-based-model, score-matching
kscore
Nonparametric Score Estimators, ICML 2020
Stars: ✭ 32 (-52.94%)
Mutual labels:  density-estimation
AverageShiftedHistograms.jl
⚡ Lightning fast density estimation in Julia ⚡
Stars: ✭ 52 (-23.53%)
Mutual labels:  density-estimation
Gumbel-CRF
Implementation of NeurIPS 20 paper: Latent Template Induction with Gumbel-CRFs
Stars: ✭ 51 (-25%)
Mutual labels:  density-estimation
sdp
Deep nonparametric estimation of discrete conditional distributions via smoothed dyadic partitioning
Stars: ✭ 15 (-77.94%)
Mutual labels:  density-estimation
KernelEstimator.jl
The julia package for nonparametric density estimate and regression
Stars: ✭ 25 (-63.24%)
Mutual labels:  density-estimation
score flow
Official code for "Maximum Likelihood Training of Score-Based Diffusion Models", NeurIPS 2021 (spotlight)
Stars: ✭ 49 (-27.94%)
Mutual labels:  score-matching
SDEdit
PyTorch implementation for SDEdit: Image Synthesis and Editing with Stochastic Differential Equations
Stars: ✭ 394 (+479.41%)
Mutual labels:  score-matching
Pylians3
Libraries to analyze numerical simulations (python3)
Stars: ✭ 35 (-48.53%)
Mutual labels:  density-estimation
score sde pytorch
PyTorch implementation for Score-Based Generative Modeling through Stochastic Differential Equations (ICLR 2021, Oral)
Stars: ✭ 755 (+1010.29%)
Mutual labels:  score-matching
normalizing-flows
PyTorch implementation of normalizing flow models
Stars: ✭ 271 (+298.53%)
Mutual labels:  density-estimation
soft-intro-vae-pytorch
[CVPR 2021 Oral] Official PyTorch implementation of Soft-IntroVAE from the paper "Soft-IntroVAE: Analyzing and Improving Introspective Variational Autoencoders"
Stars: ✭ 170 (+150%)
Mutual labels:  density-estimation
Online-Category-Learning
ML algorithm for real-time classification
Stars: ✭ 67 (-1.47%)
Mutual labels:  density-estimation
structured-volume-sampling
A clean room implementation of Structured Volume Sampling by Bowles and Zimmermann in Unity
Stars: ✭ 27 (-60.29%)
Mutual labels:  density-estimation
NanoFlow
PyTorch implementation of the paper "NanoFlow: Scalable Normalizing Flows with Sublinear Parameter Complexity." (NeurIPS 2020)
Stars: ✭ 63 (-7.35%)
Mutual labels:  density-estimation
gradient-boosted-normalizing-flows
We got a stew going!
Stars: ✭ 20 (-70.59%)
Mutual labels:  density-estimation
denoising-diffusion-pytorch
Implementation of Denoising Diffusion Probabilistic Model in Pytorch
Stars: ✭ 2,313 (+3301.47%)
Mutual labels:  score-matching
delfi
Density estimation likelihood-free inference. No longer actively developed see https://github.com/mackelab/sbi instead
Stars: ✭ 66 (-2.94%)
Mutual labels:  density-estimation
WaveGrad2
PyTorch Implementation of Google Brain's WaveGrad 2: Iterative Refinement for Text-to-Speech Synthesis
Stars: ✭ 55 (-19.12%)
Mutual labels:  score-matching
randomforest-density-python
Random Forests for Density Estimation in Python
Stars: ✭ 24 (-64.71%)
Mutual labels:  density-estimation

Sliced Score Matching: A Scalable Approach to Density and Score Estimation

This repo contains a PyTorch implementation for the paper Sliced Score Matching: A Scalable Approach to Density and Score Estimation, UAI 2019. Sliced score matching is a scalable variant of score matching that can be used to train unnormalized statistical models or estimating the score (derivatives of the log-density function) of data.

Dependencies

The following are packages needed for running this repo.

  • PyTorch==1.0.1
  • TensorFlow==1.12.0
  • tqdm
  • tensorboardX
  • Scipy
  • PyYAML

Running the experiments

python main.py --runner [runner name] --config [config file]

Here runner name is one of the following:

  • DKEFRunner. This corresponds to experiments on deep kernel exponential families.
  • NICERunner. This corresponds to the sanity check experiment of training a NICE model.
  • VAERunner. Experiments on VAEs.
  • WAERunner. Experiments on Wasserstein Auto-Encoders (WAEs).

and config file is the directory of some YAML file in configs/.

For example, if you want to train an implicit VAE of latent size 8 on MNIST with Sliced Score Matching, just run

python main.py --runner VAERunner --config vae/mnist_ssm_8.yml

References

If you find the idea or code useful for your research, please consider citing our paper:

@inproceedings{song2019sliced,
  author    = {Yang Song and
               Sahaj Garg and
               Jiaxin Shi and
               Stefano Ermon},
  title     = {Sliced Score Matching: {A} Scalable Approach to Density and Score
               Estimation},
  booktitle = {Proceedings of the Thirty-Fifth Conference on Uncertainty in Artificial
               Intelligence, {UAI} 2019, Tel Aviv, Israel, July 22-25, 2019},
  pages     = {204},
  year      = {2019},
  url       = {http://auai.org/uai2019/proceedings/papers/204.pdf},
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].