All Projects → minhnhat93 → videoDCGAN

minhnhat93 / videoDCGAN

Licence: other
Implementation of a GAN that generates video using LSTM and ConvNet in Tensorflow

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to videoDCGAN

ganbert
Enhancing the BERT training with Semi-supervised Generative Adversarial Networks
Stars: ✭ 205 (+1364.29%)
Mutual labels:  generative-adversarial-network
GraphCNN-GAN
Graph-convolutional GAN for point cloud generation. Code from ICLR 2019 paper Learning Localized Generative Models for 3D Point Clouds via Graph Convolution
Stars: ✭ 50 (+257.14%)
Mutual labels:  generative-adversarial-network
Articles-Bookmarked
No description or website provided.
Stars: ✭ 30 (+114.29%)
Mutual labels:  generative-adversarial-network
pytorch-GAN
My pytorch implementation for GAN
Stars: ✭ 12 (-14.29%)
Mutual labels:  generative-adversarial-network
SDGym
Benchmarking synthetic data generation methods.
Stars: ✭ 177 (+1164.29%)
Mutual labels:  generative-adversarial-network
SSVEP-Neural-Generative-Models
Code to accompany our International Joint Conference on Neural Networks (IJCNN) paper entitled - Simulating Brain Signals: Creating Synthetic EEG Data via Neural-Based Generative Models for Improved SSVEP Classification
Stars: ✭ 37 (+164.29%)
Mutual labels:  generative-adversarial-network
gan deeplearning4j
Automatic feature engineering using Generative Adversarial Networks using Deeplearning4j and Apache Spark.
Stars: ✭ 19 (+35.71%)
Mutual labels:  generative-adversarial-network
gan-error-avoidance
Learning to Avoid Errors in GANs by Input Space Manipulation (Code for paper)
Stars: ✭ 23 (+64.29%)
Mutual labels:  generative-adversarial-network
gzsl-od
Out-of-Distribution Detection for Generalized Zero-Shot Action Recognition
Stars: ✭ 47 (+235.71%)
Mutual labels:  generative-adversarial-network
Cross-Domain-Image-Translation-Using-CycleGAN
CycleGAN based neural network architecture to change the gender of a person’s face
Stars: ✭ 15 (+7.14%)
Mutual labels:  generative-adversarial-network
DiscoGAN-TF
Tensorflow Implementation of DiscoGAN
Stars: ✭ 57 (+307.14%)
Mutual labels:  generative-adversarial-network
BPPNet-Back-Projected-Pyramid-Network
This is the official GitHub repository for ECCV 2020 Workshop paper "Single image dehazing for a variety of haze scenarios using back projected pyramid network"
Stars: ✭ 35 (+150%)
Mutual labels:  generative-adversarial-network
Easter-Bootcamp-2018
Designed to take you from zero experience to GANs within a week.
Stars: ✭ 24 (+71.43%)
Mutual labels:  generative-adversarial-network
DCGAN-Pytorch
A Pytorch implementation of "Deep Convolutional Generative Adversarial Networks"
Stars: ✭ 23 (+64.29%)
Mutual labels:  generative-adversarial-network
AGD
[ICML2020] "AutoGAN-Distiller: Searching to Compress Generative Adversarial Networks" by Yonggan Fu, Wuyang Chen, Haotao Wang, Haoran Li, Yingyan Lin, Zhangyang Wang
Stars: ✭ 98 (+600%)
Mutual labels:  generative-adversarial-network
DeepSIM
Official PyTorch implementation of the paper: "DeepSIM: Image Shape Manipulation from a Single Augmented Training Sample" (ICCV 2021 Oral)
Stars: ✭ 389 (+2678.57%)
Mutual labels:  generative-adversarial-network
DeepEcho
Synthetic Data Generation for mixed-type, multivariate time series.
Stars: ✭ 44 (+214.29%)
Mutual labels:  generative-adversarial-network
WGAN-GP-tensorflow
Tensorflow Implementation of Paper "Improved Training of Wasserstein GANs"
Stars: ✭ 23 (+64.29%)
Mutual labels:  generative-adversarial-network
Awesome-GAN-Resources
🤖A list of resources to help anyone getting started with GANs 🤖
Stars: ✭ 90 (+542.86%)
Mutual labels:  generative-adversarial-network
adversarial-networks
Material de la charla "The bad guys in AI - atacando sistemas de machine learning"
Stars: ✭ 15 (+7.14%)
Mutual labels:  generative-adversarial-network

