
    fTh9                         S r SSKrSSKJr  SSKJr  SSKJr  SSKJ	r	  SS	K
Jr  \R                  " \5      r " S
 S\5      rS/rg)zDPT model configuration    N   )PretrainedConfig)logging) verify_backbone_config_arguments   )CONFIG_MAPPING)	BitConfigc            $          ^  \ rS rSrSrSrSSSSSSSS	S
SSSSS/ SQS/ SQ/ SQSSSSSSSSS/ SQSS/SSSSSSS4$U 4S jjrS r\S  5       r	S!r
U =r$ )"	DPTConfig   a  
This is the configuration class to store the configuration of a [`DPTModel`]. It is used to instantiate an DPT
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 DPT
[Intel/dpt-large](https://huggingface.co/Intel/dpt-large) architecture.

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


Args:
    hidden_size (`int`, *optional*, defaults to 768):
        Dimensionality of the encoder layers and the pooler layer.
    num_hidden_layers (`int`, *optional*, defaults to 12):
        Number of hidden layers in the Transformer encoder.
    num_attention_heads (`int`, *optional*, defaults to 12):
        Number of attention heads for each attention layer in the Transformer encoder.
    intermediate_size (`int`, *optional*, defaults to 3072):
        Dimensionality of the "intermediate" (i.e., feed-forward) layer in the Transformer encoder.
    hidden_act (`str` or `function`, *optional*, defaults to `"gelu"`):
        The non-linear activation function (function or string) in the encoder and pooler. If string, `"gelu"`,
        `"relu"`, `"selu"` and `"gelu_new"` are supported.
    hidden_dropout_prob (`float`, *optional*, defaults to 0.0):
        The dropout probability for all fully connected layers in the embeddings, encoder, and pooler.
    attention_probs_dropout_prob (`float`, *optional*, defaults to 0.0):
        The dropout ratio for the attention probabilities.
    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-12):
        The epsilon used by the layer normalization layers.
    image_size (`int`, *optional*, defaults to 384):
        The size (resolution) of each image.
    patch_size (`int`, *optional*, defaults to 16):
        The size (resolution) of each patch.
    num_channels (`int`, *optional*, defaults to 3):
        The number of input channels.
    is_hybrid (`bool`, *optional*, defaults to `False`):
        Whether to use a hybrid backbone. Useful in the context of loading DPT-Hybrid models.
    qkv_bias (`bool`, *optional*, defaults to `True`):
        Whether to add a bias to the queries, keys and values.
    backbone_out_indices (`List[int]`, *optional*, defaults to `[2, 5, 8, 11]`):
        Indices of the intermediate hidden states to use from backbone.
    readout_type (`str`, *optional*, defaults to `"project"`):
        The readout type to use when processing the readout token (CLS token) of the intermediate hidden states of
        the ViT backbone. Can be one of [`"ignore"`, `"add"`, `"project"`].

        - "ignore" simply ignores the CLS token.
        - "add" passes the information from the CLS token to all other tokens by adding the representations.
        - "project" passes information to the other tokens by concatenating the readout to all other tokens before
          projecting the
        representation to the original feature dimension D using a linear layer followed by a GELU non-linearity.
    reassemble_factors (`List[int]`, *optional*, defaults to `[4, 2, 1, 0.5]`):
        The up/downsampling factors of the reassemble layers.
    neck_hidden_sizes (`List[str]`, *optional*, defaults to `[96, 192, 384, 768]`):
        The hidden sizes to project to for the feature maps of the backbone.
    fusion_hidden_size (`int`, *optional*, defaults to 256):
        The number of channels before fusion.
    head_in_index (`int`, *optional*, defaults to -1):
        The index of the features to use in the heads.
    use_batch_norm_in_fusion_residual (`bool`, *optional*, defaults to `False`):
        Whether to use batch normalization in the pre-activate residual units of the fusion blocks.
    use_bias_in_fusion_residual (`bool`, *optional*, defaults to `True`):
        Whether to use bias in the pre-activate residual units of the fusion blocks.
    add_projection (`bool`, *optional*, defaults to `False`):
        Whether to add a projection layer before the depth estimation head.
    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.
    semantic_loss_ignore_index (`int`, *optional*, defaults to 255):
        The index that is ignored by the loss function of the semantic segmentation model.
    semantic_classifier_dropout (`float`, *optional*, defaults to 0.1):
        The dropout ratio for the semantic classification head.
    backbone_featmap_shape (`List[int]`, *optional*, defaults to `[1, 1024, 24, 24]`):
        Used only for the `hybrid` embedding type. The shape of the feature maps of the backbone.
    neck_ignore_stages (`List[int]`, *optional*, defaults to `[0, 1]`):
        Used only for the `hybrid` embedding type. The stages of the readout layers to ignore.
    backbone_config (`Union[Dict[str, Any], PretrainedConfig]`, *optional*):
        The configuration of the backbone model. Only used in case `is_hybrid` is `True` or in case you want to
        leverage the [`AutoBackbone`] API.
    backbone (`str`, *optional*):
        Name of backbone to use when `backbone_config` is `None`. If `use_pretrained_backbone` is `True`, this
        will load the corresponding pretrained weights from the timm or transformers library. If `use_pretrained_backbone`
        is `False`, this loads the backbone's config and uses that to initialize the backbone with random weights.
    use_pretrained_backbone (`bool`, *optional*, defaults to `False`):
        Whether to use pretrained weights for the backbone.
    use_timm_backbone (`bool`, *optional*, defaults to `False`):
        Whether to load `backbone` from the timm library. If `False`, the backbone is loaded from the transformers
        library.
    backbone_kwargs (`dict`, *optional*):
        Keyword arguments to be passed to AutoBackbone when loading from a checkpoint
        e.g. `{'out_indices': (0, 1, 2, 3)}`. Cannot be specified if `backbone_config` is set.
    pooler_output_size (`int`, *optional*):
       Dimensionality of the pooler layer. If None, defaults to `hidden_size`.
    pooler_act (`str`, *optional*, defaults to `"tanh"`):
       The activation function to be used by the pooler. Keys of ACT2FN are supported for Flax and
       Pytorch, and elements of https://www.tensorflow.org/api_docs/python/tf/keras/activations are
       supported for Tensorflow.

