Awesome
Self Supervised Learning of Skeleton Sequences for Action Recognition
Requirements
- install pytorch using the command from the official website
pip install -r requirements
Pretraining
For pretraining and linear classification, choose a configuration from configs/
and run pretrain.py
. Overwrite parameters by adding them as arguments. The new configuration is saved as a yaml file in the experiment directory. Experiments are logged using tensorboard by default. A summary of the results is saved in a database as a csv file. Use python join_db.py
to join all csv files into one containing all experiments.
The following scirpt is an example:
device=3
gpus=1
batch_size=256
max_epochs=5
learning_rate=0.001
# set to 0 to disable logging
progress_bar_refresh_rate=1
# checkpoint frequency
ckpt_period=3
NOW=$(date +"%Y-%m-%d_%H-%M-%S")
base_cfg="configs/NTU_AE.yaml"
exp_name="${NOW}_NTU_AE"
exp_dir="../prj_ssl_ntu_exps/$exp_name"
path_db="../ssl_db"
mkdir logs
CUDA_VISIBLE_DEVICES=$device \
nohup \
python pretrain.py \
--config $base_cfg \
--exp_name $exp_name \
--exp_dir $exp_dir \
--path_db $path_db \
--gpus $gpus \
--batch_size $batch_size \
--max_epochs $max_epochs \
--epochs $max_epochs \
--learning_rate $learning_rate \
--progress_bar_refresh_rate $progress_bar_refresh_rate \
--ckpt_period $ckpt_period \
> logs/${exp_name}.log 2>&1 &
Linear Classification
For linear classification of an already trained model, specify the configuration file of the experiment and run the lincls.py
.
device=0
exp_name='2020-11-02_15-40-52_NTU_VAE'
exp_path='<path to experiment>/${exp_name}/config.yaml'
CUDA_VISIBLE_DEVICES=$device \
python lincls.py --config $exp_cfg