ó
    ‡Ž¡j7  ã                   óx   • 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	  \" SS	9\ " S
 S\5      5       5       r
S/rg)é    )Ústricté   )Ú%consolidate_backbone_kwargs_to_config)ÚPreTrainedConfig)Úauto_docstringé   )Ú
AutoConfigz"Intellindust/DEIMv2_HGNetv2_N_COCO)Ú
checkpointc                   ó   ^ • \ rS rSr% SrSrS\0rSS/rSSS	.r	S
r
\\S'   Sr\S-  \S'   Sr\\S'   Sr\\S'   Sr\\-  S-  \S'   Sr\\S'   Sr\\S'   Sr\\   \\S4   -  \S'   Sr\\   \\S4   -  \S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\-  \S '   Sr\\-  \S!'   S"r \\   \\S4   -  \S#'   S$r!\\S%'   S&r"\#\S''   S(r$\#\S)'   Sr%\\   \\\4   -  S-  \S*'   S+r&\\S,'   S-r'\\S.'   Sr(\\S'   S/r)\\S0'   S1r*\\   \\S4   -  \S2'   Sr+\\S3'   S4r,\\S5'   S6r-\\\   -  \S7'   S8r.\\S9'   Sr/\\S:'   S;r0\#\S<'   Sr1\\-  \S='   S>r2\\S?'   S@r3\\SA'   S-r4\\SB'   S+r5\\SC'   Sr6\\\   -  S-  \SD'   Sr7\\SE'   SFr8\\SG'   SHr9\\SI'   SHr:\\SJ'   SKr;\\SL'   SHr<\\SM'   Sr=\\SN'   Sr>\\SO'   SPr?\\SQ'   SHr@\\SR'   S-rA\\SS'   SKrB\\ST'   SHrC\\SU'   SVrD\\SW'   SXrE\\SY'   SZrF\\S['   S\rG\\S]'   S-rH\\-  \S^'   S_rI\\S`'   SarJ\\Sb'   S-rK\\Sc'   S6rL\\Sd'   SerM\\Sf'   SgrN\\Sh'   S@rO\\Si'   SjrP\#\Sk'   S@rQ\\Sl'   SrR\\Sm'   SrS\\Sn'   S-rT\\So'   SrU\\Sp'   SrV\S-  \Sq'   SrrW\#\Ss'   StrX\\Su'   SvrY\#\Sw'   SrZ\\Sx'   S+r[\\Sy'   Sr\\\Sz'   U 4S{ jr]S| r^S}r_U =r`$ )~ÚDeimv2Configé   aP  
initializer_bias_prior_prob (`float`, *optional*):
    The prior probability used by the bias initializer to initialize biases for `enc_score_head` and `class_embed`.
    If `None`, `prior_prob` computed as `prior_prob = 1 / (num_labels + 1)` while initializing model weights.
freeze_backbone_batch_norms (`bool`, *optional*, defaults to `True`):
    Whether to freeze the batch normalization layers in the backbone.
encoder_in_channels (`list`, *optional*, defaults to `[512, 1024, 2048]`):
    Multi level features input for encoder.
feat_strides (`list[int]`, *optional*, defaults to `[8, 16, 32]`):
    Strides used in each feature map.
encode_proj_layers (`list[int]`, *optional*, defaults to `[2]`):
    Indexes of the projected layers to be used in the encoder.
positional_encoding_temperature (`int`, *optional*, defaults to 10000):
    The temperature parameter used to create the positional encodings.
encoder_activation_function (`str`, *optional*, defaults to `"gelu"`):
    The non-linear activation function (function or string) in the encoder and pooler.
eval_size (`list[int]` or `tuple[int, int]`, *optional*):
    Height and width used to computes the effective height and width of the position embeddings after taking
    into account the stride.
normalize_before (`bool`, *optional*, defaults to `False`):
    Determine whether to apply layer normalization in the transformer encoder layer before self-attention and
    feed-forward modules.
hidden_expansion (`float`, *optional*, defaults to 1.0):
    Expansion ratio to enlarge the dimension size of RepVGGBlock and CSPRepLayer.
num_queries (`int`, *optional*, defaults to 300):
    Number of object queries.
decoder_in_channels (`list`, *optional*, defaults to `[256, 256, 256]`):
    Multi level features dimension for decoder.
num_feature_levels (`int`, *optional*, defaults to 3):
    The number of input feature levels.
decoder_n_points (`int`, *optional*, defaults to 4):
    The number of sampled keys in each feature level for each attention head in the decoder.
decoder_activation_function (`str`, *optional*, defaults to `"relu"`):
    The non-linear activation function (function or string) in the decoder.
