Unverified Commit 5d64ae9d authored by Anton Vlasjuk's avatar Anton Vlasjuk Committed by GitHub
Browse files

fix uncaught init of linear layer in clip's/siglip's for image classification models (#30435)

* fix clip's/siglip's _init_weights to reflect linear layers in "for image classification"

* trigger slow tests
parent 16c8e176
...@@ -450,6 +450,11 @@ class CLIPPreTrainedModel(PreTrainedModel): ...@@ -450,6 +450,11 @@ class CLIPPreTrainedModel(PreTrainedModel):
module.text_projection.weight, module.text_projection.weight,
std=self.config.hidden_size**-0.5 * self.config.initializer_factor, std=self.config.hidden_size**-0.5 * self.config.initializer_factor,
) )
elif isinstance(module, CLIPForImageClassification):
nn.init.normal_(
module.classifier.weight,
std=self.config.vision_config.hidden_size**-0.5 * self.config.initializer_factor,
)
if isinstance(module, nn.LayerNorm): if isinstance(module, nn.LayerNorm):
module.bias.data.zero_() module.bias.data.zero_()
......
...@@ -492,6 +492,11 @@ class SiglipPreTrainedModel(PreTrainedModel): ...@@ -492,6 +492,11 @@ class SiglipPreTrainedModel(PreTrainedModel):
logit_scale_init = torch.log(torch.tensor(1.0)) logit_scale_init = torch.log(torch.tensor(1.0))
module.logit_scale.data.fill_(logit_scale_init) module.logit_scale.data.fill_(logit_scale_init)
module.logit_bias.data.zero_() module.logit_bias.data.zero_()
elif isinstance(module, SiglipForImageClassification):
nn.init.normal_(
module.classifier.weight,
std=self.config.vision_config.hidden_size**-0.5 * self.config.initializer_factor,
)
elif isinstance(module, (nn.Linear, nn.Conv2d)): elif isinstance(module, (nn.Linear, nn.Conv2d)):
lecun_normal_(module.weight) lecun_normal_(module.weight)
if module.bias is not None: if module.bias is not None:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment