+
    œ°³jš*  ã                   ó  € ^ RI Ht ^ RIt^ RIHt ^ RIHt ^RIHt ^RIH	t	 ^RI
HtHt ^RIHt ^R	IHtHtHtHtHtHtHtHtHtHtHt ]! R
R7      ] ! R R]4      4       4       t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t  ! R R]4      t!]! RR7      ] ! R R]4      4       4       t" ! R R]4      t# ! R  R!]4      t$ ! R" R#]4      t% ! R$ R%]4      t& ! R& R']4      t'. R(Ot(R# ))é    )Ú	dataclassN)Ústrict)Únn)ÚModelOutput)ÚUnpack)ÚTransformersKwargsÚauto_docstring)Ú
EomtConfig)ÚEomtEmbeddingsÚEomtForUniversalSegmentationÚ	EomtLayerÚEomtLayerNorm2dÚEomtLayerScaleÚEomtMLPÚEomtPatchEmbeddingsÚEomtPreTrainedModelÚEomtScaleBlockÚEomtScaleLayerÚEomtSwiGLUFFNz&tue-mps/videomt-dinov2-small-ytvis2019)Ú
checkpointc                   ó   € ] tR t^(tRtRtR# )ÚVideomtConfigÚvideomt© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
model_typeÚ__static_attributes__r   ó    Úl/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/videomt/modular_videomt.pyr   r   (   s	   † ð „Jr!   r   c                   ó2   a € ] tR t^.t o V 3R lR ltRtV tR# )ÚVideomtPatchEmbeddingsc                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )é   Úpixel_valuesÚreturn©ÚtorchÚTensor)ÚformatÚ__classdict__s   "€r"   Ú__annotate__Ú#VideomtPatchEmbeddings.__annotate__/   s#   ø€ ÷ 
ñ 
¡E§L¡Lð 
±U·\±\ñ 
r!   c                óD  € VP                   ^,          pW P                  8w  d   \        RV P                   RV R24      hVP                  V P                  P
                  P                  R7      pV P	                  V4      P                  ^4      P                  ^^4      pV# )é   zoMake sure that the channel dimension of the pixel values match with the one set in the configuration. Expected z	 but got Ú.)Údtype)	ÚshapeÚnum_channelsÚ
ValueErrorÚtoÚ
projectionÚweightr3   ÚflattenÚ	transpose)Úselfr'   r5   Ú
embeddingss   &&  r"   ÚforwardÚVideomtPatchEmbeddings.forward/   s˜   € Ø#×)Ñ)¨!Õ,ˆØ×,Ñ,Ô,ÜðØ!×.Ñ.Ð/¨y¸¸ÀaðIóð ð
 $—‘¨T¯_©_×-CÑ-C×-IÑ-I�ÓJˆØ—_‘_ \Ó2×:Ñ:¸1Ó=×GÑGÈÈ1ÓMˆ
