from transformers import PretrainedConfig class FineViTConfig(PretrainedConfig): model_type = "finevit" def __init__( self, backbone_model_name: str = "facebook/dinov2-with-registers-base", teacher_encoder_type: str = "dinov2_with_registers", backbone_config: dict | None = None, num_latents: int = 64, latent_encoder_num_layers: int = 12, latent_encoder_head_dim: int = 64, latent_encoder_num_attention_heads: int = 12, latent_encoder_mlp_hidden_dim: int = 3072, patch_decoder_num_layers: int = 8, patch_decoder_head_dim: int = 64, patch_decoder_num_attention_heads: int = 12, patch_decoder_mlp_hidden_dim: int = 3072, dropout: float = 0.0, image_size: int = 224, train_encoder: bool = False, init_backbone_from_pretrained: bool = True, initializer_range: float = 0.02, **kwargs, ): super().__init__(**kwargs) self.backbone_model_name = backbone_model_name self.teacher_encoder_type = teacher_encoder_type self.backbone_config = backbone_config self.num_latents = num_latents self.latent_encoder_num_layers = latent_encoder_num_layers self.latent_encoder_head_dim = latent_encoder_head_dim self.latent_encoder_num_attention_heads = latent_encoder_num_attention_heads self.latent_encoder_mlp_hidden_dim = latent_encoder_mlp_hidden_dim self.patch_decoder_num_layers = patch_decoder_num_layers self.patch_decoder_head_dim = patch_decoder_head_dim self.patch_decoder_num_attention_heads = patch_decoder_num_attention_heads self.patch_decoder_mlp_hidden_dim = patch_decoder_mlp_hidden_dim self.dropout = dropout self.image_size = image_size self.train_encoder = train_encoder self.init_backbone_from_pretrained = init_backbone_from_pretrained self.initializer_range = initializer_range FineViTConfig.register_for_auto_class("AutoConfig")