Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need for Pascal VOC config file #10

Open
Yuxin-Du-Lab opened this issue Aug 20, 2022 · 6 comments
Open

Need for Pascal VOC config file #10

Yuxin-Du-Lab opened this issue Aug 20, 2022 · 6 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@Yuxin-Du-Lab
Copy link

The released code just include coco config. I wonder if you can give the VOC related code, or just the configuration file is also OK.

I tried to use the configuration about VOC given in the paper,setting VOC 2007 train as labeled data & VOC 2012 train as unlabeled data.But I got an unstable training process.

Set trainer as follow:

│ TRAINER │ {'DISTILL': {'GAMMA': 2.0,
│ │ 'RATIO': 0.01,
│ │ 'SUPPRESS': 'linear',
│ │ 'SUP_WEIGHT': 1,
│ │ 'UNSUP_WEIGHT': 1,
│ │ 'WEIGHTS': {'DELTAS': 1.0, 'LOGITS': 2.0, 'QUALITY': 1.0}},
│ │ 'EMA': {'DECAY_FACTOR': 0.9996, 'START_STEPS': 3000, 'UPDATE_STEPS': 1},
│ │ 'NAME': 'SemiRunner',
│ │ 'SSL': {'BURN_IN_STEPS': 5000}}

Is that right?

Could you help me, please

@ZRandomize
Copy link
Collaborator

Yes, the weight is right, but we used EMA at 10000 step and BURN_IN_STEP=20000 since VOC is a full dataset. An early burn-in stage can cause unstable training due to the low-quality pseudo-labels

@Yuxin-Du-Lab
Copy link
Author

Thank you very much! I'll try it again with new hyper-para.

@Yuxin-Du-Lab
Copy link
Author

I still got some problem in training using the new super-para.
Part of tensorboard info:
total loss
AP50
The min value point in total loss figure is about 20000 steps, namely getting a divergence training process after 'BURN_IN'.
The detailed log file is following:
voc_log.txt

What else is wrong? I need your help, please.

@ZRandomize
Copy link
Collaborator

seems you are using voc2007 val as eval set, but we use trainval for training and voc2007 test as evaluation set.
beside, the best performance is obtained at 60K iter since the voc set is small.
Our training curve is like this (AP50):
image

@Yuxin-Du-Lab
Copy link
Author

Thanks for your detailed reply! I just tried the new division of dataset and got a better score: 76.01(AP50).
ap50

But you know, it's still lower than the score presented in paper(79.89).
I wonder if there any config that I ignored.

config.py file
detailed log header file
voc dataset class replacement file

Thanks for your help, again!

@ZRandomize
Copy link
Collaborator

ZRandomize commented Sep 2, 2022

ah, seems there's only one more step, we used Scale Jittering as in Unbiased Teacher like here
You can also choose Large Scale Jittering as in Soft Teacher like in here for a better performance.
However, note that these aug would also improve supervised baseline

@ZRandomize ZRandomize added enhancement New feature or request good first issue Good for newcomers labels Oct 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants