
    Pg                     l    d dl mZ d dlmZ ddlmZmZ  ej                  e      Z	 G d de      Z
dgZy)   )PretrainedConfig)logging   )CONFIG_MAPPING
AutoConfigc                   V     e Zd ZdZdZeedZ	 	 	 	 	 	 	 d
dededededef
 fd	Z	 xZ
S )ShieldGemma2Configa  
    This is the configuration class to store the configuration of a [`ShieldGemma2ForImageClassification`]. It is used to instantiate an
    ShieldGemma2ForImageClassification according to the specified arguments, defining the model architecture. Instantiating a configuration
    with the defaults will yield a similar configuration to that of the shieldgemma-2-4b-it.

    e.g. [google/gemma-3-4b](https://huggingface.co/google/gemma-3-4b)

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

    Args:
        text_config (`Union[ShieldGemma2TextConfig, dict]`, *optional*):
            The config object of the text backbone.
        vision_config (`Union[AutoConfig, dict]`,  *optional*):
            Custom vision config or dict.
        mm_tokens_per_image (`int`, *optional*, defaults to 256):
            The number of tokens per image embedding.
        boi_token_index (`int`, *optional*, defaults to 255999):
            The begin-of-image token index to wrap the image prompt.
        eoi_token_index (`int`, *optional*, defaults to 256000):
            The end-of-image token index to wrap the image prompt.
        image_token_index (`int`, *optional*, defaults to 262144):
            The image token index to encode the image prompt.
        initializer_range (`float`, *optional*, defaults to 0.02):
            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.


    Example:

    ```python
    >>> from transformers import ShieldGemma2ForConditionalGeneration, ShieldGemma2Config, SiglipVisionConfig, ShieldGemma2TextConfig

    >>> # Initializing a Siglip-like vision config
    >>> vision_config = SiglipVisionConfig()

    >>> # Initializing a ShieldGemma2 Text config
    >>> text_config = ShieldGemma2TextConfig()

    >>> # Initializing a ShieldGemma2 gemma-3-4b style configuration
    >>> configuration = ShieldGemma2Config(vision_config, text_config)

    >>> # Initializing a model from the gemma-3-4b style configuration
    >>> model = ShieldGemma2TextConfig(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```shieldgemma2)text_configvision_configmm_tokens_per_imageboi_token_indexeoi_token_indeximage_token_indexinitializer_rangec                    t        |t              r d|v r|d   nd|d<   t        |d      di |}n|t        d          }|| _        t        |t              r d|v r|d   nd|d<   t        |d      di |}n|t        d          }|| _        || _        || _        || _        || _        || _        || _	        t        	| ,  di | y )N
model_typesiglip_vision_modelgemma3_text )
isinstancedictr   r   r   r   r   r   r   r   super__init__)
selfr   r   r   r   r   r   r   kwargs	__class__s
            /var/www/html/suriana-translation/venv/lib/python3.12/site-packages/transformers/models/shieldgemma2/configuration_shieldgemma2.pyr   zShieldGemma2Config.__init__M   s     mT*/;}/Ll+Rg ,' +=+FGX-XM"*+@ACM*k4(EQU`E`L(AfsK%(\)BCRkRK (79K&*#6 ..!2!2"6"    )NN   i i  i   g{Gz?)__name__
__module____qualname____doc__r   r   sub_configsintfloatr   __classcell__)r   s   @r   r	   r	      sm    .`  J",zJK #&&&!(#'## !	##
 ## ## ## !## ##r   r	   N)configuration_utilsr   utilsr   autor   r   
get_loggerr!   loggerr	   __all__r   r   r   <module>r/      s>   " 4  - 
		H	%W#) W#t  
 r   