Closed WentaoTan closed 2 years ago
Thank you for your interest.
You can see this result is Table 3, Table 4, and Table 5, denoted by BN. The method specified as BN is a method of learning the existing BN-based backbone in multiple source domains without using meta-learning. Comparing the proposed MetaBIN method with the existing BN performance, there is a big performance difference with rank-1 accuracy of 65.7% and 50.9% in the large scale DG re-id benchmark.
In order to operate the BN-based model without using meta-learning in the code, please refer to the code modifications below. 1) In this code (MetaBIN/configs/Sample/DG-mobilenet.yml), put "BN" instead of "BIN_gate2" for the variable in MODEL.NORM.TYPE_BACKBONE. This means using BN instead of batch-instance normalization. 2) In this code (MetaBIN/configs/Base-DG.yml), put "" or '' (empty) instead of "DG" for the variable in META.DATA.NAMES. This means not using the meta-learning scheme. Instead of modifying this code (MetaBIN/configs/Base-DG.yml), you can add the META.DATA.NAMES variable in this code (MetaBIN/configs/Sample/DG-mobilenet.yml) and set the value to "" like this.
<DG-mobilenet.yml>
...
META:
DATA:
MTRAIN_MINI_BATCH: 80
MTRAIN_NUM_INSTANCE: 4
MTEST_MINI_BATCH: 80
MTEST_NUM_INSTANCE: 4
NAMES: "" # add this
...
MODEL:
NORM:
TYPE_BACKBONE: "BN" # change this
...
Please feel free to contact us if you have any questions.
Thanks, Seokeon Choi
If I want to use BIN but do not want to update the balance parameter Gate by meta learning, how can I modify it?
Thanks for the re-comment.
You can modify the code by reflecting on my second answer if you want to exclude the meta-learning scheme.
In this code (MetaBIN/configs/Base-DG.yml), put "" or '' (empty) instead of "DG" for the variable in META.DATA.NAMES. This means not using the meta-learning scheme. Instead of modifying this code (MetaBIN/configs/Base-DG.yml), you can add the META.DATA.NAMES variable in this code (MetaBIN/configs/Sample/DG-mobilenet.yml) and set the value to "" like this.
And, there is one more variant for BIN methods. Our BIN method is different from the original BIN [1], so you can change the BIN variant in our code.
[1] Hyeonseob Nam and Hyo-Eun Kim. Batch-instance normalization for adaptively style-invariant neural networks. In Advances in Neural Information Processing Systems (NeurIPS), pages 2558–2567, 2018.
Hello! I have another question. How to set the configs file for single domain experiments such as "Market1501 to DukeMTMC"? I simply set DATASETS parameters in MetaBIN/configs/Sample/DG-resnet.yml like:
DATASETS: NAMES: ("DG_Market1501", ) TESTS: ("DukeMTMC",)
But it reports an error:
Traceback (most recent call last):
File "./tools/train_net.py", line 144, in
Hello, I notice that no one used Crossgrad[1] and L2A-OT[2] to conduct single domain experiments in previous articles. Maybe I didn't read enough materials and I missed them. I would like to ask whether these two methods are also trained with the same backbone, ResNet50, as SNR[3]?
[1]Shiv Shankar, Vihari Piratla, Soumen Chakrabarti, Sid-dhartha Chaudhuri, Preethi Jyothi, and Sunita Sarawagi. Generalizing across domains via cross-gradient training.arXiv preprint arXiv:1804.10745, 2018. [2]Kaiyang Zhou, Yongxin Yang, Timothy Hospedales, and TaoXiang. Learning to generate novel domains for domain gen-eralization. InEuropean Conference on Computer Vision,pages 561–578. Springer, 2020. [3]Xin Jin, Cuiling Lan, Wenjun Zeng, Zhibo Chen, and LiZhang. Style normalization and restitution for generalizableperson re-identification. InProc. IEEE Conf. Comput. Vis.Pattern Recognit., pages 3143–3152, 2020.
Sorry for the late reply.
The first question: This config file (https://github.com/bismex/MetaBIN/blob/master/configs/Sample/M-resnet.yml) provides the setting that you want to.
The second question: I recorded the performance for Crossgrad and L2A-OT by referring to the paper on L2A-OT. The result is not my re-implementation, so it is difficult to tell for sure which backbone was used. In the L2A-OT paper, it is stated that their method is based on Torchreid. Please check with the authors for more details.
Hello. When I was reading your paper, I had a doubt: What would be the result if meta-learning was not used during training? So I went to study your code but didn't understand it. Could you please tell me the result without meta-learning or how to modify the code?