meetps / tf-3dgan

Tensorflow implementation of 3D Generative Adversarial Network.

Home Page:https://meetshah.dev/gan/deep-learning/tensorflow/visdom/2017/04/01/3d-generative-adverserial-networks-for-volume-classification-and-generation.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tf-3dgan

license arXiv Tag

Tensorflow implementation of 3D Generative Adversarial Network.

This is a tensorflow implementation of the paper "Learning a Probabilistic Latent Space of Object Shapes via 3D Generative-Adversarial Modeling"

Blog Post with interactive volume plots

Requirements

  • tensorflow>=1.0
  • visdom>=1.0.1 (for mesh visualization)
  • scipy
  • scikit-image
  • stl (optional)

One-line installation

pip install scipy scikit-image stl visdom

Data

  • Download the training data from the 3D Shapenet website
  • Extract the zip and modify the path appropriately in dataIO.py

Usage

Launch visdom by running

python -m visdom.server

To train the model (visdom will show generated chairs after every 200 minibatches)

python 3dgan_mit_biasfree.py 0 <path_to_model_checkpoint>

To generate chairs

python 3dgan_mit_biasfree.py 1 <path_to_trained_model>

Some sample generated chairs

Source code files

File Description
3dgan_mit_biasfree.py 3dgan as mentioned in the paper, with same hyperparams.
3dgan.py baseline 3dgan with fully connected layer at end of discriminator.
3dgan_mit.py 3dgan as mentioned in the paper with bias in convolutional layers.
3dgan_autoencoder.py 3dgan with support for autoencoder based pre-training.
3dgan_feature_matching.py 3dgan with additional loss of feature mathcing of last layers.
dataIO.py data input output and plotting utilities.
utils.py tensorflow utils like leaky_relu and batch_norm layer.

Todo

  • Host the trained models
  • Add argparser based interface
  • Add threaded dataloader
  • Release the pytorch and keras versions of the GAN.
  • Train for longer number of epochs to improve quality of generated chairs.

Contributors

  • @meetshah1995
  • @khushhallchandra