tf-3dgan
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