Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hcnoh/vanilla-gan-mnist-tensorflow2

TensorFlow2 Implementation for vanilla GAN for generating MNIST
https://github.com/hcnoh/vanilla-gan-mnist-tensorflow2

deep-learning neural-networks tensorflow2 tensorflow2-experiments tensorflow2-models

Last synced: 3 days ago
JSON representation

TensorFlow2 Implementation for vanilla GAN for generating MNIST

Awesome Lists containing this project

README

        

# Generative Adversarial Network (GAN) Implementation for Generating MNIST Images in TensorFlow2

This repository is for the TensorFlow2 implementation for vanilla GAN. This repository provides the training module and Jupyter notebook for testing a generation of the trained models. MNIST dataset was used for this repository.

![](/assets/img/README/README_2019-10-17-19-53-53.png)

## Install Dependencies
1. Install Python 3.5.2.
2. Install TensorFlow ver 2.0.0. If you can use a GPU machine, install the GPU version of TensorFlow, or just install the CPU version of it.
3. Install Python packages(Requirements). You can install them simply by using following bash command.

```bash
$ pip install -r requirements
```

You can use `Virtualenv`, so that the packages for requirements can be managed easily. If your machine have `Virtualenv` package, the following bash command would be useful.

```bash
$ virtualenv gan-mnist-tf2-venv
$ source ./gan-mnist-tf2-venv/bin/activate
$ pip install -r requirements.txt
```

## Training
*Note: MNIST-in-CSV dataset was used for this repository. But you can use MNIST dataset module in TensorFlow. But the following process is for just using MNIST-in-CSV dataset.*

1. **Download the dataset.**

The link for MNIST-in-CSV: [https://www.kaggle.com/oddrationale/mnist-in-csv](https://www.kaggle.com/oddrationale/mnist-in-csv)

2. **Unpack the dataset.**

You can check that there are two csv files named `mnist_train.csv` and `mnist_test.csv`.

3. **Modify the path for dataset in `config.py`.**

4. **Modify the path for directory for saving model checkpoint.**

5. **Execute training process by `train.py`.**

## Checking Results and Testing Generation
The Jupyter notebook for checking results and testing the image generation is provided. Please check `result_plot.ipynb`.

## Results

1. **Ploting the Generator and Discriminator Losses**

![](/assets/img/README/README_2019-10-17-19-55-51.png)

2. **Image Generation Results**

![](/assets/img/README/README_2019-10-17-19-56-38.png)

## References
- GAN: [Generative Adversarial Nets](http://papers.nips.cc/paper/5423-generative-adversarial-nets)
- yunjey's PyTorch Tutorial: [PyTorch Tutorial](https://github.com/yunjey/pytorch-tutorial/blob/master/tutorials/03-advanced/generative_adversarial_network/main.py)