ØÐr!   r   N)r   r   r   r   r>   r    Ú__classdictcell__©r-   s   @r"   r$   r$   .   s   ø‡ € ÷
ö 
r!   r$   c                   óT   a a€ ] tR t^<t oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚVideomtEmbeddingsc                ó    <€ V ^8„  d   QhRS[ /# ©r&   Úconfig©r   )r,   r-   s   "€r"   r.   ÚVideomtEmbeddings.__annotate__=   s   ø€ ÷ Nñ N™}ñ Nr!   c                ó¼   <€ \         SV `  V4       \        V4      V n        \        P
                  ! \        P                  ! ^^VP                  4      4      V n	        R# )r1   N)
ÚsuperÚ__init__r$   Úpatch_embeddingsr   Ú	Parameterr*   ÚzerosÚhidden_sizeÚ
mask_token©r<   rF   Ú	__class__s   &&€r"   rK   ÚVideomtEmbeddings.__init__=   s@   ø€ Ü‰Ñ˜Ô Ü 6°vÓ >ˆÔÜŸ,š,¤u§{¢{°1°a¸×9KÑ9KÓ'LÓMˆŽr!   c                óv   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  /# )r&   r'   Úbool_masked_posNr(   r)   )r,   r-   s   "€r"   r.   rH   B   s7   ø€ ÷ ñ ¡E§L¡Lð Á5Ç<Á<ÐRVÕCVð Ñbg×bnÑbnñ r!   c                ó6  € VP                   ^8X  dG   VP                  w  r4rVpVP                  W4,          WVV4      pVe   VP                  W4,          R4      pM8Ve5   VP                   ^8”  d$   VP                  VP                  ^ ,          R4      pVP                  ^ ,          pV P                  V4      pVe\   VP	                  VP
                  \        P                  R7      P                  R4      p	\        P                  ! W�P                  V4      pV P                  P                  VRR4      p
V P                  P                  VRR4      pW€P                  V P                  4      ,           p\        P                   ! W«V.^R7      pV P#                  V4      pV# )é   )Údevicer3   ©Údiméÿÿÿÿ)Úndimr4   ÚreshaperL   r7   rX   r*   ÚboolÚ	unsqueezeÚwhererP   Ú	cls_tokenÚexpandÚregister_tokensÚposition_embeddingsÚposition_idsÚcatÚdropout)r<   r'   rU   Ú
batch_sizeÚ
num_framesr5   ÚheightÚwidthr=   ÚmaskÚ
cls_tokensrc   s   &&&         r"   r>   ÚVideomtEmbeddings.forwardB   sa  € Ø×Ñ Ô!ØBN×BTÑBTÑ?ˆJ L¸%Ø'×/Ñ/°
Õ0GÈÐ_dÓeˆLàÒ*Ø"1×"9Ñ"9¸*Õ:QÐSUÓ"V�øØÒ(¨_×-AÑ-AÀAÔ-EØ-×5Ñ5°o×6KÑ6KÈAÕ6NÐPRÓSˆOà!×'Ñ'¨Õ*ˆ
Ø×*Ñ*¨<Ó8ˆ
àÒ&Ø"×%Ñ%¨Z×->Ñ->ÄeÇjÁjÐ%ÓQ×[Ñ[Ð\^Ó_ˆDÜŸš T¯?©?¸JÓGˆJà—^‘^×*Ñ*¨:°r¸2Ó>ˆ
Ø×.Ñ.×5Ñ5°jÀ"ÀbÓIˆà×":Ñ":¸4×;LÑ;LÓ"MÕMˆ
Ü—Y’Y 
¸ZÐHÈaÔPˆ
Ø—\‘\ *Ó-ˆ
ØÐr!   )rP   rL   ©N)	r   r   r   r   rK   r>   r    r@   Ú__classcell__©rR   r-   s   @@r"   rC   rC   <   s    ù‡ € ÷Nó N÷
÷ ò r!   rC   c                   ó   € ] tR t^\tRtR# )Ú
VideomtMLPr   N©r   r   r   r   r    r   r!   r"   rs   rs   \   ó   † Ûr!   rs   c                   ó   € ] tR t^`tRtR# )ÚVideomtGatedMLPr   Nrt   r   r!   r"   rw   rw   `   ru   r!   rw   c                   ó   € ] tR t^dtRtR# )ÚVideomtLayerr   Nrt   r   r!   r"   ry   ry   d   ru   r!   ry   c                   ó   € ] tR t^htRtR# )ÚVideomtLayerScaler   Nrt   r   r!   r"   r{   r{   h   ru   r!   r{   a¨  
    Class for outputs of [`VideomtForUniversalSegmentationOutput`].

    This output can be directly passed to [`~VideomtVideoProcessor.post_process_semantic_segmentation`] or
    [`~VideomtVideoProcessor.post_process_instance_segmentation`] or
    [`~VideomtVideoProcessor.post_process_panoptic_segmentation`] to compute final segmentation maps. Please, see
    [`~VideomtVideoProcessor`] for details regarding usage.
    )Úcustom_introc                   óH   a € ] tR t^lt o RtRtRtRtRtRt	Rt
V 3R ltRtV tR# )Ú%VideomtForUniversalSegmentationOutputa<  
loss (`torch.Tensor`, *optional*):
    The computed loss, returned when labels are present.
class_queries_logits (`torch.FloatTensor`):
    A tensor of shape `(batch_size, num_queries, num_labels + 1)` representing the proposed classes for each
    query. Note the `+ 1` is needed because we incorporate the null class.
masks_queries_logits (`torch.FloatTensor`):
    A tensor of shape `(batch_size, num_queries, height, width)` representing the proposed masks for each
    query.
last_hidden_state (`torch.FloatTensor` of shape `(batch_size, num_channels, height, width)`):
    Last hidden states (final feature map) of the last layer.
hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
    Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for the output of each stage) of
    shape `(batch_size, sequence_length, hidden_size)`. Hidden-states all layers of the model.
attentions (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):
    Tuple of `tuple(torch.FloatTensor)` (one for each layer) of shape `(batch_size, num_heads, sequence_length,
    sequence_length)`. Self and Cross Attentions weights from transformer decoder.
Nc                óN  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[S[ P                  ,          R,          ;R&   S[S[ P                  ,          R,          ;R&   # )r&   NÚlossÚclass_queries_logitsÚmasks_queries_logitsÚlast_hidden_stateÚhidden_statesÚ
attentions)r*   ÚFloatTensorÚtuple)r,   r-   s   "€r"   r.   Ú2VideomtForUniversalSegmentationOutput.__annotate__l   s©   ø‡ ‚ ñ> ×
Ñ
˜dÕ
"Ñ)ñ? ñ@  ×+Ñ+¨dÕ2Ñ9ñA ñB  ×+Ñ+¨dÕ2Ñ9ñC ñD ×(Ñ(¨4Õ/Ñ6ñE ñF ™×*Ñ*Õ+¨dÕ2Ñ9ñG ñH ‘e×'Ñ'Õ(¨4Õ/Ñ6òI r!   r   )r   r   r   r   Ú__doc__r€   r�   r‚   rƒ   r„   r…   Ú__annotate_func__r    r@   rA   s   @r"   r~   r~   l   s5   ø‡ € ñð& &*€DØ59ÐØ59ÐØ26ÐØ59€MØ26€J÷I ƒ r!   r~   c                   ón   a a€ ] tR t^“t oRtRt]P                  ! 4       V3R lV 3R ll4       tRt	Vt
V ;t# )ÚVideomtPreTrainedModelÚpixel_values_videosc                ó8   <€ V ^8„  d   QhRS[ P                  RR/# )r&   Úmoduler(   N)r   ÚModule)r,   r-   s   "€r"   r.   Ú#VideomtPreTrainedModel.__annotate__˜   s   ø€ ÷ .ñ .¡B§I¡Ið .°$ñ .r!   c                ó¨   <€ \         SV `  V4       \        V\        4      '       d,   \        P
                  P                  VP                  4       R # R # ro   )rJ   Ú_init_weightsÚ
