This repository contains the code associated to the DISCO Nets paper that can be found on arxiv.
-
Python classic packages (numpy)
-
Chainer library for Python
If you use this work, please cite:
D. Bouchacourt, M. P. Kumar, S. Nowozin, "DISCO Nets: DISsimilarity COefficient Networks", NIPS 2016
- utils/scores.py : define here additional scoring function if needed. We have implemented the \alpha -\beta norm with \alpha = 2 (as used in our experiment)
- examples/HandPoseEstimation/train.py : launching script
- examples/HandPoseEstimation/hand_pose.py : defines the DISCO Nets and runs training
- examples/HandPoseEstimation/hand_pose_testing.py : testing utils specific to hand pose estimation
The "example" folder allows you to use the DISCO Nets on the NYU Hand Pose dataset NYU Hand Pose dataset. Data should be pre-processed using the code from Markus Oberweger and require the installation of DeepPrior to load the data.
If you want to use a GPU, set up gpu = True and your gpu ID in the file hand_pose.py. To run the example, set up your parameters in the file train.py and run python train.py from your terminal.
Parameters:
- beta : same as in the paper.
- seed : random seed to initialise the network weights. All biases are initialised to 0.
- alpha : dissimilarity coefficient hyper-parameter, referred as gamma in the paper.
- C : weight decay
- savedir : folder to save the model monitored values at each iteration
- datadir : folder to find the data, in the NYU Hand Pose example "../"
- nrand : size of the noise vector
- finger_w : used in our fingers experiment, leave it to 1.0 if you want to consider all 5 fingers
- fingers : used in our fingers experiment, leave it to the full list of fingers if you want to consider all 5 fingers