
    i                     x    d Z ddlmZ ddlmZ ddlmZ ddlmZ  ed      e G d	 d
ee                    Z	d
gZ
y)zBEiT model configuration    )strict   )BackboneConfigMixin)PreTrainedConfig)auto_docstringz%microsoft/beit-base-patch16-224-pt22k)
checkpointc                   R    e Zd ZU dZdZdZeed<   dZeed<   dZ	eed<   dZ
eed	<   d
Zeed<   dZeed<   dZeez  ed<   dZeez  ed<   dZeed<   dZeed<   dZeee   z  eeef   z  ed<   dZeee   z  eeef   z  ed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   d Zeed!<   d Zeez  ed"<   d#Zeed$<   d%Z ee   eed&f   z  ed'<   d#Z!eed(<   d)Z"eed*<   d+Z#eed,<   d-Z$eed.<   dZ%eed/<   d0Z&eed1<   d2Z'ee   d2z  ed3<   d2Z(ee   d2z  ed4<   dZ)eed5<   d#Z*eed6<    fd7Z+ xZ,S )8
BeitConfiga	  
    use_mask_token (`bool`, *optional*, defaults to `False`):
        Whether to use a mask token for masked image modeling.
    use_relative_position_bias (`bool`, *optional*, defaults to `False`):
        Whether to use T5-style relative position embeddings in the self-attention layers.
    use_shared_relative_position_bias (`bool`, *optional*, defaults to `False`):
        Whether to use the same relative position embeddings across all self-attention layers of the Transformer.
    use_mean_pooling (`bool`, *optional*, defaults to `True`):
        Whether to mean pool the final hidden states of the patches instead of using the final hidden state of the
        CLS token, before applying the classification head.
    pool_scales (`tuple[int]`, *optional*, defaults to `[1, 2, 3, 6]`):
        Pooling scales used in Pooling Pyramid Module applied on the last feature map.
    use_auxiliary_head (`bool`, *optional*, defaults to `True`):
        Whether to use an auxiliary head during training.
    auxiliary_loss_weight (`float`, *optional*, defaults to 0.4):
        Weight of the cross-entropy loss of the auxiliary head.
    auxiliary_channels (`int`, *optional*, defaults to 256):
        Number of channels to use in the auxiliary head.
    auxiliary_num_convs (`int`, *optional*, defaults to 1):
        Number of convolutional layers to use in the auxiliary head.
    auxiliary_concat_input (`bool`, *optional*, defaults to `False`):
        Whether to concatenate the output of the auxiliary head with the input before the classification layer.
    add_fpn (`bool`, *optional*, defaults to `False`):
        Whether to add a FPN as part of the backbone. Only relevant for [`BeitBackbone`].
    reshape_hidden_states (`bool`, *optional*, defaults to `True`):
        Whether to reshape the feature maps to 4D tensors of shape `(batch_size, hidden_size, height, width)` in
        case the model is used as backbone. If `False`, the feature maps will be 3D tensors of shape `(batch_size,
            seq_len, hidden_size)`. Only relevant for [`BeitBackbone`].

    Example:

    ```python
    >>> from transformers import BeitConfig, BeitModel

    >>> # Initializing a BEiT beit-base-patch16-224-pt22k style configuration
    >>> configuration = BeitConfig()

    >>> # Initializing a model (with random weights) from the beit-base-patch16-224-pt22k style configuration
    >>> model = BeitModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```beiti    
vocab_sizei   hidden_size   num_hidden_layersnum_attention_headsi   intermediate_sizegelu
hidden_actg        hidden_dropout_probattention_probs_dropout_probg{Gz?initializer_rangeg-q=layer_norm_eps   
image_size   
patch_sizer   num_channelsFuse_mask_token use_absolute_position_embeddingsuse_relative_position_bias!use_shared_relative_position_biasg?layer_scale_init_valuedrop_path_rateTuse_mean_pooling)      r      .pool_scalesuse_auxiliary_headg?auxiliary_loss_weight   auxiliary_channelsr$   auxiliary_num_convsauxiliary_concat_input   semantic_loss_ignore_indexN_out_features_out_indicesadd_fpnreshape_hidden_statesc                 L   d|v r%|j                  d      |j                  d      |d<   dgt        d| j                  dz         D cg c]  }d| 	 c}z   | _        | j                  |j                  dd       |j                  dd              t        |   di | y c c}w )	Nsegmentation_indicesout_indicesstemr$   stageout_features)r6   r9    )getpopranger   stage_names"set_output_features_output_indicessuper__post_init__)selfkwargsidx	__class__s      |/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/transformers/models/beit/configuration_beit.pyrA   zBeitConfig.__post_init__h   s    !V+

=0I0Q$*JJ/E$FF=! #8aI_I_bcIc@d&ese}&ee//

=$7fjjQ_aeFf 	0 	
 	'' 'fs   B!)-__name__
__module____qualname____doc__
model_typer   int__annotations__r   r   r   r   r   strr   floatr   r   r   r   listtupler   r   r   boolr   r   r    r!   r"   r#   r'   r(   r)   r+   r,   r-   r/   r0   r1   r2   r3   rA   __classcell__)rE   s   @rF   r
   r
      s   *X JJKs!!!s!J'**03 %#+3#u#!NE!47Jd3i%S/1746Jd3i%S/16L# ND -2$d2',,.3%t3$'E'"%NECK%!d!/;KcU38_,;###&5&!!  #(D(&))&*M49t#*%)L$s)d")GT"&4&
( 
(    r
   N)rJ   huggingface_hub.dataclassesr   backbone_utilsr   configuration_utilsr   utilsr   r
   __all__r:   rT   rF   <module>rZ      sQ     . 1 3 # BCY($&6 Y(  DY(x .rT   