isinstancerC   r   ÚinitÚzeros_rP   )r<   r�   rR   s   &&€r"   r“   Ú$VideomtPreTrainedModel._init_weights—   s9   ø€ ä‰Ñ˜fÔ%Ü�fÔ/×0Ò0Ü�G‰G�N‰N˜6×,Ñ,Ö-ñ 1r!   r   )Úvideo)r   r   r   r   Úmain_input_nameÚinput_modalitiesr*   Úno_gradr“   r    r@   rp   rq   s   @@r"   rŒ   rŒ   “   s2   ù‡ € Ø+€OØ!Ðà
‡]‚]ƒ_÷.ò .ó ÷.ð .r!   rŒ   c                   ó   € ] tR t^žtRtR# )ÚVideomtLayerNorm2dr   Nrt   r   r!   r"   r�   r�   ž   ru   r!   r�   c                   ó   € ] tR t^¢tRtR# )ÚVideomtScaleLayerr   Nrt   r   r!   r"   rŸ   rŸ   ¢   ru   r!   rŸ   c                   ó   € ] tR t^¦tRtR# )ÚVideomtScaleBlockr   Nrt   r   r!   r"   r¡   r¡   ¦   ru   r!   r¡   c                   ó^   a a€ ] tR t^ªt oRtV3R lV 3R lltR tRV3R lR lltRtVt	V ;t
# )	ÚVideomtForUniversalSegmentationr�   c                ó    <€ V ^8„  d   QhRS[ /# rE   rG   )r,   r-   s   "€r"   r.   Ú,VideomtForUniversalSegmentation.__annotate__­   s   ø€ ÷ Oñ O™}ñ Or!   c                ó†   <€ \         SV `  V4       \        P                  ! VP                  VP                  4      V n        R # ro   )rJ   rK   r   ÚLinearrO   Úquery_updaterrQ   s   &&€r"   rK   Ú(VideomtForUniversalSegmentation.__init__­   s/   ø€ Ü‰Ñ˜Ô ÜŸYšY v×'9Ñ'9¸6×;MÑ;MÓNˆÖr!   c                ó   € \        R 4      h)zNot needed for Videomt)ÚAttributeError)Ú	attn_maskÚprobÚnum_query_tokensÚencoder_start_tokensrX   s   &&&&&r"   Ú_disable_attention_maskÚ7VideomtForUniversalSegmentation._disable_attention_mask±   s   € ÜÐ5Ó6Ð6r!   c                ó  <€ V ^8„  d   QhRS[ P                  R,          RS[S[ P                  ,          R,          RS[S[ P                  ,          R,          RS[S[ P                  ,          R,          RS[S[,          RS[/# )r&   r�   NÚmask_labelsÚclass_labelsÚpatch_offsetsÚkwargsr(   )r*   r+   Úlistr   r   r~   )r,   r-   s   "€r"   r.   r¥   ´   sˆ   ø€ ÷ O
ñ O
á"Ÿ\™\¨DÕ0ðO
ñ ™%Ÿ,™,Õ'¨$Õ.ðO
ñ ™5Ÿ<™<Õ(¨4Õ/ð	O
ñ
 ™EŸL™LÕ)¨DÕ0ðO
