mecarill / 2pcnet

Other
84 stars 22 forks source link

The reported performance of mAP50 in this paper is Student's or Teacher's? #13

Open HDUyiming opened 6 months ago

HDUyiming commented 6 months ago

Why is the performance gap so wide between teachers and students? Their structure is the same, so why are Teacher performing better (about 2~3 point)

uulsj commented 6 months ago

I can answer your question. The teacher model is updated using the student's EMA, thus it can be viewed as a collection of historical student knowledge, resulting in higher performance than the student model. My question is, what is the score of the teacher model you trained? What is your training equipment, and what are your values for IMGPERBATCHLABEL and IMGPERBATCHUNLABEL? The teacher model I trained using a 3060 GPU only yielded 35 point.

HDUyiming commented 6 months ago

I can answer your question. The teacher model is updated using the student's EMA, thus it can be viewed as a collection of historical student knowledge, resulting in higher performance than the student model. My question is, what is the score of the teacher model you trained? What is your training equipment, and what are your values for IMGPERBATCHLABEL and IMGPERBATCHUNLABEL? The teacher model I trained using a 3060 GPU only yielded 35 point.

I trained 2PCNet only in one RTX3090 CPU with IMG_PER_BATCH_LABEL=IMG_PER_BATCH_UNLABEL=6 and BASE_LR=0.04. This setting can get the reported results: 45~47 mAP50. I hope my answer can help you, and if you are interested in this direction, we can further communicate.

uulsj commented 6 months ago

Thank you for your answer.Did the code make any adjustments besides adjusting IMG-PER-BATCH-LABEL=IMG-PER-BATCH-UNLABEL=6 and BASELLR=0.04, as well as some necessary path settings?

HDUyiming commented 6 months ago

Thank you for your answer.Did the code make any adjustments besides adjusting IMG-PER-BATCH-LABEL=IMG-PER-BATCH-UNLABEL=6 and BASELLR=0.04, as well as some necessary path settings?

You're welcome. Nothing else needs to be changed 🙂

uulsj commented 6 months ago

Thank you again for your answer. What is the MAXITER you set? My 35 mAP50 result took 100000 iterations.

HDUyiming commented 6 months ago

Thank you again for your answer. What is the MAXITER you set? My 35 mAP50 result took 100000 iterations.

MAXITER =100,000 unchanged. May you tell me the batch size settings (IMG-PER-BATCH-LABEL,IMG-PER-BATCH-UNLABEL, and BASELLR) in your code?

uulsj commented 6 months ago

My IMG-PER-BATCH-LABEL=IMG-PER-BATCH-UNLABEL=2 and BASELLR=0.02. I guess my 35 map result may be related to the dataset. My dataset was filtered from bdd100k, with 6637 daytime images, 15069 nighttime images, and 2133 test images

HDUyiming commented 6 months ago

I see, the biggest problem is that your batch size is too small. Additionally, you have to stick to the number of partitions in the dataset.

uulsj commented 6 months ago

I see, the biggest problem is that your batch size is too small. Additionally, you have to stick to the number of partitions in the dataset. Thank you. What is the number of day、night and validation set images in your dataset .The division provided by the author is empty

HDUyiming commented 6 months ago

I see, the biggest problem is that your batch size is too small. Additionally, you have to stick to the number of partitions in the dataset. Thank you. What is the number of day、night and validation set images in your dataset .The division provided by the author is empty

daytime:36728; night time:32998; night time val:4707

uulsj commented 6 months ago

Thank you very much for your patient answer. I will continue to try again.

HDUyiming commented 6 months ago

Thank you very much for your patient answer. I will continue to try again.

hi friend, how was the performance when you set batch size=6 or bigger?

uulsj commented 6 months ago

Sorry!I haven't trained yet. 1.There is an issue with my dataset partitioning. I divided the BDD100K dataset according to the daytime and nighttime labels, ignoring the scene and weather labels.I obtained the following results. daytime: 36728;night time: 27961;night time val: 3929 2.The issue mentioned in https://github.com/mecarill/2pcnet/issues/11#issuecomment-2066433158 had get the same split result.

uulsj commented 5 months ago

I see, the biggest problem is that your batch size is too small. Additionally, you have to stick to the number of partitions in the dataset. Thank you. What is the number of day、night and validation set images in your dataset .The division provided by the author is empty

daytime:36728; night time:32998; night time val:4707

Did you also use the test dataset for filtering. I have checked my screening method and there is no problem,the only possibility is the test dataset. Could you please provide the label file for the test dataset?

HDUyiming commented 5 months ago

I see, the biggest problem is that your batch size is too small. Additionally, you have to stick to the number of partitions in the dataset. Thank you. What is the number of day、night and validation set images in your dataset .The division provided by the author is empty

daytime:36728; night time:32998; night time val:4707

Did you also use the test dataset for filtering. I have checked my screening method and there is no problem,the only possibility is the test dataset. Could you please provide the label file for the test dataset?

val_night.json This is my label file of testing 😊

wuxiaofenghehe commented 5 months ago

I see, the biggest problem is that your batch size is too small. Additionally, you have to stick to the number of partitions in the dataset. Thank you. What is the number of day、night and validation set images in your dataset .The division provided by the author is empty