num_denoising (`int`, *optional*, defaults to 100):
    The total number of denoising tasks or queries to be used for contrastive denoising.
label_noise_ratio (`float`, *optional*, defaults to 0.5):
    The fraction of denoising labels to which random noise should be added.
box_noise_scale (`float`, *optional*, defaults to 1.0):
    Scale or magnitude of noise to be added to the bounding boxes.
learn_initial_query (`bool`, *optional*, defaults to `False`):
    Indicates whether the initial query embeddings for the decoder should be learned during training.
anchor_image_size (`tuple[int, int]`, *optional*):
    Height and width of the input image used during evaluation to generate the bounding box anchors.
with_box_refine (`bool`, *optional*, defaults to `True`):
    Whether to apply iterative bounding box refinement.
matcher_alpha (`float`, *optional*, defaults to 0.25):
    Parameter alpha used by the Hungarian Matcher.
matcher_gamma (`float`, *optional*, defaults to 2.0):
    Parameter gamma used by the Hungarian Matcher.
matcher_class_cost (`float`, *optional*, defaults to 2.0):
    The relative weight of the class loss used by the Hungarian Matcher.
matcher_bbox_cost (`float`, *optional*, defaults to 5.0):
    The relative weight of the bounding box loss used by the Hungarian Matcher.
matcher_giou_cost (`float`, *optional*, defaults to 2.0):
    The relative weight of the giou loss used by the Hungarian Matcher.
use_focal_loss (`bool`, *optional*, defaults to `True`):
    Parameter informing if focal loss should be used.
focal_loss_alpha (`float`, *optional*, defaults to 0.75):
    Parameter alpha used to compute the focal loss.
focal_loss_gamma (`float`, *optional*, defaults to 2.0):
    Parameter gamma used to compute the focal loss.
weight_loss_vfl (`float`, *optional*, defaults to 1.0):
    Relative weight of the varifocal loss in the object detection loss.
weight_loss_bbox (`float`, *optional*, defaults to 5.0):
    Relative weight of the L1 bounding box loss in the object detection loss.
weight_loss_giou (`float`, *optional*, defaults to 2.0):
    Relative weight of the generalized IoU loss in the object detection loss.
weight_loss_fgl (`float`, *optional*, defaults to 0.15):
    Relative weight of the fine-grained localization loss in the object detection loss.
weight_loss_ddf (`float`, *optional*, defaults to 1.5):
    Relative weight of the decoupled distillation focal loss in the object detection loss.
eval_idx (`int`, *optional*, defaults to -1):
    Index of the decoder layer to use for evaluation.
layer_scale (`float`, *optional*, defaults to `1.0`):
    Scaling factor for the hidden dimension in later decoder layers.
max_num_bins (`int`, *optional*, defaults to 32):
    Maximum number of bins for the distribution-guided bounding box refinement.
reg_scale (`float`, *optional*, defaults to 4.0):
    Scale factor for the regression distribution.
depth_mult (`float`, *optional*, defaults to 1.0):
    Multiplier for the number of blocks in RepNCSPELAN5 layers.
top_prob_values (`int`, *optional*, defaults to 4):
    Number of top probability values to consider from each corner's distribution.
lqe_hidden_dim (`int`, *optional*, defaults to 64):
    Hidden dimension size for the Location Quality Estimator (LQE) network.
lqe_layers (`int`, *optional*, defaults to 2):
    Number of layers in the Location Quality Estimator MLP.
decoder_offset_scale (`float`, *optional*, defaults to 0.5):
    Offset scale used in deformable attention.
decoder_method (`str`, *optional*, defaults to `"default"`):
    The method to use for the decoder: `"default"` or `"discrete"`.
up (`float`, *optional*, defaults to 0.5):
    Controls the upper bounds of the Weighting Function.
weight_loss_mal (`float`, *optional*, defaults to 1.0):
    Relative weight of the matching auxiliary loss in the object detection loss.
use_dense_one_to_one (`bool`, *optional*, defaults to `True`):
    Whether to use dense one-to-one matching across decoder layers.
mal_alpha (`float`, *optional*):
    Alpha parameter for the Matching Auxiliary Loss (MAL). If `None`, uses `focal_loss_alpha`.
encoder_fuse_op (`str`, *optional*, defaults to `"sum"`):
    Fusion operation used in the encoder FPN. DEIMv2 uses `"sum"` instead of D-FINE's `"cat"`.
spatial_tuning_adapter_inplanes (`int`, *optional*, defaults to 16):
    Number of input planes for the STA convolutional stem.
