All Projects → ap229997 → DRNET

ap229997 / DRNET

Licence: other
PyTorch implementation of the NIPS 2017 paper - Unsupervised Learning of Disentangled Representations from Video

Programming Languages

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

Projects that are alternatives of or similar to DRNET

CS-DisMo
[ICCVW 2021] Rethinking Content and Style: Exploring Bias for Unsupervised Disentanglement
Stars: ✭ 20 (-55.56%)
Mutual labels:  unsupervised-learning, disentangled-representations
SimCLR-in-TensorFlow-2
(Minimally) implements SimCLR (https://arxiv.org/abs/2002.05709) in TensorFlow 2.
Stars: ✭ 75 (+66.67%)
Mutual labels:  unsupervised-learning
NTFk.jl
Unsupervised Machine Learning: Nonnegative Tensor Factorization + k-means clustering
Stars: ✭ 36 (-20%)
Mutual labels:  unsupervised-learning
adenine
ADENINE: A Data ExploratioN PipelINE
Stars: ✭ 15 (-66.67%)
Mutual labels:  unsupervised-learning
Video-Summarization-Pytorch
IMPLEMENT AAAI 2018 - Unsupervised video summarization with deep reinforcement learning (PyTorch)
Stars: ✭ 23 (-48.89%)
Mutual labels:  unsupervised-learning
kmeans
A simple implementation of K-means (and Bisecting K-means) clustering algorithm in Python
Stars: ✭ 18 (-60%)
Mutual labels:  unsupervised-learning
State-Representation-Learning-An-Overview
Simplified version of "State Representation Learning for Control: An Overview" bibliography
Stars: ✭ 32 (-28.89%)
Mutual labels:  unsupervised-learning
deep-active-inference-mc
Deep active inference agents using Monte-Carlo methods
Stars: ✭ 41 (-8.89%)
Mutual labels:  disentangled-representations
music-recommendation-system
A simple Music Recommendation System
Stars: ✭ 38 (-15.56%)
Mutual labels:  unsupervised-learning
machine-learning
Programming Assignments and Lectures for Andrew Ng's "Machine Learning" Coursera course
Stars: ✭ 83 (+84.44%)
Mutual labels:  unsupervised-learning
PlanSum
[AAAI2021] Unsupervised Opinion Summarization with Content Planning
Stars: ✭ 25 (-44.44%)
Mutual labels:  unsupervised-learning
RolX
An alternative implementation of Recursive Feature and Role Extraction (KDD11 & KDD12)
Stars: ✭ 52 (+15.56%)
Mutual labels:  unsupervised-learning
spear
SPEAR: Programmatically label and build training data quickly.
Stars: ✭ 81 (+80%)
Mutual labels:  unsupervised-learning
proto
Proto-RL: Reinforcement Learning with Prototypical Representations
Stars: ✭ 67 (+48.89%)
Mutual labels:  unsupervised-learning
Deep-Association-Learning
Tensorflow Implementation on Paper [BMVC2018]Deep Association Learning for Unsupervised Video Person Re-identification
Stars: ✭ 68 (+51.11%)
Mutual labels:  unsupervised-learning
dbscan
DBSCAN Clustering Algorithm C# Implementation
Stars: ✭ 38 (-15.56%)
Mutual labels:  unsupervised-learning
BIFI
[ICML 2021] Break-It-Fix-It: Unsupervised Learning for Program Repair
Stars: ✭ 74 (+64.44%)
Mutual labels:  unsupervised-learning
T-CorEx
Implementation of linear CorEx and temporal CorEx.
Stars: ✭ 31 (-31.11%)
Mutual labels:  unsupervised-learning
machine-learning-course
Machine Learning Course @ Santa Clara University
Stars: ✭ 17 (-62.22%)
Mutual labels:  unsupervised-learning
LinearCorex
Fast, linear version of CorEx for covariance estimation, dimensionality reduction, and subspace clustering with very under-sampled, high-dimensional data
Stars: ✭ 39 (-13.33%)
Mutual labels:  unsupervised-learning

DRNET

PyTorch implementation of the NIPS 2017 paper "Unsupervised Learning of Disentangled Representations from Video" [Link]

Introduction

The authors present a new model DRNET that learns disentangled image representations from video. They utilise a novel adversarial loss to learn a representation that factorizes each frame into a stationary part and a temporally varying component. They evaluate the approach on a range of synthetic (MNIST, SUNCG) and real (KTH Actions) videos, demonstrating the ability to coherently generate hundreds of steps into the future.

Setup

This repository is compatible with python 2.

  • Follow instructions outlined on PyTorch Homepage for installing PyTorch (Python2).
  • Follow instructions outlined on Lua Download page for installing Lua. This is required since the script for converting the KTH Actions dataset is provided in Lua.

Downloading and Preprocessing data

Detailed instructions for downloading and preprocessing data are provided by edenton/drnet.

KTH Actions dataset

Download the KTH action recognition dataset by running:

sh datasets/download_kth.sh /my/kth/data/path/

where /my/kth/data/path/ is the directory the data will be downloaded into. Next, convert the downloaded .avi files into .png's for the data loader. To do this you'll want ffmpeg installed. Then run:

th datasets/convert_kth.lua --dataRoot /my/kth/data/path/ --imageSize 128

The --imageSize flag specifiec the image resolution. The models implemented in this repository are for image size 128 or greater. However, they can also be used for lesser image resolution by decreasing the number of convolution blocks in the network architecture.

The file utils.py contains the dataloader for processing KTH Actions data further.

MNIST, SUNCG

The file utils.py contains the functionality for downloading and processing the MNIST and SUNCG datasets while running the model.

Train the model

Different architectures are used for training the model on different datasets. This can be set by specifying the --dataset parameter while calling main.py. Different networks are used in the paper - base, base with skip connections, lstm for sequential predictions. These models can be trained by running the following commands: (Other parameters to be specified are described in main.py. Refer to it for better understanding)

  • Training the base model python main.py
  • Training the base model with skip connections python main.py --use_skip True
  • Training the lstm model for sequential predictions python main.py --use_lstm True

Training loss curves

Training loss curves for (left) reconstruction loss, (center) similarity loss (with the base model) and (right) mse loss (with lstm model) vs the number of iterations are shown here. These results are on the MNIST dataset.

Also, on the running the training code for MNIST provided by [edenton/drnet-py] for 10 epochs, the corresponding loss values obtained are shown here. Each epoch constitutes 600 iterations.

The values for the similarity loss goes quickly to zero in both the cases and good convergence can be observed in case of reconstruction loss and mse loss for the lstm model.

Alternate Implementations

Alternate implementation for this paper are also available. Refer to them for better understanding.

Citation

If you find this code useful, please consider citing the original work by authors:

@inproceedings{Denton2017NeurIPS,
title = {Unsupervised Learning of Disentangled Representations from Video},
author = {Denton, Emily L and Birodkar, vighnesh},
booktitle = {Advances in Neural Information Processing Systems (NeurIPS)},
year = {2017}
}
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].