Skyy93 / Sample4Geo

86 stars 12 forks source link

Model performance about convnext_tiny model #1

Closed MingkunLishigure closed 1 year ago

MingkunLishigure commented 1 year ago

Hello, thank you for your great work.. We tested your method using the 'convnext_tiny.fb_in22k_ft_in1k_384' model and default parameters, training for 40 epochs. However, the model's performance only reached around 40% mean average precision on the University-1652 dataset. This suggests a deviation from the experimental results reported in your paper. Is it possible that this is due to parameter issues, such as the default setting of epoch to 1 in the training code?

Skyy93 commented 1 year ago

Thanks for reaching out.

You should not change the number of epochs for University-1652, so leave it at 1.

This has the following background:

While CVUSA, CVACT and VIGOR are a 1:1 matching, University-1652 is an N:1 matching. That means N drone images which match to one satellite image. What we do now is to match ALL drone images once to their corresponding satellite images within one epoch. We have tested different configurations but because the dataset is so small, anything over one epoch will give worse results. Sorry, we should have described this in more detail. I'll close the issue but please open it again immediately if you have further problems!

MingkunLishigure commented 1 year ago

Thanks for your response! However, the current situation is that if I train using the default parameters you suggested, the performance of the University-1652 dataset network will be poor in the Epoch=1 phase when using a 4*3090GPU.

The problem we notice is that the loss does not decrease throughout the training process. The only difference from the default code in training is that we downloaded the ConvNeXt-T model from https://github.com/facebookresearch/ConvNeXt fine-tuned on the ImageNet-1k dataset and load it locally via model_state_dict = torch.load('. /pretrained/university/{}.pth'.format(config.model)) model.load_state_dict(model_state_dict, strict=False)