Example:

```python
>>> from transformers import DPTModel, DPTConfig

>>> # Initializing a DPT dpt-large style configuration
>>> configuration = DPTConfig()

>>> # Initializing a model from the dpt-large style configuration
>>> model = DPTModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```dpt      i   gelug        g{Gz?g-q=     r   FT)r            project)   r      g      ?)`      r   r      Ng?   g?)r   i      r   r   r   tanhc%                   > [         T)U ]  " S0 U%D6  Xl        Xl        Sn&U R                  (       a  Uc  SS/ SQ/ SQSS.n[	        U[
        5      (       a!  [        R                  S5        [        S0 UD6nO1[	        U[        5      (       a  UnO[        S	UR                   S
35      eUU l        UU l        UU l        US:w  a  [        S5      eOUc  Ube  Sn&[	        U[
        5      (       a+  UR                  S5      n'[         U'   n(U(R#                  U5      nUU l        S U l        / U l        [%        U!U UUU"S9  OS U l        S U l        / U l        UU l        U U l        U!U l        U"U l        X l        X0l        X@l        X`l        Xpl        Xl        Xl        Xl        Xl        Xl         U&U l!        U&(       a  S OUU l"        US;  a  [        S5      eXPl#        Xl$        UU l%        UU l&        UU l'        UU l(        UU l)        UU l*        UU l+        UU l,        UU l-        UU l.        UU l/        UU l0        U#(       a  U#OUU l1        U$U l2        g )NFsame
bottleneck)r   r   	   )stage1stage2stage3T)global_padding
layer_typedepthsout_featuresembedding_dynamic_paddingz.Initializing the config with a `BiT` backbone.zBbackbone_config must be a dictionary or a `PretrainedConfig`, got .r   z<Readout type must be 'project' when using `DPT-hybrid` mode.
model_type)use_timm_backboneuse_pretrained_backbonebackbonebackbone_configbackbone_kwargs)ignoreaddr   z8Readout_type must be one of ['ignore', 'add', 'project'] )3super__init__hidden_size	is_hybrid
isinstancedictloggerinfor	   r   
ValueError	__class__r1   backbone_featmap_shapeneck_ignore_stagesgetr   	from_dictr   r0   r/   r.   r2   num_hidden_layersnum_attention_headsintermediate_sizehidden_dropout_probattention_probs_dropout_problayer_norm_eps
image_size
patch_sizenum_channelsqkv_biasuse_autobackbonebackbone_out_indices
hidden_actinitializer_rangereadout_typereassemble_factorsneck_hidden_sizesfusion_hidden_sizehead_in_index!use_batch_norm_in_fusion_residualuse_bias_in_fusion_residualadd_projectionuse_auxiliary_headauxiliary_loss_weightsemantic_loss_ignore_indexsemantic_classifier_dropoutpooler_output_size
pooler_act)*selfr8   rD   rE   rF   rP   rG   rH   rQ   rI   rJ   rK   rL   r9   rM   rO   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r@   rA   r1   r0   r/   r.   r2   r^   r_   kwargsrN   backbone_model_typeconfig_classr?   s*                                            a/var/www/auris/envauris/lib/python3.13/site-packages/transformers/models/dpt/configuration_dpt.pyr7   DPTConfig.__init__   sx   P 	"6"&" >>&&,".'$B15# /400LM"+">o">O-=>>"1 XYhYrYrXsstu  $3D *@D'&8D#y( !_`` ) !_%@#/400&5&9&9,&G#-.AB"."8"8"I#2D *.D'&(D# -"3(?! / / $(D *.D'&(D# '>$!2. "3#6 !2#6 ,H),$$(  0,<DBV!;;WXX$!2("4!2"4*1R.+F(, #5%:"*D'+F(8J"4P[$    c                     [         R                  " U R                  5      nUS   b  U R                  R	                  5       US'   U R
                  R                  US'   U$ )z
