https://github.com/sandiamlminiapps/minigan
A GAN Proxy App
https://github.com/sandiamlminiapps/minigan
mini-apps snl-mini-apps
Last synced: 4 months ago
JSON representation
A GAN Proxy App
- Host: GitHub
- URL: https://github.com/sandiamlminiapps/minigan
- Owner: SandiaMLMiniApps
- License: other
- Created: 2020-02-21T17:29:06.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-09-14T23:15:10.000Z (almost 6 years ago)
- Last Synced: 2025-12-07T06:53:41.466Z (7 months ago)
- Topics: mini-apps, snl-mini-apps
- Language: Python
- Homepage:
- Size: 22.5 KB
- Stars: 2
- Watchers: 1
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# miniGAN
miniGAN is a generative adversarial network code developed as part of the
Exascale Computing Project's (ECP) [ExaLearn](https://www.exascaleproject.org/project/exalearn-co-design-center-for-exascale-machine-learning-technologies/)
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)
2. Generate bird dataset
+ Move to ${minigan_dir}/data
+ Run `python generate_random_images.py --help` for running options
3. Run `python3 minigan_driver.py --help` for running options
+ Default dataset is "random". Switch to "--dataset bird" to use generated dataset.
4. 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 /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](https://github.com/SandiaMLMiniApps/miniGAN/blob/devel/LICENSE)
[](https://opensource.org/licenses/BSD-3-Clause)
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.