A Pytorch Implementation of PixelCNN++.
Main work taken from the official implementation
Pre-trained models are available here
I kept the code structure to facilitate comparison with the official code.
The code achieves 2.95 BPD on test set, compared to 2.92 BPD on the official tensorflow implementation.
python main.py
python blur_train.py
ood_detect.py
: train on CIFAR10, test on CIFAR10 and SVHN. Plot the histgram and output mean BPDs.
blur_detect.py
: train on CIFAR10, test on CIFAR10 and blurred CIFAR10, the generated histogram shows that blurred CIFAR10 has higher dentisty then original CIFAR10.
- No data dependant weight initialization
- No exponential moving average of past models for test set evalutation
This repository is no longer maintained. Feel free to file an issue if need be, however response may be slow.
Epoch | BPD | SVHN_BPD | AUROC |
---|---|---|---|
319 | 2.9418 | 2.0881 | 0.1493 |
489 | 2.9409 | 2.0940 | 0.1518 |
589 | 2.9361 | 2.0942 | 0.1535 |
789 | 2.9295 | 2.0969 | 0.1570 |
889 | 2.9292 | 2.0912 | 0.1558 |
python3 langevin_dynamics.py -c 3 -r 3 -n 0.001 -ss 1e-3