Giter Club home page Giter Club logo

dsc_gan's Introduction

Deep Subspace Clustering + GAN

Based on:

Pan Ji*, Tong Zhang*, Hongdong Li, Mathieu Salzmann, Ian Reid. Deep Subspace Clustering Networks. in NIPS'17.

Forked off: https://github.com/panji1990/Deep-subspace-clustering-networks

How to run:

CUDA_VISIBLE_DEVICES=0 python dsc_gan.py exp_name --lambda3 1 --epochs 3000

Dependencies:

pip install tensorflow-gpu==1.1
pip install tensorboard

tensorboard useful for visualization only.

Notes on parameter tuning

Training result seems to be highly dependent on quality of pre-trained model. For a particular pretrained model, finetuning achieves very consistent result. But if we repeat pre-training everytime, final finetuning result has significant variance.

TODO

[ ] Add COIL10 and COIL100 [ ] Allow tuning of number of conv-layers and disc size [ ] Nxr rxN

coil20 experiments

Without GAN

  • coil20_1: pretrain 10000, epochs 1000, enableat 1000

  • coil20_2: pretrain 1, epochs 1000, enableat 1000

  • coil20_3: pretrain 10000, epochs 1000, enableat 1000, lambda4 100

  • coil20_4: pretrain 10000, epochs 1000, enableat 1000, lambda1 100

  • coil20_5: pretrain 10000, epochs 1000, enableat 1000, lambda1 10000

  • coil20_6: pretrain 10000, epochs 1000, enableat 1000, lambda1 100000

  • coil20_7: pretrain 10000, epochs 1000, enableat 1000, lambda1 1000000

  • coil_m1: pretrain 3500, epochs 500, enableat1000, lambda2 20, alpha 0.12

  • coil_m2: pretrain 3500, epochs 500, enableat1000, lambda2 20, alpha 0.12

  • coil_m3: pretrain 3500, epochs 500, enableat1000, lambda2 20, alpha 0.12

  • coil_m4: pretrain 3500, epochs 500, enableat1000, lambda2 20, alpha 0.12, lr0.0004

  • coil_m5: pretrain 6000, epochs 700, enableat1000, lambda2 20, alpha 0.12, lr0.0004

  • coil_m6: pretrain 6000, epochs 1000, enableat2000, lambda2 20, alpha 0.12, lr0.0004

  • coil_m7: pretrain 6000, epochs 1000, enableat2000, lambda2 20, alpha 0.12, lr0.0002

  • coil_m8: pretrain 5000, epochs 1000, enableat2000, lambda2 20, alpha 0.12, lr0.0002

  • coil_m3raw: pretrain 3500, epochs 500, enableat1000, lambda2 20, alpha 0.12, COIL20RRRaw

  • coil_m3dim: pretrain 3500, epochs 500, enableat1000, lambda2 20, alpha 0.12, COIL20RRdimension

  • coil_k1: pretrain 3500, epochs 500, enable-at 1000, lambda2 20, alpha 0.12, kernel_size 5

ORL exps

submean, one2one, no-uni-norm all run with lr=0.001 orl_000: orl_001: orl_010: orl_100:

all run with lr=0.0002 orl_000_2: orl_001_2: orl_010_2: orl_100_2:

all run with lr=0.001, but enable-at 200 orl_000_3: orl_001_3: orl_010_3: orl_100_3:

all run with lr=0.001, but enable-at 100 orl_000_4: orl_001_4: orl_010_4: orl_100_4:

all run with lr=0.001, but enable-at 51 orl_000_5: orl_001_5: orl_010_5: orl_100_5:

Without uniform normalization, training seem somewhat unstable. There seems to be a bug in submean

So the best so far seems to be orl_010_4

orl_010_4_a0.05 to orl_010_4_a0.11 search for alpha. Turns out the default value 0f 0.1 was best

dsc_gan's People

Contributors

hyqneuron avatar panji1990 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.