ñ Ñ+Õ,ðO
ñ 
/ñO
r!   c           
     óÀ  € RV9   d   \        R4      hVf   \        R4      hVP                  ^8w  d   \        R4      hVf   Ve   \        R4      hVP                  w  rgr‰p
VP                  Wg,          W‰V
4      pV P	                  V4      pV P
                  V P                  P                  ,
          pV P                  RV  F  pV! V4      pK  	  VP                  WgVP                  ^,          VP                  ^,          4      p. p. p. pRp\        V4       EFr  pVRV3,          pVfI   V P                  P                  R
,          P                  VRR4      P                  VP                  4      pMeV P!                  V4      P                  VP                  4      V P                  P                  R
,          P                  VP                  4      ,           p\"        P$                  ! VV3^R7      pV P                  VR  F  pV! V4      pK  	  V P'                  V4      pV P)                  V4      w  ppVP+                  V4       VP+                  V4       VP+                  V4       VRRV P                  P,                  1R3,          pEKu  	  \/        R\"        P$                  ! V^ R7      \"        P$                  ! V^ R7      \"        P$                  ! V^ R7      R	7      # )a°  
pixel_values_videos (`torch.Tensor`, *optional*):
    Video inputs of shape `(batch_size, num_frames, num_channels, height, width)`.
mask_labels (`list[torch.Tensor]`, *optional*):
    Not supported for 5D video inputs.
class_labels (`list[torch.LongTensor]`, *optional*):
    Not supported for 5D video inputs.
patch_offsets (`list[torch.Tensor]`, *optional*):
    Unused for video inputs and only kept for modular compatibility.
