AILab-CVC / YOLO-World

[CVPR 2024] Real-Time Open-Vocabulary Object Detection
https://www.yoloworld.cc
GNU General Public License v3.0
4.43k stars 431 forks source link

Reparameterization need finetuning? #384

Open Yinjie-ZHENG opened 3 months ago

Yinjie-ZHENG commented 3 months ago

Thanks for your great work! I have noticed that reparameterization mentioned how to replace matmul with conv1x1. However, I wonder why we need "Reparameterized Training". image

wondervictor commented 3 months ago

Hi @Yinjie-ZHENG, sorry for the late reply and please check docs/reparameterize for more details:

  1. we provide the script to re-prameterize in one command.
  2. the re-parameterized training is not required and you can use your custom embeddings for downstream embeddings with the re-parameterized models (zero-shot). If your datasets differ from the generic scenes, you can further re-parameterized training for higher performance.
Yinjie-ZHENG commented 3 months ago

Hi @Yinjie-ZHENG, sorry for the late reply and please check docs/reparameterize for more details:

  1. we provide the script to re-prameterize in one command.
  2. the re-parameterized training is not required and you can use your custom embeddings for downstream embeddings with the re-parameterized models (zero-shot). If your datasets differ from the generic scenes, you can further re-parameterized training for higher performance.

Thanks for your reply. But it is hard to find out how you re-parameterize the matmul to 1x1 conv, I mean, once you use 1x1 Conv, how do you set the weight of 1x1 Conv to keep the result right(without finetuning)

jacksonthall22 commented 2 months ago

If your datasets differ from the generic scenes, you can further re-parameterized training for higher performance.

The docs here are pretty unclear at step 3. Could you please clarify the docs or elaborate on how to "Prepare the model config"? There are no real steps or instructions there, so I'm a little lost with how to deal with this code. Thanks in advance!

JubSteven commented 1 month ago

Same question. The docs are a little ambiguous about exactly how to "re-parameterized training for higher performance." Does the subsequent steps follow the same procedure as normal finetuning?