WangJian981002 / GF-CSL

17 stars 2 forks source link

parameters to improve the performance #4

Open xypu98 opened 1 year ago

xypu98 commented 1 year ago

I am training a model for my own dataset with your code. However, I find the performance is lower than other networks I trained with the same dataset by about 15 map. I think maybe I use improper parameter value, such as learning rate , batch size.... Do you have any advice to change the parameter value and improve mAP? Thanks a lot!

WangJian981002 commented 1 year ago

I am training a model for my own dataset with your code. However, I find the performance is lower than other networks I trained with the same dataset by about 15 map. I think maybe I use improper parameter value, such as learning rate , batch size.... Do you have any advice to change the parameter value and improve mAP? Thanks a lot!

Maybe there are some mistakes in use. Can you tell me what the loss value of each item is when you train to the end?such as center_loss 、scale_loss 、offset_loss and theta_loss.

WangJian981002 commented 1 year ago

training log on DOTA (res50): ... 0.18853627145290375 0.04158661887049675 0.20143795013427734 0.07793603092432022 0.6838913642168045 0.08281335979700089 0.07021398097276688 0.25919559597969055 0.045547932386398315 0.6835426404178142 0.23584453761577606 0.07630398124456406 0.2783091962337494 0.14872115850448608 0.6837002439200878 0.30350443720817566 0.0851500928401947 0.24335448443889618 0.10210231691598892 0.6839539155066013 0.3441133201122284 0.10315012186765671 0.3239612877368927 0.2531948685646057 0.6842535647451877 0.1982782930135727 0.06771107017993927 0.252801775932312 0.15513339638710022 0.6844540509283543 0.19807375967502594 0.09045722335577011 0.1976659744977951 0.1075238436460495 0.6842182097136974 0.08022651821374893 0.03709684684872627 0.23308075964450836 0.24865473806858063 0.6841806000173092 0.1035161018371582 0.0915604829788208 0.3092232346534729 0.40900102257728577 0.6845372874438763 0.28238436579704285 0.06780890375375748 0.22115088999271393 0.2636670768260956 0.684771694213152 0.17053034901618958 0.05289715901017189 0.20583735406398773 0.12826655805110931 0.6844183572232724 0.15052950382232666 0.10183628648519516 0.22831954061985016 0.11007316410541534 0.6843859899938106 0.27152255177497864 0.06778275221586227 0.21862053871154785 0.08284550160169601 0.6844833402335644 0.11240692436695099 0.052072856575250626 0.24608202278614044 0.09973292052745819 0.6845253531932831 0.44252490997314453 0.15637782216072083 0.18210811913013458 0.2935691177845001 0.6849771460294724 0.281832218170166 0.06664808839559555 0.22918687760829926 0.15373770892620087 0.6850699288249016 0.23680604994297028 0.10978245735168457 0.22274824976921082 0.30293700098991394 0.6851879388093949 0.19214890897274017 0.07803182303905487 0.2450263649225235 0.06437012553215027 0.685254976272583 0.10772483795881271 0.06310533732175827 0.28773653507232666 0.028720244765281677 0.6848133872747422 0.05863582342863083 0.04726596549153328 0.31605714559555054 0.02902560494840145 0.6842685018181801

WangJian981002 commented 1 year ago

I am training a model for my own dataset with your code. However, I find the performance is lower than other networks I trained with the same dataset by about 15 map. I think maybe I use improper parameter value, such as learning rate , batch size.... Do you have any advice to change the parameter value and improve mAP? Thanks a lot!

Sorry I deleted your comment by mistake, here are my suggestions:

1) 300 epoch is too much and may lead to overfitting,I don't know how big your dataset is, but I suggest the default 140 epoch is enough,and the corresponding decay at 100 and 130 epoch

2) if the bs is set to 8, try lr = 1e-4 or smaller

3) I mainly worry about center loss and theta loss. Below I give the final loss of res50 trained on DOTA. Each line represents the center, scale, offset, and theta loss of each iteration. If 1) and 2) are modified, the performance is still bad, please check whether the ground truth heatmap and smooth label generation process is wrong, I also suggest visualizing some failure cases to locate the error.