r'   zAUse `pixel_values_videos` with `VideomtForUniversalSegmentation`.Nz'You have to specify pixel_values_videoszyVideomtForUniversalSegmentation only supports 5D video inputs of shape (batch_size, num_frames, channels, height, width).z“Training with 5D video inputs is not supported in `VideomtForUniversalSegmentation`. Flatten frames and use `EomtForUniversalSegmentation` instead.ºNNNrY   )r€   r‚   r�   rƒ   )Nr¹   r¹   r[   )r6   r\   r4   r]   r=   Únum_hidden_layersrF   Ú
num_blocksÚlayersÚviewÚrangeÚqueryr9   rb   r7   rX   r¨   r*   rf   Ú	layernormÚpredictÚappendÚnum_queriesr~   )r<   r�   r³   r´   rµ   r¶   rh   ri   r5   rj   rk   Úflat_pixel_valuesr„   Úquery_start_idxÚlayer_moduleÚall_masks_queries_logitsÚall_class_queries_logitsÚall_last_hidden_statesÚpropagated_queryÚ	frame_idxÚframe_hidden_statesÚquery_tokensÚsequence_outputr‚   r�   s   &&&&&,                   r"   r>   Ú'VideomtForUniversalSegmentation.forward´   sÆ  € ð$ ˜VÔ#ÜÐ`ÓaÐaàÒ&ÜÐFÓGÐGà×#Ñ# qÔ(ÜðEóð ð
 Ò" lÒ&>ÜðQóð ð
 ?R×>WÑ>WÑ;ˆ
 °eØ/×7Ñ7¸
Õ8OÐQ]ÐglÓmÐàŸ™Ð(9Ó:ˆØ×0Ñ0°4·;±;×3IÑ3IÕIˆà ŸK™KÐ(8¨Ó9ˆLÙ(¨Ó7ŠMñ :ð &×*Ñ*¨:À=×CVÑCVÐWXÕCYÐ[h×[nÑ[nÐopÕ[qÓrˆà#%Ð Ø#%Ð Ø!#ÐØÐä˜z×*ˆIØ"/°°9°Õ"=ÐàÒ'Ø#Ÿz™z×0Ñ0°Õ<×CÑCÀJÐPRÐTVÓW×ZÑZÐ[n×[uÑ[uÓv‘à#×1Ñ1Ð2BÓC×FÑFÐGZ×GaÑGaÓbÐei×eoÑeo×evÑevØõfç‘"Ð(×/Ñ/Ó0õ 1�ô #(§)¢)¨\Ð;NÐ,OÐUVÔ"WÐà $§¡¨OÐ,<Ó =�Ù&2Ð3FÓ&GÒ#ñ !>ð #Ÿn™nÐ-@ÓAˆOØ9=¿¹ÀoÓ9VÑ6Ð Ð"6à$×+Ñ+Ð,@ÔAØ$×+Ñ+Ð,@ÔAØ"×)Ñ)¨/Ô:Ø2°1Ð6O¸¿¹×8OÑ8OÐ6OÐQRÐ3RÕSÓñ) +ô, 5ØÜ!&§¢Ð+CÈÔ!KÜ!&§¢Ð+CÈÔ!KÜ#ŸišiÐ(>ÀAÔFô	
ð 	
r!   )r¨   )NNNN)r   r   r   r   r™   rK   r°   r>   r    r@   rp   rq   s   @@r"   r£   r£   ª   s-   ù‡ € Ø+€O÷Oó Oò7÷O
÷ O
ò O
r!   r£   )r   rŒ   r£   ))Údataclassesr   r*   Úhuggingface_hub.dataclassesr   r   Ú
file_utilsr   Úprocessing_utilsr   Úutilsr   r	   Úeomt.configuration_eomtr
   Úeomt.modeling_eomtr   r   r   r   r   r   r   r   r   r   r   r   r$   rC   rs   rw   ry   r{   r~   rŒ   r�   rŸ   r¡   r£   Ú__all__r   r!   r"   Ú<module>rØ      s  ðõ "ã Ý .Ý å %Ý &ß 7Ý 0÷÷ ÷ ñ ñ ÐCÔDØô�Jó ó ó EðôÐ0ô ô˜ô ô@	�ô 	ô	�mô 	ô	�9ô 	ô	˜ô 	ñ ðô	ð ô7¨Kó 7ó ó	ð7ô8.Ð0ô .ô	˜ô 	ô	˜ô 	ô	˜ô 	ôY
Ð&Bô Y
òx‚r!   