DirtyHarryLYL/HAKE-Action-Torch

Question about training details with Activity2Vec on custom dataset.

quan1e opened this issue · 4 comments

Hi Researcher/Mr Fan,
I am training my dataset with Activity2vec and I have some questions.
In my procedure, the images in my dataset do not have part annotations, so i extract the PaSta features from my images with your finetuned weights which are trained on HAKE-Large, I visualized the detected boxes and which looks good. And then I finetune the verb classifier ['verb'].
So, I performed only one stage in training my task.
Thanks for your excellent codes, the training process performs smoothly, but i have not got a good accuracy yet, there my be something errors in my settings. Could you please give some suggestions according my settings?
Current setting are as follows:
__C.MODEL.PART_ROI_ENABLE = True
__C.MODEL.VERB_ONE_MORE_FC = False
__C.TRAIN.FREEZE_BACKBONE = False
__C.TRAIN.FREEZE_RES4 = False
Classes: 40
Train Data samples: 9000
Epoch: 10
BASE_LR: 0.01 , epoch2: 0.001, epoch4: 0.0001, epoch6: 0.00001
Here are the settings , the loss reduced to 0.11 at epoch 4 and no longer further reduce.
Thanks.

hwfan commented

What dataset is your "accuracy" metric calculated on? Train set or test set? Maybe you have to check your evaluation procedure carefully.

Thanks for your swift reply. I run the code on Standord40 dataset, and evaluate the accuracy with verb classification, (Predicted True Image Number)/(Total Image Number).
Now, I use all the samples about 9000 images as train set, and also evaluate the accuracy with the same 9000 images after several epochs. And the loss can not reduce smaller than 0.11

hwfan commented

Since I don't have the code of your custom dataset and evaluation I couldn't localize the problem. Several tips here may help:

  1. Is the pretrained checkpoint of A2V correctly loaded? If not, the backbone will only output randomized feature.
  2. Is the training procedure well monitored? The loss value should be correlated with the training accuracy negatively.
  3. Does the dataloader follow the original design of HAKE dataloader? Some points such as RGB/BGR and pixel mean may have influence on the input.
  4. Does your evaluation code work? It should be checked with care, and you may perform some unit tests on it.

Thanks for the tips, I would check these points carefully.