Closed JMIGZHU closed 1 month ago
Hi Jingmin,
Thanks for your interest in our work and for your question about the validation split.
To clarify, the validation split is used to train the domain classifier since we need "unseen" skeletons to train it. We split the seen classes further into "seen_validtion" and "unseen_validation" splits to train the domain classifier.
E.g., For NTU-60 55/5, we randomly split the 55 seen classes into 50 seen_validation classes and 5 unseen_validation classes. Therefore, seen_validation $\cup$ unseen_validation = seen classes.
Regarding the train, val, z, and g splits, given the datasets can be divided by seen/unseen and xsub-train/xsub-val settings (not to be confused with the aforementioned validation split):
Unfortunately we cannot directly provide the feature generation code as it is a part of our internal codebase.
Please let me know if you have any further questions. Thanks!
Note: This approach follows the previous SOTA, SynSE
Thank you very much for the detailed response!
Additionally, I encountered a new question regarding the classifiers in your paper. I noticed that there are three classifiers mentioned: the seen-classifier, the unseen-classifier, and the domain classifier.
From the code, I understand how to train the unseen-classifier and the domain classifier. However, it seems like the logits for the seen-classifier are directly provided by the g_train_out.npy. Could you please briefly explain the training process for the seen-classifier? The paper mentions that skeleton features are used for training, but the exact details about the class distribution and sample size used for training seem unclear.
Once again, thank you very much for your time and assistance!
Best regards, Jingmin
Hi Jingmin,
We train the skeleton feature extractor using seen train skeletons to follow the zero-shot assumption. We optimize the feature extractor using cross-entropy, and thus we also obtain the seen class classifier by extracting the classification head (last linear layer).
Through empirical results we found the feature extractor is less sensitive to hyperparameters. Therefore we adapt the default hyperparameters in their (STGCN, ShiftGCN, PoseC3D) paper.
Thanks!
Hi, first of all, great work and thank you for your contribution!
I have a question regarding the resources folder. I noticed that some files in the sk_feats are labeled as val. Could you please clarify what this designation means?
Additionally, I see that the data is divided into four categories: g, train, val, and z. I was wondering how these splits were generated from the NTU dataset, as I am unable to reproduce the same number of features as you. If you could provide the splitting method or the code used for this, I would greatly appreciate it.
Thank you in advance for your help!
Best regards, Jingmin