+
    œ°³j‘<  ã                   ó  € ^ RI t^ RIt^ RIHt ^ RIHt ^RIH	t	 ^RI
HtHt ^RIHtHtHtHtHtHtHt ]! 4       '       d   ^ RIHt ]! 4       '       d   ^ RIHt  ! R R]4      t ! R	 R
]P4                  4      tRR ltR# )é    N)Ú!_is_torch_distributed_initialized)Úis_scipy_availableÚis_vision_available)ÚHungarianMatcherÚ_set_aux_lossÚbox_iouÚ	dice_lossÚgeneralized_box_iouÚnested_tensor_from_tensor_listÚsigmoid_focal_loss)Úcenter_to_corners_format)Úlinear_sum_assignmentc                   óN   a € ] tR t^(t o ]P
                  ! 4       R 4       tRtV tR# )ÚLwDetrHungarianMatcherc                ó¨  € VR,          P                   R,          w  rEVR,          P                  ^ ^4      P                  4       pVR,          P                  ^ ^4      p\        P                  ! V Uu. uF  qˆR,          NK  	  up4      p	\        P                  ! V Uu. uF  qˆR,          NK  	  up4      p
RpRp^V,
          Wl,          ,          ^V,
          R,           P                  4       ) ,          pV^V,
          V,          ,          VR,           P                  4       ) ,          pVR	V	3,          VR	V	3,          ,
          pVP                  pVP                  \        P                  4      pV
P                  \        P                  4      p
\        P                  ! Wz^R
7      pVP                  V4      p\        \        V4      \        V
4      4      ) pV P                  V,          V P                  V,          ,           V P                  V,          ,           pVP                  WER4      P!                  4       pV Uu. uF  p\#        VR,          4      NK  	  pp. pWS,          pVP%                  V^R7      p\'        V4       FÎ  pVV,          p\)        VP%                  VR4      4       UUu. uF  w  pp\+        VV,          4      NK  	  pppV^ 8X  d   TpKV  \-        VV4       UUu. uF`  w  pp\.        P0                  ! V^ ,          V^ ,          VV,          ,           .4      \.        P0                  ! V^,          V^,          .4      3NKb  	  pppKÐ  	  V UUu. uFR  w  pp\        P2                  ! V\        P4                  R7      \        P2                  ! V\        P4                  R7      3NKT  	  upp# u upi u upi u upi u uppi u uppi u uppi )zz
Differences:
- out_prob = outputs["logits"].flatten(0, 1).sigmoid() instead of softmax
- class_cost uses alpha and gamma
Úlogits:Né   NÚ
pred_boxesÚclass_labelsÚboxesg      Ð?g       @g:Œ0âŽyE>ºNNN)Úp©Údim)Údtypeéÿÿÿÿ)ÚshapeÚflattenÚsigmoidÚtorchÚcatÚlogr   ÚtoÚfloat32Úcdistr
   r   Ú	bbox_costÚ