encoder_type (`str`, *optional*, defaults to `"hybrid"`):
    Type of encoder to use. `"hybrid"` uses the full HybridEncoder with AIFI, FPN, and PAN.
    `"lite"` uses the lightweight LiteEncoder with GAP fusion for smaller variants (Atto, Femto, Pico).
use_gateway (`bool`, *optional*, defaults to `True`):
    Whether to use the gateway mechanism (cross-attention gating) in decoder layers. When `False`,
    uses RMSNorm on the encoder attention output instead.
share_bbox_head (`bool`, *optional*, defaults to `False`):
    Whether to share the bounding box prediction head across all decoder layers.
encoder_has_trailing_conv (`bool`, *optional*, defaults to `True`):
    Whether the encoder's CSP blocks include a trailing 3x3 convolution after the bottleneck path.
    `True` for RepNCSPELAN4 (used by HGNetV2 N and LiteEncoder variants).
    `False` for RepNCSPELAN5 (used by DINOv3 variants).
Údeimv2Úbackbone_configÚbasicÚ
bottleneckÚd_modelÚencoder_attention_heads)Úhidden_sizeÚnum_attention_headsg{®Gáz„?Úinitializer_rangeNÚinitializer_bias_prior_probgñhãˆµøä>Úlayer_norm_epsÚbatch_norm_epsTÚfreeze_backbone_batch_normsé   Úencoder_hidden_dim)i   é   i   .Úencoder_in_channels)é   é   é    Úfeat_stridesé   Úencoder_layersr   Úencoder_ffn_dimr   g        ÚdropoutÚactivation_dropout)r   Úencode_proj_layersi'  Úpositional_encoding_temperatureÚgeluÚencoder_activation_functionÚsiluÚactivation_functionÚ	eval_sizeFÚnormalize_beforeg      ð?Úhidden_expansioni,  Únum_queries)r   r   r   Údecoder_in_channelsÚdecoder_ffn_dimr   Únum_feature_levelsé   Údecoder_n_pointsé   Údecoder_layersÚdecoder_attention_headsÚreluÚdecoder_activation_functionÚattention_dropoutéd   Únum_denoisingg      à?Úlabel_noise_ratioÚbox_noise_scaleÚlearn_initial_queryÚanchor_image_sizeÚwith_box_refineg      Ð?Úmatcher_alphag       @Úmatcher_gammaÚmatcher_class_costg      @Úmatcher_bbox_costÚmatcher_giou_costÚuse_focal_lossÚauxiliary_lossg      è?Úfocal_loss_alphaÚfocal_loss_gammaÚweight_loss_vflÚweight_loss_bboxÚweight_loss_gioug333333Ã?Úweight_loss_fglg      ø?Úweight_loss_ddfg-Cëâ6?Úeos_coefficientéÿÿÿÿÚeval_idxÚlayer_scaler!   Úmax_num_binsg      @Ú	reg_scaleÚ
depth_multÚtop_prob_valuesé@   Úlqe_hidden_dimr   Ú
lqe_layersÚdecoder_offset_scaleÚdefaultÚdecoder_methodÚupÚtie_word_embeddingsÚis_encoder_decoderÚweight_loss_malÚuse_dense_one_to_oneÚ	mal_alphaÚsumÚencoder_fuse_opr    Úspatial_tuning_adapter_inplanesÚhybridÚencoder_typeÚuse_gatewayÚshare_bbox_headÚencoder_has_trailing_convc                 ó¬   >• [        SU R                  SS/ SQ0S.UD6u  U l        nU R                  U R                  -  U l        [
        TU ]  " S0 UD6  g )NÚhgnet_v2Úout_indices)r   r   r5   )r   Údefault_config_typeÚdefault_config_kwargs© )r   r   r   r9   Úhead_dimÚsuperÚ__post_init__)ÚselfÚkwargsÚ	__class__s     €Ú½C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\transformers/models/deimv2/configuration_deimv2.pyrv   ÚDeimv2Config.__post_init__ò   s`   ø€ Ü'Lð (
Ø ×0Ñ0Ø *Ø#0²)Ð"<ñ(
ð ñ	(
Ñ$ˆÔ˜fð Ÿ™¨×(DÑ(DÑDˆŒÜ‰ÒÑ' Ó'ó    c                 ó~  • [        U R                  [        5      (       aR  [        U R                  5      U R                  :w  a/  [        S[        U R                  5       SU R                   S35      eU R                  U R                  -  U R                  :w  a%  [        SU R                   SU R                   35      eg)zOPart of `@strict`-powered validation. Validates the architecture of the config.z!Length of decoder_n_points list (z!) must match num_feature_levels (z).zEmbedded dimension z. must be divisible by decoder_attention_heads N)	Ú
isinstancer6   ÚlistÚlenr4   Ú
ValueErrorrt   r9   r   )rw   s    rz   Úvalidate_architectureÚ"Deimv2Config.validate_architectureü   sÆ   € ä�d×+Ñ+¬T×2Ñ2Ü�4×(Ñ(Ó)¨T×-DÑ-DÓDÜ Ø7¼¸D×<QÑ<QÓ8RÐ7SÐStÐuy÷  vMñ  vMð  uNð  NPð  Qóð ð �=‰=˜4×7Ñ7Ñ7¸4¿<¹<ÓGÜØ% d§l¡l ^Ð3aÐbf×b~Ñb~Ðað  Aóð ð Hr|   )r   rt   )aÚ__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
model_typer	   Úsub_configsÚlayer_typesÚattribute_mapr   ÚfloatÚ__annotations__r   r   r   r   Údictr   r   Úboolr   Úintr   r   Útupler"   r$   r%   r   r&   r'   r(   r)   r+   Ústrr-   r.   r/   r0   r   r1   r2   r3   r4   r6   r8   r9   r;   r<   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rT   rU   rV   rW   rX   rY   r[   r\   r]   r_   r`   ra   rb   rc   rd   re   rg   rh   rj   rk   rl   rm   rv   r‚   Ú__static_attributes__Ú__classcell__)ry   s   @rz   r   r      sá  ø‡ ñtðl €JØ$ jÐ1€KØ˜LÐ)€Kà Ø8ñ€Mð
  $Ð�uÓ#Ø04Ð ¨¡Ó4Ø €N�EÓ Ø €N�EÓ Ø6:€O�TÐ,Ñ,¨tÑ3Ó:Ø(,Ð Ó,ð "Ð˜Ó!Ø7HÐ˜˜c™ U¨3°¨8¡_Ñ4ÓHØ0;€L�$�s‘)˜e C¨ H™oÑ-Ó;Ø€N�CÓØ€O�SÓØ#$Ð˜SÓ$Ø€GˆU�S‰[ÓØ&)Ð˜ ™Ó)Ø6:Ð˜˜S™	 E¨#¨s¨(¡OÑ3Ó:Ø+0Ð# SÓ0Ø'-Ð Ó-Ø%Ð˜Ó%à48€Iˆt�C‰y˜5  c ™?Ñ*¨TÑ1Ó8Ø"Ð�dÓ"Ø!Ð�eÓ!ð €GˆSÓØ€K�ÓØ7FÐ˜˜c™ U¨3°¨8¡_Ñ4ÓFØ€O�SÓØÐ˜ÓØ()Ð�c˜D ™I‘oÓ)Ø€N�CÓØ#$Ð˜SÓ$Ø'-Ð Ó-Ø%(Ð�u˜s‘{Ó(Ø€M�3ÓØ"Ð�uÓ"Ø €O�UÓ Ø %Ð˜Ó%Ø04Ð�s˜T #™Y‘¨Ñ-Ó4Ø €O�TÓ ð  €M�5ÓØ€M�5ÓØ #Ð˜Ó#Ø"Ð�uÓ"Ø"Ð�uÓ"Ø€N�DÓØ€N�DÓØ"Ð�eÓ"Ø!Ð�eÓ!Ø €O�UÓ Ø!Ð�eÓ!Ø!Ð�eÓ!Ø!€O�UÓ!Ø €O�UÓ Ø!€O�UÓ!Ø€HˆcÓØ"€K��u‘Ó"Ø€L�#ÓØ€IˆuÓØ€J�ÓØ€O�SÓØ€N�CÓØ€J�ÓØ"%Ð˜%Ó%Ø#€N�CÓ#Ø€BˆƒOØ $Ð˜Ó$Ø#Ð˜Ó#Ø €O�UÓ Ø!%Ð˜$Ó%Ø"€Iˆu�t‰|Ó"Ø €O�SÓ Ø+-Ð# SÓ-Ø €L�#Ó Ø€K�ÓØ!€O�TÓ!Ø&*Ð˜tÓ*õ(÷ð r|   r   N)Úhuggingface_hub.dataclassesr   Úbackbone_utilsr   Úconfiguration_utilsr   Úutilsr   Úautor	   r   Ú__all__rs   r|   rz   Ú<module>rœ      sO   ðõ* /å CÝ 3Ý #Ý ñ
 Ð?Ñ@ØôfÐ#ó fó ó AðfðR Ð
�r|   