Nanne/pytorch-NetVlad

get_clusters function: nDescriptors and nPerImage

SharangKaul123 opened this issue · 1 comments

Hey,

I just want to know, that while running the algorithm in cluster mode, how did you decide the value of nDescriptors to be 50000 and nPerImage to be 100 which leads to nIm to be 500 that are used inside the sampler and then dataloader. How to come up with these values? And why do these need to be defined?
Also, while clustering, the descriptors are calculated on only database images of train set and the final model is build with encoder + L2 Normalization whereas when you go inside the training mode, you change the final model to be as encoder + NetVlad layer + PCA. Correct me, if I am wrong here.
Usually the total number of descriptors turn out to be 32768 (in VGG16) before applying PCA. Should we also keep the same number of descriptors while doing clustering? Does it make any difference?
Third, you do not retrain the backbone completely. So, I mean you are just fine tuning the weights from last layers(after conv_5) and using the image net weights from initial layers. Right?

Thank you so much :)

Nanne commented

Please check out the NetVlad paper and the extended README of the official implementation for answers to these questions, thanks!