Home

Awesome

NAM: Non-Adversarial Mapping

This repo contains PyTorch code replicating the main ideas presented in:

Examples

Edges2Bags

Alt text<br/> Top: DiscoGAN Middle: NAM: Bottom: Source

Edges2Shoes

Alt text<br/> Top: DiscoGAN Middle: NAM: Bottom: Source

Variation in Outputs:

Alt text<br/> Alt text<br/>

Getting Started

  1. Download Edges2Shoes data:
cd data
sh get_data.py
cd ..
  1. Train DCGAN unconditional generative model for the A domain:
cd code
python train_gen.py
  1. Use NAM to train a mapping from A to B:
python train_nam.py
  1. Evaluate multiple image analogies:
python eval_variation.py $image_id 

Where $image_id is replaced with the ID of the image you wish to map.

Note: DCGAN training can diverge sometimes. Unconditional samples from each epoch are available in "code/unconditional_ims/". If DCGAN training diverged, simply re-run it.

License

This project is CC-BY-NC-licensed.