class_costÚ	giou_costÚviewÚcpuÚlenÚsplitÚrangeÚ	enumerater   ÚzipÚnpÚconcatenateÚ	as_tensorÚint64) ÚselfÚoutputsÚtargetsÚ
group_detrÚ
batch_sizeÚnum_queriesÚout_probÚout_bboxÚvÚ
target_idsÚtarget_bboxÚalphaÚgammaÚneg_cost_classÚpos_cost_classr'   r   r&   r(   Úcost_matrixÚsizesÚindicesÚgroup_num_queriesÚcost_matrix_listÚgroup_idÚgroup_cost_matrixÚiÚcÚgroup_indicesÚindice1Úindice2Újs    &&&&                            Ú_/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/loss/loss_lw_detr.pyÚforwardÚLwDetrHungarianMatcher.forward)   sI  € ð #*¨(Õ"3×"9Ñ"9¸"Õ"=Ñˆ
ð ˜8Õ$×,Ñ,¨Q°Ó2×:Ñ:Ó<ˆØ˜<Õ(×0Ñ0°°AÓ6ˆô —Y’Y¹7ÓC¹7°a .× 1Ð 1¹7ÑCÓDˆ
Ü—i’i±WÓ =±W° 7§ ±WÑ =Ó>ˆð ˆØˆØ˜e�)¨­Õ8¸aÀ(½lÈTÕ>Q×=VÑ=VÓ=XÐ<XÕYˆØ 1 x¥<°EÕ"9Õ:ÀÈ4Å×?TÑ?TÓ?VÐ>VÕWˆØ# A z MÕ2°^ÀAÀzÀMÕ5RÕRˆ
ð —‘ˆØ—;‘;œuŸ}™}Ó-ˆØ!—n‘n¤U§]¡]Ó3ˆÜ—K’K ¸Ô;ˆ	Ø—L‘L Ó'ˆ	ô )Ô)AÀ(Ó)KÔMeÐfqÓMrÓsÐsˆ	ð —n‘n yÕ0°4·?±?ÀZÕ3OÕOÐRV×R`ÑR`ÐclÕRlÕlˆØ!×&Ñ& zÀÓC×GÑGÓIˆá*1Ó2©' Q”�Q�w•Z–©'ˆÐ2ØˆØ'Õ5ÐØ&×,Ñ,Ð->ÀAÐ,ÓFÐÜ˜jÖ)ˆHØ 0°Õ :ÐÜENÐO`×OfÑOfÐglÐnpÓOqÔErÔsÑEr¹T¸QÀÔ2°1°Qµ4Ö8ÑErˆMÑsØ˜1Œ}Ø'’ô -0°¸Ô,Gôñ
 -HÑ(˜ ô Ÿš¨°­
°G¸AµJÐARÐU]ÕA]Õ4]Ð'^Ó_ÜŸš¨°­
°G¸AµJÐ'?Ó@óñ -Hð ñ ‘ñ *ñ lsÔsÑkrÑcgÐcdÐfg”—’ ¬%¯+©+Ô6¼¿ºÈÔQV×Q\ÑQ\Ô8]Ó^ÑkrÒsÐsùòS  DùÚ =ùò. 3ùó tùóùó ts&   Á1N3ÂN8È;N=Ê*OË%A&OÍAO© N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r    Úno_gradrQ   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @rP   r   r   (   s   ø‡ € Ø
‡]‚]ƒ_ñ6tó ö6tó    r   c                   óŠ   a a€ ] tR t^ct oV 3R ltR t]P                  ! 4       R 4       tR t	R t
R tR tR tR	 tR
tVtV ;t# )ÚLwDetrImageLossc                ó`   <€ \         SV `  4        Wn        W n        W0n        W@n        WPn        R # ©N)ÚsuperÚ__init__ÚmatcherÚnum_classesÚfocal_alphaÚlossesr7   )r4   rc   rd   re   rf   r7   Ú	__class__s   &&&&&&€rP   rb   ÚLwDetrImageLoss.__init__d   s)   ø€ Ü‰ÑÔØŒØ&ÔØ&ÔØŒØ$Žr\   c           	     ó  € R V9  d   \        R4      hVR ,          pVP                  pV P                  V4      p\        P                  ! \        W#4       UU	U
u. uF  w  pw  ršVR,          V
,          NK  	  up
p	p4      pV P                  p^pVR,          V,          p\        P                  ! \        W#4       UU	Uu. uF  w  pw  rŸVR,          V,          NK  	  upp	p^ R7      p\        P                  ! \        \        VP                  4       4      \        V4      4      ^ ,          4      pVP                  V4      pVP                  4       P                  4       pVP                  4       p\        P                  ! V4      pVP                  V4      P                  V4      pW{3,           pVV,          P                  V4      VP                  ^V,
          4      ,          p\        P                   ! VR4      P                  4       P                  V4      pVVV&   ^V,
          VV&   V) VP#                  4       ,          V^V,
          P#                  4       ,          ,
          pVP%                  4       V,          pRV/pV# u up
p	pi u upp	pi )r   z#No logits were found in the outputsr   r   r   r   g{®Gáz„?Úloss_ce)ÚKeyErrorr   Ú_get_source_permutation_idxr    r!   r/   re   Údiagr   r   Údetachr#   Úcloner   Ú
zeros_likeÚpowÚclampr"   Úsum)r4   r5   r6   rE   Ú	num_boxesÚsource_logitsr   ÚidxÚtÚ_ÚJÚtarget_classes_or?   r@   Ú	src_boxesrJ   Útarget_boxesÚiou_targetsÚpos_iousÚprobÚpos_weightsÚneg_weightsÚpos_indÚpos_qualityrj   rf   s   &&&&&                     rP   Úloss_labelsÚLwDetrImageLoss.loss_labelsm   s  € Ø˜7Ô"ÜÐ@ÓAÐAØ Õ)ˆØ×#Ñ#ˆà×.Ñ.¨wÓ7ˆÜ Ÿ9š9ÌCÐPWÔLaÕ%bÑLa¹y¸qÁ&À1 a¨Õ&7¸×&:Ð&:ÑLaÓ%bÓcÐØ× Ñ ˆØˆØ˜LÕ)¨#Õ.ˆ	Ü—y’yÄÀWÔAVÕ!WÑAV±I°A±v¸ ! G¥*¨Q§- -ÑAVÓ!WÐ]^Ô_ˆÜ—j’jÜÔ,¨Y×-=Ñ-=Ó-?Ó@ÔBZÐ[gÓBhÓiÐjkÕló
ˆð "—n‘n UÓ+ˆØ×$Ñ$Ó&×-Ñ-Ó/ˆØ×$Ñ$Ó&ˆä×&Ò& }Ó5ˆà—h‘h˜u“o×(Ñ(¨Ó/ˆØÐ+Õ+ˆà˜7•m×'Ñ'¨Ó.°·±¸aÀ%½iÓ1HÕHˆÜ—k’k +¨tÓ4×;Ñ;Ó=×@Ñ@ÀÓGˆà*ˆ�GÑØ  ;�ˆ�GÑØ�, §¡£Õ+¨k¸QÀ½X¿N¹NÓ<LÕ.LÕLˆØ—+‘+“- )Õ+ˆØ˜WÐ%ˆàˆùô7 &cùô "Xs   ÁI<Â<Jc           	     ó   € VR,          pVP                   p\        P                  ! V Uu. uF  p\        VR,          4      NK  	  upVR7      pVP	                  4       P                  R4      P                  R8„  P                  ^4      p	\        P                  P                  V	P                  4       VP                  4       4      p
RV
/pV# u upi )zÊ
Compute the cardinality error, i.e. the absolute error in the number of predicted non-empty boxes.

This is not really a loss, it is intended for logging purposes only. It doesn't propagate gradients.
r   r   )Údeviceg      à?Úcardinality_errorr   )r‡   r    r2   r+   r   ÚmaxÚvaluesrs   ÚnnÚ
functionalÚl1_lossÚfloat)r4   r5   r6   rE   rt   r   r‡   r<   Útarget_lengthsÚ	card_predÚcard_errrf   s   &&&&&       rP   Úloss_cardinalityÚ LwDetrImageLoss.loss_cardinality‘   s©   € ð ˜Õ"ˆØ—‘ˆÜŸšÉ'Ó)RÉ'ÀQ¬#¨a°Õ.?Ö*@É'Ñ)RÐ[aÔbˆà—^‘^Ó%×)Ñ)¨"Ó-×4Ñ4°sÑ:×?Ñ?ÀÓBˆ	Ü—=‘=×(Ñ(¨¯©Ó):¸N×<PÑ<PÓ<RÓSˆØ% xÐ0ˆØˆùò *Ss   ªCc           	     ó*  € RV9  d   \        R4      hV P                  V4      pVR,          V,          p\        P                  ! \	        W#4       UUU	u. uF  w  pw  r‰VR,          V	,          NK  	  up	pp^ R7      p
\
        P                  P                  WjRR7      p/ pVP                  4       V,          VR&   ^\        P                  ! \        \        V4      \        V
4      4      4      ,
          pVP                  4       V,          VR&   V# u up	ppi )	a  
Compute the losses related to the bounding boxes, the L1 regression loss and the GIoU loss.

Targets dicts must contain the key "boxes" containing a tensor of dim [nb_target_boxes, 4]. The target boxes
are expected in format (center_x, center_y, w, h), normalized by the image size.
r   z#No predicted boxes found in outputsr   r   Únone)Ú	reductionÚ	loss_bboxÚ	loss_giou)rk   rl   r    r!   r/   r‹   rŒ   r�   rs   rm   r
   r   )r4   r5   r6   rE   rt   rv   Úsource_boxesrw   rx   rJ   r|   r—   rf   r˜   s   &&&&&         rP   Ú
loss_boxesÚLwDetrImageLoss.loss_boxes¢   sð   € ð ˜wÔ&ÜÐ@ÓAÐAØ×.Ñ.¨wÓ7ˆØ˜|Õ,¨SÕ1ˆÜ—y’yÄÀWÔAVÕ!WÑAV±I°A±v¸ ! G¥*¨Q§- -ÑAVÓ!WÐ]^Ô_ˆä—M‘M×)Ñ)¨,ÐPVÐ)ÓWˆ	àˆØ'Ÿm™m›o°	Õ9ˆˆ{ÑàœŸ
š
ÜÔ 8¸Ó FÔH`ÐamÓHnÓoó
õ 
ˆ	ð (Ÿm™m›o°	Õ9ˆˆ{ÑØˆùô "Xs   ÁDc                óZ  € RV9  d   \        R4      hV P                  V4      pV P                  V4      pVR,          pWu,          pV Uu. uF  qˆR,          NK  	  p	p\        V	4      P	                  4       w  r«V
P                  V4      p
W¦,          p
\        P                  P                  VR
,          V
P                  RR RRR7      pVR,          P                  ^4      pV
P                  ^4      p
V
P                  VP                  4      p
R\        WzV4      R	\        WzV4      /pV# u upi )z¬
Compute the losses related to the masks: the focal loss and the dice loss.

Targets dicts must contain the key "masks" containing a tensor of dim [nb_target_boxes, h, w].
Ú
pred_masksz#No predicted masks found in outputsÚmasksNÚbilinearF)ÚsizeÚmodeÚalign_cornersÚ	loss_maskÚ	loss_dice)r   Néþÿÿÿ)r   r   )rk   rl   Ú_get_target_permutation_idxr   Ú	decomposer#   r‹   rŒ   Úinterpolater   r   r)   r   r	   )r4   r5   r6   rE   rt   Ú
source_idxÚ
target_idxÚsource_masksrw   rž   Útarget_masksÚvalidrf   s   &&&&&        rP   Ú
loss_masksÚLwDetrImageLoss.loss_masks»   s.  € ð ˜wÔ&ÜÐ@ÓAÐAà×5Ñ5°gÓ>ˆ
Ø×5Ñ5°gÓ>ˆ
Ø˜|Õ,ˆØ#Õ/ˆÙ%,Ó-¡W �7—�¡WˆÐ-ä<¸UÓC×MÑMÓOÑˆØ#—‘ |Ó4ˆØ#Õ/ˆô —}‘}×0Ñ0Ø˜Õ!¨×(:Ñ(:¸2¸3Ð(?ÀjÐ`eð 1ó 
ˆð $ DÕ)×1Ñ1°!Ó4ˆà#×+Ñ+¨AÓ.ˆØ#×(Ñ(¨×);Ñ);Ó<ˆàÔ+¨LÈ	ÓRØœ <¸yÓIð
ˆð ˆùò% .s   Á
D(c                ó  € \         P                  ! \        V4       UUUu. uF  w  pw  r4\         P                  ! W24      NK   	  uppp4      p\         P                  ! V UUu. uF  w  r4VNK	  	  upp4      pWV3# u upppi u uppi r`   ©r    r!   r.   Ú	full_like)r4   rE   rJ   Úsourcerx   Ú	batch_idxr©   s   &&     rP   rl   Ú+LwDetrImageLoss._get_source_permutation_idxÝ   sh   € ä—I’IÔPYÐZaÔPbÕcÑPb¹n¸aÁÀ&œuŸš¨vÖ9ÑPbÓcÓdˆ	Ü—Y’Y¹'ÔB¹'©;¨F£¹'ÒBÓCˆ
ØÐ$Ð$ùô dùÛBó    $A:Á"B
c                ó  € \         P                  ! \        V4       UUUu. uF  w  pw  r4\         P                  ! WB4      NK   	  uppp4      p\         P                  ! V UUu. uF  w  r4VNK	  	  upp4      pWV3# u upppi u uppi r`   r±   )r4   rE   rJ   rx   Útargetr´   rª   s   &&     rP   r¦   Ú+LwDetrImageLoss._get_target_permutation_idxä   sh   € ä—I’IÔPYÐZaÔPbÕcÑPb¹n¸aÁÀ!œuŸš¨vÖ9ÑPbÓcÓdˆ	Ü—Y’Y¹'ÔB¹'©;¨A£¹'ÒBÓCˆ
ØÐ$Ð$ùô dùÛBr¶   c                ó®   € R V P                   RV P                  RV P                  RV P                  /pW9  d   \	        RV R24      hWa,          ! W#WE4      # )ÚlabelsÚcardinalityr   rž   zLoss z not supported)r„   r’   rš   r®   Ú
ValueError)r4   Úlossr5   r6   rE   rt   Úloss_maps   &&&&&& rP   Úget_lossÚLwDetrImageLoss.get_lossê   s\   € à�d×&Ñ&Ø˜4×0Ñ0Ø�T—_‘_Ø�T—_‘_ð	
ˆð ÔÜ˜u T F¨.Ð9Ó:Ð:ØŽ~˜g°ÓCÐCr\   c           
     ó’  € V P                   '       d   V P                  M^pVP                  4        UUu/ uF  w  rEVR8w  g   K  VR8w  g   K  WEbK  	  pppV P                  WbV4      p\	        R V 4       4      pWƒ,          p\
        P                  ! V.\
        P                  \        \        VP                  4       4      4      P                  R7      p^p	\        4       '       dF   \        P                  ! V\        P                  P                   R7       \        P"                  ! 4       p	\
        P$                  ! W‰,          ^R7      P'                  4       p/ p
V P(                   F%  pV
P+                  V P-                  W±W'V4      4       K'  	  RV9   dœ   \/        VR,          4       F…  w  rÍV P                  WÒV4      pV P(                   F^  pVR8X  d   K  V P-                  W½W'V4      pVP                  4        UUu/ uF  w  rEVRV 2,           VbK  	  pppV
P+                  V4       K`  	  K‡  	  RV9   d   VR,          pV P                  WòVR	7      pV P(                   FR  pV P-                  W¿W'V4      pVP                  4        UUu/ uF  w  rEVR
,           VbK  	  pppV
P+                  V4       KT  	  V
# u uppi u uppi u uppi )aj  
This performs the loss computation.

Args:
     outputs (`dict`, *optional*):
        Dictionary of tensors, see the output specification of the model for the format.
     targets (`list[dict]`, *optional*):
        List of dicts, such that `len(targets) == batch_size`. The expected keys in each dict depends on the
        losses applied, see each loss' doc.
Úenc_outputsÚauxiliary_outputsc              3   óF   "  € T F  p\        VR ,          4      x € K  	  R# 5i)r   N)r+   )Ú.0rw   s   & rP   Ú	<genexpr>Ú*LwDetrImageLoss.forward.<locals>.<genexpr>	  s   é € Ð@¹°1œ˜A˜nÕ-×.Ð.»ùs   ‚!)r   r‡   )Úop)Úminrž   rx   )r7   Ú_enc)Útrainingr7   Úitemsrc   rs   r    r2   rŽ   ÚnextÚiterrŠ   r‡   r   ÚdistÚ
all_reduceÚReduceOpÚSUMÚget_world_sizerr   Úitemrf   ÚupdaterÀ   r.   )r4   r5   r6   r7   Úkr<   Úoutputs_without_aux_and_encrE   rt   Ú
world_sizerf   r¾   rJ   rÄ   Úl_dictrÃ   s   &&&             rP   rQ   ÚLwDetrImageLoss.forwardõ   sR  € ð )-¯¯¨�T—_’_¸1ˆ
à$Ÿ]™]œ_ô'
Ù,‘T�Q°°]Ñ0BŒDÀqÐL_ÑG_ŒDˆAŠD™_ð 	$ñ '
ð
 —,‘,Ð:ÀZÓPˆô Ñ@¹Ó@Ó@ˆ	ØÕ*ˆ	Ü—O’O Y K´u·{±{Ì4ÔPTÐU\×UcÑUcÓUeÓPfÓKg×KnÑKnÔoˆ	Øˆ
Ü,×.Ò.Ü�OŠO˜I¬$¯-©-×*;Ñ*;Õ<Ü×,Ò,Ó.ˆJÜ—K’K 	Õ 6¸AÔ>×CÑCÓEˆ	ð ˆØ—K”KˆDØ�M‰M˜$Ÿ-™-¨°wÈÓSÖTñ  ð  'Ô)Ü(1°'Ð:MÕ2NÖ(OÑ$�ØŸ,™,Ð'8À:ÓN�Ø ŸKœK�DØ˜w”á Ø!Ÿ]™]¨4ÀGÐV_Ó`�FØ9?¿¹¼ÔH¹±°˜a A a S '�k¨1šn¹�FÑHØ—M‘M &Ö)ó (ñ )Pð ˜GÔ#Ø! -Õ0ˆKØ—l‘l ;ÀJ�lÓOˆGØŸœ�ØŸ™ t¸'ÈIÓV�Ø4:·L±L´NÔC±N©D¨A˜!˜f�* aš-±N�ÑCØ—‘˜fÖ%ñ $ð
 ˆùóU'
ùó> Iùó Ds   ´J7ÁJ7ÁJ7Ç<J=
ÊK)re   r7   rf   rc   rd   )rT   rU   rV   rW   rb   r„   r    rX   r’   rš   r®   rl   r¦   rÀ   rQ   rY   rZ   Ú__classcell__)rg   r[   s   @@rP   r^   r^   c   sO   ù‡ € õ%ò"ðH ‡]‚]ƒ_ñó ðò ò2òD%ò%ò	D÷6ò 6r\   r^   c	           
      óˆ  aa€ \        VP                  VP                  VP                  R 7      p
. ROp\	        V
VP
                  VP                  VVP                  R7      pVP                  V4       / pRpWR&   W=R&   RVRV/VR&   VP                  '       d   \        WV4      pWíR&   V! WÑ4      oRVP                  RVP                  /oVP                  SR	&   VP                  '       dv   / p\        VP                  ^,
          4       FB  pTP!                  SP#                  4        UUu/ uF  w  ppVR
V 2,           VbK  	  upp4       KD  	  SP!                  V4       SP#                  4        UUu/ uF  w  ppVR,           VbK  	  pppSP!                  V4       \%        VV3R lS 4       4      pVSV3# u uppi u uppi ))r'   r&   r(   )rc   rd   re   rf   r7   Nr   r   rÃ   rÄ   rj   r—   r˜   rx   rË   c              3   ób   <"  € T F$  qS9   g   K  SV,          SV,          ,          x € K&  	  R # 5ir`   rS   )rÆ   r×   Ú	loss_dictÚweight_dicts   & €€rP   rÇ   Ú/LwDetrForObjectDetectionLoss.<locals>.<genexpr>_  s)   øé € ÐT±i°ÈÑCSÔ,ˆy˜�|˜k¨!�n×,Ò,³iùs   ƒ/�/)r»   r   r¼   )r   r'   r&   r(   r^   Ú
num_labelsre   r7   r#   Úauxiliary_lossr   Úclass_loss_coefficientÚbbox_loss_coefficientÚgiou_loss_coefficientr-   Údecoder_layersrÖ   rÍ   rs   )r   r»   r‡   r   ÚconfigÚoutputs_classÚoutputs_coordÚenc_outputs_classÚenc_outputs_coordÚkwargsrc   rf   Ú	criterionÚoutputs_lossrÄ   Úaux_weight_dictrJ   r×   r<   Úenc_weight_dictr¾   rß   rà   s   &&&&&&&&&,           @@rP   ÚLwDetrForObjectDetectionLossrò   .  sÄ  ù€ ô %Ø×$Ñ$°×0@Ñ0@ÈF×L\ÑL\ô€Gò 0€FÜØØ×%Ñ%Ø×&Ñ&ØØ×$Ñ$ô€Ið ‡L�L�Ôà€LØÐØ#�ÑØ!+�ÑàÐ#ØÐ'ð#€L�Ñð ××ÐÜ)¨-ÓGÐØ,=Ð(Ñ)Ù˜,Ó/€Ià˜f×;Ñ;¸[È&×JfÑJfÐg€KØ%×;Ñ;€K�ÑØ××ÐØˆÜ�v×,Ñ,¨qÕ0Ö1ˆAØ×"Ñ"¸{×?PÑ?PÔ?RÔ#SÑ?R±t°q¸! A¨!¨A¨3¨¥K°¢NÑ?RÒ#SÖTñ 2à×Ñ˜?Ô+Ø1<×1BÑ1BÔ1DÔEÑ1D©¨¨A�q˜6•z 1’}Ñ1D€OÑEØ×Ñ�Ô'ÜÕT±iÓTÓT€DØ�Ð-Ð-Ð-ùó $TùãEs   Ä*F8Å3F>)NNNN)Únumpyr0   r    Útorch.distributedÚdistributedrÐ   Útorch.nnr‹   Údistributed.utilsr   Úutilsr   r   Úloss_for_object_detectionr   r   r   r	   r
   r   r   Útransformers.image_transformsr   Úscipy.optimizer   r   ÚModuler^   rò   rS   r\   rP   Ú<module>rý      sl   ðó Û Ý  Ý å Aß ;÷÷ ñ ñ ×ÒÝFñ ×ÒÝ4ô8tÐ-ô 8tôvH�b—i‘iô HöV2.r\   