Please provide the following information when requesting support.
• Hardware (Ubuntu 18.04 PC with NVIDIA Quadro K610M)
• Network Type (GestureNet)
Hello,
I was trying to train GestureNet model while adding a new class which is the Y_P gesture in the HGR dataset but I can’t get the model to train well (cross_entropy_loss~=10). I am doing everything inside the jupyter notebook for GestureNet
• How to reproduce the issue ?
What I did, step by step:
- I modified “Y_P”: “rock” in convert_hgr_to_tlt_data.py to create my dataset with the new class rock. I ran convert_hgr_to_tlt_data.py to create tlt type dataset.
- In specs/dataset_experiment_config.json I changed class_weights to:
"class_weights": { "random": 0.16, "thumbs_up": 0.16, "two": 0.16, "stop": 0.10, "ok": 0.10, "fist": 0.16, "rock": 0.16 }
- I then ran command !tao gesturenet dataset_convert
- In specs/train_spec.json I changed num_classes, add_new_head and classes:
“add_new_head”: true
“classes”: {
“thumbs_up”: 0,
“fist”: 1,
“stop”: 2,
“ok”: 3,
“two”: 4,
“random”: 5,
“rock”: 6
},
“num_classes”: 7
- I then ran !tao gesturenet train -e $SPECS_DIR/train_spec.json \ -k $KEY . The problem here is that the loss stays around 10 and doesn’t get lower. Because of this loss, when evaluating with this trained model, I get these metrics which are really bad:
pred_label fist random two
gt_label
fist 22.2 77.8 0.0
ok 8.33 91.7 0.0
random 34.1 65.9 0.0
rock 0.0 1e+02 0.0
stop 1e+02 0.0 0.0
thumbs_up 60.0 0.0 40.0
two 0.0 1e+02 0.0
All 34.1 63.6 2.27
I also tried with the dataset without changes and it works well. However when I set add_new_head in train_spec file to True, the model get worst. Could someone light me up on what add_new_head really does?
Feel free to ask if you need more information. Thanks in advance.
Nicolas