Serializes this instance to a Python dictionary. Override the default [`~PretrainedConfig.to_dict`]. Returns:
    `Dict[str, any]`: Dictionary of all the attributes that make up this configuration instance,
r1   r-   )copydeepcopy__dict__r1   to_dictr?   r-   )r`   outputs     rd   rk   DPTConfig.to_dict  sU    
 t}}-#$0(,(<(<(D(D(FF$%#~~88|rf   c                 N    U R                   b  S[        U R                   5      0$ 0 $ )Nr1   )r1   type)r`   s    rd   sub_configsDPTConfig.sub_configs'  s*    BFBVBVBb!4(<(<#=>jhjjrf   )%rY   rH   r[   r0   r1   r@   r2   rO   rU   rV   rP   rG   r8   rJ   rQ   rF   r9   rI   rT   rA   rE   rL   rD   rK   r_   r^   rM   rR   rS   r]   r\   rN   rZ   rW   rX   r/   r.   )__name__
__module____qualname____firstlineno____doc__r-   r7   rk   propertyrp   __static_attributes____classcell__)r?   s   @rd   r   r      s    pd J %(*)-*/$(!#&$'0q6 %KF%P k krf   r   )rv   rh   configuration_utilsr   utilsr   utils.backbone_utilsr   auto.configuration_autor   bitr	   
get_loggerrr   r<   r   __all__r5   rf   rd   <module>r      sI      3  D 4  
		H	%Lk  Lk^ -rf   