
    fTh                     r    S r SSKJr  SSKJr  SSKJrJr  \R                  " \	5      r
 " S S\\5      rS/rg)z>Dilated Neighborhood Attention Transformer model configuration   )PretrainedConfig)logging)BackboneConfigMixin*get_aligned_output_features_output_indicesc                      ^  \ rS rSrSrSrSSS.rSSS	/ S
Q/ SQS/ SQ/ SQ/ SQ/ SQ/SSSSSSSSSSS4U 4S jjrSrU =r	$ )DinatConfig   a  
This is the configuration class to store the configuration of a [`DinatModel`]. It is used to instantiate a Dinat
model according to the specified arguments, defining the model architecture. Instantiating a configuration with the
defaults will yield a similar configuration to that of the Dinat
[shi-labs/dinat-mini-in1k-224](https://huggingface.co/shi-labs/dinat-mini-in1k-224) architecture.

Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the
documentation from [`PretrainedConfig`] for more information.

Args:
    patch_size (`int`, *optional*, defaults to 4):
        The size (resolution) of each patch. NOTE: Only patch size of 4 is supported at the moment.
    num_channels (`int`, *optional*, defaults to 3):
        The number of input channels.
    embed_dim (`int`, *optional*, defaults to 64):
        Dimensionality of patch embedding.
    depths (`List[int]`, *optional*, defaults to `[3, 4, 6, 5]`):
        Number of layers in each level of the encoder.
    num_heads (`List[int]`, *optional*, defaults to `[2, 4, 8, 16]`):
        Number of attention heads in each layer of the Transformer encoder.
    kernel_size (`int`, *optional*, defaults to 7):
        Neighborhood Attention kernel size.
    dilations (`List[List[int]]`, *optional*, defaults to `[[1, 8, 1], [1, 4, 1, 4], [1, 2, 1, 2, 1, 2], [1, 1, 1, 1, 1]]`):
        Dilation value of each NA layer in the Transformer encoder.
    mlp_ratio (`float`, *optional*, defaults to 3.0):
        Ratio of MLP hidden dimensionality to embedding dimensionality.
    qkv_bias (`bool`, *optional*, defaults to `True`):
        Whether or not a learnable bias should be added to the queries, keys and values.
    hidden_dropout_prob (`float`, *optional*, defaults to 0.0):
        The dropout probability for all fully connected layers in the embeddings and encoder.
    attention_probs_dropout_prob (`float`, *optional*, defaults to 0.0):
        The dropout ratio for the attention probabilities.
    drop_path_rate (`float`, *optional*, defaults to 0.1):
        Stochastic depth rate.
    hidden_act (`str` or `function`, *optional*, defaults to `"gelu"`):
        The non-linear activation function (function or string) in the encoder. If string, `"gelu"`, `"relu"`,
        `"selu"` and `"gelu_new"` are supported.
    initializer_range (`float`, *optional*, defaults to 0.02):
        The standard deviation of the truncated_normal_initializer for initializing all weight matrices.
    layer_norm_eps (`float`, *optional*, defaults to 1e-05):
        The epsilon used by the layer normalization layers.
    layer_scale_init_value (`float`, *optional*, defaults to 0.0):
        The initial value for the layer scale. Disabled if <=0.
    out_features (`List[str]`, *optional*):
        If used as backbone, list of features to output. Can be any of `"stem"`, `"stage1"`, `"stage2"`, etc.
        (depending on how many stages the model has). If unset and `out_indices` is set, will default to the
        corresponding stages. If unset and `out_indices` is unset, will default to the last stage. Must be in the
        same order as defined in the `stage_names` attribute.
    out_indices (`List[int]`, *optional*):
        If used as backbone, list of indices of features to output. Can be any of 0, 1, 2, etc. (depending on how
        many stages the model has). If unset and `out_features` is set, will default to the corresponding stages.
        If unset and `out_features` is unset, will default to the last stage. Must be in the
        same order as defined in the `stage_names` attribute.

Example:

```python
>>> from transformers import DinatConfig, DinatModel

>>> # Initializing a Dinat shi-labs/dinat-mini-in1k-224 style configuration
>>> configuration = DinatConfig()

>>> # Initializing a model (with random weights) from the shi-labs/dinat-mini-in1k-224 style configuration
>>> model = DinatModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```dinat	num_heads
num_layers)num_attention_headsnum_hidden_layers   r   @   )r   r         )   r            )   r   r   )r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   g      @Tg        g?gelug{Gz?gh㈵>Nc                   > [         TU ]  " S0 UD6  Xl        X l        X0l        X@l        [        U5      U l        XPl        X`l	        Xpl
        Xl        Xl        Xl        Xl        Xl        Xl        Xl        Xl        ['        US[        U5      S-
  -  -  5      U l        UU l        S/[-        S[        U5      S-   5       Vs/ s H  nSU 3PM
     sn-   U l        [1        UUU R.                  S9u  U l        U l        g s  snf )Nr   r   stemstage)out_featuresout_indicesstage_names )super__init__
patch_sizenum_channels	embed_dimdepthslenr   r   kernel_size	dilations	mlp_ratioqkv_biashidden_dropout_probattention_probs_dropout_probdrop_path_rate
hidden_actlayer_norm_epsinitializer_rangeinthidden_sizelayer_scale_init_valueranger   r   _out_features_out_indices)selfr"   r#   r$   r%   r   r'   r(   r)   r*   r+   r,   r-   r.   r0   r/   r3   r   r   kwargsidx	__class__s                        e/var/www/auris/envauris/lib/python3.13/site-packages/transformers/models/dinat/configuration_dinat.pyr!   DinatConfig.__init__f   s    , 	"6"$("f+"&"" #6 ,H),$,!2 y1Vq+AAB&<#"8aVWX@Y&Z@Yse}@Y&ZZ0Z%;DL\L\1
-D- '[s   C=)r5   r6   r,   r%   r(   r-   r$   r.   r+   r2   r0   r'   r/   r3   r)   r#   r   r   r"   r*   r   )
__name__
__module____qualname____firstlineno____doc__
model_typeattribute_mapr!   __static_attributes____classcell__)r:   s   @r;   r   r      sl    CJ J  +)M l,>P%("'/
 /
    r   N)rA   configuration_utilsr   utilsr   utils.backbone_utilsr   r   
get_loggerr=   loggerr   __all__r   rF   r;   <module>rM      sB    E 3  c 
		H	%|
%'7 |
~ /rF   