Ë
    T^(h†  ã                   ó`   — d Z ddlmZ ddlmZ  ej
                  e«      Z G d„ de«      ZdgZ	y)zRegNet model configurationé   )ÚPretrainedConfig)Úloggingc                   óF   ‡ — e Zd ZdZdZddgZddg d¢g d¢d	dd
fˆ fd„	Zˆ xZS )ÚRegNetConfiga²  
    This is the configuration class to store the configuration of a [`RegNetModel`]. It is used to instantiate a RegNet
    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 RegNet
    [facebook/regnet-y-040](https://huggingface.co/facebook/regnet-y-040) architecture.

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

    Args:
        num_channels (`int`, *optional*, defaults to 3):
            The number of input channels.
        embedding_size (`int`, *optional*, defaults to 64):
            Dimensionality (hidden size) for the embedding layer.
        hidden_sizes (`List[int]`, *optional*, defaults to `[256, 512, 1024, 2048]`):
            Dimensionality (hidden size) at each stage.
        depths (`List[int]`, *optional*, defaults to `[3, 4, 6, 3]`):
            Depth (number of layers) for each stage.
        layer_type (`str`, *optional*, defaults to `"y"`):
            The layer to use, it can be either `"x" or `"y"`. An `x` layer is a ResNet's BottleNeck layer with
            `reduction` fixed to `1`. While a `y` layer is a `x` but with squeeze and excitation. Please refer to the
            paper for a detailed explanation of how these layers were constructed.
        hidden_act (`str`, *optional*, defaults to `"relu"`):
            The non-linear activation function in each block. If string, `"gelu"`, `"relu"`, `"selu"` and `"gelu_new"`
            are supported.
        downsample_in_first_stage (`bool`, *optional*, defaults to `False`):
            If `True`, the first stage will downsample the inputs using a `stride` of 2.

    Example:
    ```python
    >>> from transformers import RegNetConfig, RegNetModel

    >>> # Initializing a RegNet regnet-y-40 style configuration
    >>> configuration = RegNetConfig()
    >>> # Initializing a model from the regnet-y-40 style configuration
    >>> model = RegNetModel(configuration)
    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```
    ÚregnetÚxÚyr   é    )é€   éÀ   i   i@  )é   é   é   r   é@   Úreluc                 ó  •— t        ‰	| �  di |¤Ž || j                  vr*t        d|› ddj	                  | j                  «      › �«      ‚|| _        || _        || _        || _        || _	        || _
        || _        d| _        y )Nzlayer_type=z is not one of ú,T© )ÚsuperÚ__init__Úlayer_typesÚ
ValueErrorÚjoinÚnum_channelsÚembedding_sizeÚhidden_sizesÚdepthsÚgroups_widthÚ
layer_typeÚ
hidden_actÚdownsample_in_first_stage)
Úselfr   r   r   r   r   r   r    ÚkwargsÚ	__class__s
            €úm/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/transformers/models/regnet/configuration_regnet.pyr   zRegNetConfig.__init__E   sˆ   ø€ ô 	‰ÑÑ"˜6Ò"Ø˜T×-Ñ-Ñ-Ü˜{¨:¨,°oÀcÇhÁhÈt×O_ÑO_ÓF`ÐEaÐbÓcÐcØ(ˆÔØ,ˆÔØ(ˆÔØˆŒØ(ˆÔØ$ˆŒØ$ˆŒà)-ˆÕ&ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
model_typer   r   Ú__classcell__)r$   s   @r%   r   r      s:   ø„ ñ'ðR €JØ˜�*€Kð ØÚ*ÚØØØ÷.ñ .r&   r   N)
r*   Úconfiguration_utilsr   Úutilsr   Ú
get_loggerr'   Úloggerr   Ú__all__r   r&   r%   ú<module>r2      s>   ðñ !å 3Ý ð 
ˆ×	Ñ	˜HÓ	%€ôC.Ð#ô C.ðL Ð
�r&   