daytime:36728; night time:32998; night time val:4707

Did you also use the test dataset for filtering. I have checked my screening method and there is no problem,the only possibility is the test dataset. Could you please provide the label file for the test dataset?

val_night.json This is my label file of testing 😊

Hello, when I use my label file, Map50=33,IMG_PER_BATCH_LABEL=2, IMG_PER_BATCH_UNLABEL=2, can you provide the following your label file

uulsj commented 5 months ago

I see, the biggest problem is that your batch size is too small. Additionally, you have to stick to the number of partitions in the dataset. Thank you. What is the number of day、night and validation set images in your dataset .The division provided by the author is empty

daytime:36728; night time:32998; night time val:4707

Did you also use the test dataset for filtering. I have checked my screening method and there is no problem,the only possibility is the test dataset. Could you please provide the label file for the test dataset?

val_night.json This is my label file of testing 😊

Thank you for providing, but I couldn't find the images in the files you provided in the bdd100k dataset. This is the number of daytime and nighttime images that I have filtered in the bdd100k official tag file. Among them, bdd100k_ labels images train. json has 36728 daytime images and 27971 nighttime images, bdd100k'labels_images_val.json has 5258 daytime and 3929 nighttime images. I can not get daytime:36728; night time:32998; night time val:4707. How did you split more images than I did 825628c36324365c56ccb39f1174438d

HDUyiming commented 5 months ago

I see, the biggest problem is that your batch size is too small. Additionally, you have to stick to the number of partitions in the dataset. Thank you. What is the number of day、night and validation set images in your dataset .The division provided by the author is empty

daytime:36728; night time:32998; night time val:4707

Did you also use the test dataset for filtering. I have checked my screening method and there is no problem,the only possibility is the test dataset. Could you please provide the label file for the test dataset?

val_night.json This is my label file of testing 😊

Thank you for providing, but I couldn't find the images in the files you provided in the bdd100k dataset. This is the number of daytime and nighttime images that I have filtered in the bdd100k official tag file. Among them, bdd100k_ labels images train. json has 36728 daytime images and 27971 nighttime images, bdd100k'labels_images_val.json has 5258 daytime and 3929 nighttime images. I can not get daytime:36728; night time:32998; night time val:4707. How did you split more images than I did 825628c36324365c56ccb39f1174438d

sorry, you are right, bdd100k_ labels images train. json has 36728 daytime images and 27971 nighttime images, bdd100k'labels_images_val.json has 5258 daytime and 3929 nighttime images

uulsj commented 5 months ago

Thank you very much for your patient answer. I will continue to try again.

hi friend, how was the performance when you set batch size=6 or bigger?

I trained 2PCNet only in one RTX3060 CPU with IMG_PER_BATCH_LABEL=IMG_PER_BATCH_UNLABEL=2 and BASE_LR=0.005. This setting can get the reported results: 40~42 mAP50.

HDUyiming commented 5 months ago

Thank you very much for your patient answer. I will continue to try again.

hi friend, how was the performance when you set batch size=6 or bigger?

I trained 2PCNet only in one RTX3060 CPU with IMG_PER_BATCH_LABEL=IMG_PER_BATCH_UNLABEL=2 and BASE_LR=0.005. This setting can get the reported results: 40~42 mAP50.

Okay, I got it. If you have the conditions on a video card with larger memory when tuning up batch size you will get higher performance .

uulsj commented 5 months ago

I see, the biggest problem is that your batch size is too small. Additionally, you have to stick to the number of partitions in the dataset. Thank you. What is the number of day、night and validation set images in your dataset .The division provided by the author is empty

daytime:36728; night time:32998; night time val:4707

Did you also use the test dataset for filtering. I have checked my screening method and there is no problem,the only possibility is the test dataset. Could you please provide the label file for the test dataset?

val_night.json This is my label file of testing 😊

Thank you for providing, but I couldn't find the images in the files you provided in the bdd100k dataset. This is the number of daytime and nighttime images that I have filtered in the bdd100k official tag file. Among them, bdd100k_ labels images train. json has 36728 daytime images and 27971 nighttime images, bdd100k'labels_images_val.json has 5258 daytime and 3929 nighttime images. I can not get daytime:36728; night time:32998; night time val:4707. How did you split more images than I did 825628c36324365c56ccb39f1174438d

sorry, you are right, bdd100k_ labels images train. json has 36728 daytime images and 27971 nighttime images, bdd100k'labels_images_val.json has 5258 daytime and 3929 nighttime images

But the author mentioned that his dataset was split into days: 36728; night time:32998; night time val:4707.This is where I'm confused f1a6062da8d300a7b4b5364ffb6bb8ba

uulsj commented 4 months ago

Thank you very much for your patient answer. I will continue to try again.

hi friend, how was the performance when you set batch size=6 or bigger?

I trained 2PCNet only in one RTX3060 CPU with IMG_PER_BATCH_LABEL=IMG_PER_BATCH_UNLABEL=2 and BASE_LR=0.005. This setting can get the reported results: 40~42 mAP50.

Okay, I got it. If you have the conditions on a video card with larger memory when tuning up batch size you will get higher performance .

Hello!Can you provide your loss graph? My losses fluctuate greatly.