Skip to content

TensorFlow implementation of Auto-Encoding Variational Bayes.

Notifications You must be signed in to change notification settings

DongjunLee/vae-tensorflow

Repository files navigation

Variational Autoencoder hb-research

TensorFlow implementation of Auto-Encoding Variational Bayes.

images

Requirements

Project Structure

init Project by hb-base

.
├── config                  # Config files (.yml, .json) using with hb-config
├── data                    # dataset path
├── variational_autoencoder     # VAE architecture graphs (from input to logits)
    └── __init__.py             # Graph logic
├── data_loader.py          # download data -> generate_batch (using Dataset)
├── main.py                 # define experiment_fn
└── model.py                # define EstimatorSpec

Reference : hb-config, Dataset, experiments_fn, EstimatorSpec

Config

Can control all Experimental environment.

example: mnist.yml

model:
  batch_size: 32
  z_dim: 20
  n_output: 784

  encoder_h1: 512
  encoder_h2: 256
  encoder_h3: 128

  decoder_h1: 128
  decoder_h2: 256
  decoder_h3: 512

train:
  learning_rate: 0.00001
  optimizer: 'Adam'                # Adagrad, Adam, Ftrl, Momentum, RMSProp, SGD

  train_steps: 200000
  model_dir: 'logs/mnist'

  save_checkpoints_steps: 1000
  check_hook_n_iter: 1000
  min_eval_frequency: 10

  print_verbose: True
  debug: False

slack:
  webhook_url: ""                   # after training notify you using slack-webhook
  • debug mode : using tfdbg

Usage

Install requirements.

pip install -r requirements.txt

Then, start training model

python main.py --config mnist

After training, generate image from latent vector.

python generate.py --config mnist --batch_size 100

Experiments modes

✅ : Working
◽ : Not tested yet.

  • evaluate : Evaluate on the evaluation data.
  • extend_train_hooks : Extends the hooks for training.
  • reset_export_strategies : Resets the export strategies with the new_export_strategies.
  • run_std_server : Starts a TensorFlow server and joins the serving thread.
  • test : Tests training, evaluating and exporting the estimator for a single step.
  • train : Fit the estimator using the training data.
  • train_and_evaluate : Interleaves training and evaluation.

Tensorboar

tensorboard --logdir logs

images

Result

  • Generate Mnist image (Config: mnist.yml)

images

Reference

Author

Dongjun Lee (humanbrain.djlee@gmail.com)

Releases

No releases published

Packages

No packages published

Languages