swuxyj / DeepHash-pytorch

Implementation of Some Deep Hash Algorithms, Including DPSH、DSH、DHN、HashNet、DSDH、DTSH、DFH、GreedyHash、CSQ.
MIT License
495 stars 116 forks source link

Explanation why to use cifar10-2 #43

Open vinnik-dmitry07 opened 1 year ago

vinnik-dmitry07 commented 1 year ago
image

(Database0 represents unique images that are not in the train set)

When we test our model, we assume that it corresponds to a real-world situation when we can train seen database before making unseen queries. Therefore we can include the train set in the database set. However, in the case of NUS and COCO classes of datasets are not balanced. We have no guarantee that we have 193734//21=9225 images of every class. Empirically, I have found that in nuswide_21 code.py we can set train_num up to ~2100. I do not know why someone decided to put only 500 per class, but I definitely know that Train <= Database. Thus, we have 3 scenarios: 1) CIFAR is balanced, therefore we can use Train = Dataset 2) NUS: we try to balance, therefore we Train <= Dataset 3) COCO: we do not balance (too hard?), Train <= Dataset