videoGAN

My smal project to implement GAN to generate video with an LSTM encodes the transformation of video frames in noise space.

Datasets:

Tasks:

  • Generator
    • Cleanup
    • Tested
    • Recurrent part in the generator is hard to pick up gradient
    • Use Adam
  • Discriminator
    • Cleaned up
    • Tested
    • Too strong compared to generator
    • Use normal SGD. Not that better compared to Adam
  • Add training ops
    • gradient clipping. Clip by GLOBAL norm will make gradient of recurrent unit goes to 0 as gradient of video output part increase. Use clip by individual norm instead
    • Add supervised pretrain?
    • Added addtional white gaussian noises to input of the generator. Will this help making the generator weaker? (http://www.inference.vc/instance-noise-a-trick-for-stabilising-gan-training/)
    • Currently it seems there is not enough gradient information passed to the recurrent module of the generator
    • Try training each network until under a threshold: Implemented
  • Add Glorot Intialization
  • Training Pipeline
    • Add command line
    • Add Save/Load
  • Add visualization
    • Tensorboard Visualization
    • GIFs
  • Parameters Search
  • Evaluation

Network structure:

The generator consist of two parts:

  • An LSTM that transform the noise from the current frame to the next frame
  • A DCGAN generator to generate the frame from the noise.
  • Layer Normalization is used in place of Batch Normalization

The discriminator is the from the paper "Generating Videos With Scence Dynamics" (http://web.mit.edu/vondrick/tinyvideo/paper.pdf). No Bach Normalization in the discriminator.

GAN training:

Train is done by using Wasserstein GAN with Gradient Policy, lambda = 200.0. Basic Loss and Alternative Loss for GAN training is also available.

Adam Optimizer is used for the discrimnator and the DCGAN part of the generator.

Stochastic Gradient Descent with momentum is used for the LSTM part of the generator.

Things I learned from training using Wasserstein-GAN with Gradient Policy (WGAN-GP):

About the three losses I tried:

  • Basic version of GAN loss doesn't work for this model. The LSTM part of the generator didn't receive much gradients to learn from
  • Alternative -log(D(G(noise))) version of GAN loss is able to provide big and unstable gradient to LSTM part and learn quickly at first but unable to go further than learning some of the moving dynamics and some vague digit shapes. After that, it diverge and video quality looks worse overtime. Also, extreme mode collapse.
  • WGAN-GP learn quicker than alternative loss, gradients are stable. At first the discriminator loss go down but after a few thousand iterations, it goes up steadily. Video quality goes up as discriminator loss goes up. Generator loss doesn't mean that much. No witnessed mode collapse

Some note about training WGAN-GP:

  • If not use gradient clipping, the gradients of some parameters can go upto 25-30. Those big values doesn't seem to have any effects though.
  • Using layer normalization in the discriminator seem to make it harder for the discriminator to learn (shown as gradients of the generator go down to 0 for some iteration) and make it worse for everything. (this is confirmed after 2nd try).
  • The discriminator should be trained more than the generator to reach optimum. From the github of Wasserstein-GAN original, the first few iteration we should train the discriminator 100 iters instead of 5 iters for 1 generator iter.
  • For LSTM one should not use Adam, instead use SGD+momentum (0.001, 0.95 seems to work well)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].