o
    i                     @   sL   d dl mZ d dlmZ ddlmZmZ eeZ	G dd deZ
dgZdS )   )PretrainedConfig)logging   )CONFIG_MAPPING
AutoConfigc                       s`   e Zd ZdZdZddddZeedZ					
			ddedededede	f
 fddZ
  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image_token_indexboi_token_indexeoi_token_index)image_token_idboi_token_ideoi_token_id)text_configvision_configN         {Gz?mm_tokens_per_imageinitializer_rangec           	         s   t |tr|dd|d< t|d  di |}n	|d u r"td  }|| _t |tr>|dd|d< t|d  di |}n	|d u rGtd  }|| _|| _|| _|| _|| _|| _	|| _
t jdi | d S )N
model_typesiglip_vision_modelgemma3_text )
isinstancedictgetr   r   r   r   r
   r   r	   r   super__init__)	selfr   r   r   r
   r   r	   r   kwargs	__class__r   x/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/transformers/models/shieldgemma2/configuration_shieldgemma2.pyr    R   s&   



zShieldGemma2Config.__init__)NNr   r   r   r   r   )__name__
__module____qualname____doc__r   attribute_mapr   sub_configsintfloatr    __classcell__r   r   r#   r%   r      s4    0
r   N)configuration_utilsr   utilsr   autor   r   
get_loggerr&   loggerr   __all__r   r   r   r%   <module>   s   

]