Skip to content

SandiaMLMiniApps/miniGAN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

miniGAN

miniGAN is a generative adversarial network code developed as part of the Exascale Computing Project's (ECP) ExaLearn project at Sandia National Laboratories.

miniGAN v. 1.0.0

For questions, contact J. Austin Ellis (johelli@sandia.gov) or Siva Rajamanickam (srajama@sandia.gov).


Description:

miniGAN is a proxy application for generative adversarial networks.

The objective of the miniGAN miniapp is to model performance for training generator and discriminator networks. The GAN's generator and discriminator generate plausible 2D/3D maps and identify fake maps, respectively. Related applications exist in cosmology (CosmoGAN, ExaGAN) and wind energy (ExaWind).

Authors: J. Austin Ellis (johelli@sandia.gov) and Siva Rajamanickam (srajama@sandia.gov)


Benchmarks:

Coming soon.


To Install:

Model/Package Combos

Pytorch Tested

  • python/3.5.2
  • pytorch/1.3.1
  • horovod/0.18.2

Install

  1. Enter desired pytorch directory and prepare python env
  • Run ./setup_python_env.sh
  • Run source ./minigan_torch_env/bin/activate (for pytorch)
  • (Run deactivate to exit python env)
  1. Generate bird dataset
  • Move to ${minigan_dir}/data
  • Run python generate_random_images.py --help for running options
  1. Run python3 minigan_driver.py --help for running options
  • Default dataset is "random". Switch to "--dataset bird" to use generated dataset.
  1. Run!

OLCF Summit instructions

  1. Do not run setup_python_env.sh, instead run module load ibm-wml-ce/1.7.0-1 to load IBM's Watson ML Community Edition.
    • This should contain PyTorch, Horovod, Matplotlib
    • Have not been successful with Summit's standalone pip / anaconda
  2. Obtain an interactive session using
    • bsub --nnodes 1 -Is -W 1:00 -P <ProjID> /bin/bash
  3. Run using
    • ddlrun python3 minigan_driver.py --dataset bird

Experimental!

Make use of kokkos-kernels layers/operations

  1. In development

Please report bugs or feature requests to: https://github.com/SandiaMLMiniApps/miniGAN/issues

License

miniGAN is licensed under standard 3-clause BSD terms of use. For specifics, please refer to the LICENSE file contained in the repository or distribution. Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software.