ó
    pyüi	  ã                   óÎ  • S SK r S SKJr  S SKJrJr  SSKJr  SSKJrJ	r	  SSK
Jr  SSKJrJr  SSKJr  SS	KJr  SS
KJr    S-S\ R*                  S\ R*                  S\ R*                  S-  S\S\ R*                  4
S jjr   S.S\S\ R*                  S-  S\S\ R*                  S-  S\ R*                  4
S jjr  S-S\ R*                  S\ R*                  S\S\ R*                  S-  S\4
S jjrS\ R*                  S\ R*                  S\ R*                  4S jrS rS\ R*                  4S jr0 S\_S\_S\_S\_S\_S \_S!\_S"\_S#\_S$\_S%\_S&\_S'\_S(\_S)\_S*\_S+\	_\\\\\\S,.Erg)/é    N)ÚBCEWithLogitsLossÚMSELossé   )ÚDFineForObjectDetectionLoss)Ú$DeformableDetrForObjectDetectionLossÚ!DeformableDetrForSegmentationLoss)ÚDeimv2ForObjectDetectionLoss)ÚForObjectDetectionLossÚForSegmentationLoss)Ú#GroundingDinoForObjectDetectionLoss)ÚLwDetrForObjectDetectionLoss)ÚRTDetrForObjectDetectionLossÚsourceÚtargetÚnum_items_in_batchÚignore_indexÚreturnc                 óÐ   • Ub  SOSn[         R                  R                  XX5S9nUS:X  a:  [        R                  " U5      (       a  UR                  UR                  5      nXb-  nU$ )NÚsumÚmean)r   Ú	reduction)ÚnnÚ
functionalÚcross_entropyÚtorchÚ	is_tensorÚtoÚdevice)r   r   r   r   Úkwargsr   Úlosss          ÚY/home/mande/repo/quber/.venv/lib/python3.13/site-packages/transformers/loss/loss_utils.pyÚfixed_cross_entropyr"      sc   € ð ,Ñ7‘¸V€IÜ�=‰=×&Ñ& vÀLÐ&Ðf€DØ�EÓä�?Š?Ð-×.Ñ.Ø!3×!6Ñ!6°t·{±{Ó!CÐØÑ(ˆØ€Kó    Ú
vocab_sizeÚshift_labelsc                 ó.  • U R                  5       n Uc6  [        R                  R                  USUS9nUSSS 24   R	                  5       nU R                  SU5      n UR                  S5      nUR                  U R                  5      n[        XX440 UD6nU$ )N)r   r   )Úvalue.r   éÿÿÿÿ)	Úfloatr   r   ÚpadÚ
contiguousÚviewr   r   r"   )ÚlogitsÚlabelsr$   r   r   r%   r   r    s           r!   ÚForCausalLMLossr/   .   s”   € ð �\‰\‹^€FàÑä—‘×"Ñ" 6¨6¸Ð"ÐFˆØ˜c 1¡2˜g‘×1Ñ1Ó3ˆð �[‰[˜˜ZÓ(€FØ×$Ñ$ RÓ(€LØ—?‘? 6§=¡=Ó1€LÜ˜vÐ5GÑ`ÐY_Ñ`€DØ€Kr#   r-   r.   c                 ó¼   • U R                  5       n U R                  SU5      n UR                  S5      nUR                  U R                  5      n[	        XX440 UD6nU$ ©Nr(   )r)   r,   r   r   r"   )r-   r.   r$   r   r   r   r    s          r!   ÚForMaskedLMLossr2   G   sX   € ð �\‰\‹^€Fð �[‰[˜˜ZÓ(€FØ�[‰[˜‹_€Fà�Y‰Y�v—}‘}Ó%€FÜ˜vÐ/AÑZÐSYÑZ€DØ€Kr#   Úpooled_logitsc                 ó’  • UR                   nUR                  cQ  US:X  a  SUl        OCUS:”  a6  U R                  [        R                  [        R
                  4;   a  SUl        OSUl        U R                  UR                  5      n UR                  S:X  a=  [        5       nUS:X  a%  U" UR                  5       U R                  5       5      $ U" X5      $ UR                  S:X  a,  [        UR                  SU5      U R                  S5      40 UD6$ UR                  S:X  a  [        5       nU" X5      $ [        SUR                   35      e)Nr   Ú
regressionÚsingle_label_classificationÚmulti_label_classificationr(   zInvalid problem type: )Ú
num_labelsÚproblem_typeÚdtyper   ÚlongÚintr   r   r   Úsqueezer"   r,   r   ÚRuntimeError)r.   r3   Úconfigr   r8   Úloss_fcts         r!   ÚForSequenceClassificationLossrA   [   s#  € Ø×"Ñ"€JØ×ÑÑ"Ø˜‹?Ø".ˆFÕØ˜!‹^ §¡´%·*±*¼e¿i¹iÐ1HÓ!HØ"?ˆFÕà">ˆFÔà�Y‰Y�}×+Ñ+Ó,€FØ×Ñ˜lÓ*Ü“9ˆØ˜‹?Ù˜M×1Ñ1Ó3°V·^±^Ó5EÓFÐFá˜MÓ2Ð2Ø×ÑÐ;Ó;Ü" =×#5Ñ#5°b¸*Ó#EÀvÇ{Á{ÐSUÃÑaÐZ`ÑaÐaà×ÑÐ:Ó:Ü$Ó&ˆÙ˜Ó.Ð.ä
Ð/°×0CÑ0CÐ/DÐEÓ
FÐFr#   c                 óâ  • S nUbé  Ubæ  [        UR                  5       5      S:”  a*  UR                  S5      R                  U R                  5      n[        UR                  5       5      S:”  a*  UR                  S5      R                  UR                  5      nU R                  S5      nUR                  SU5      nUR                  SU5      n[        X4SU0UD6n[        X4SU0UD6nXx-   S-  nU$ )Nr   r(   r   r   é   )ÚlenÚsizer=   r   r   Úclampr"   )	Ústart_logitsÚ
end_logitsÚstart_positionsÚend_positionsr   Ú
total_lossÚignored_indexÚ
start_lossÚend_losss	            r!   ÚForQuestionAnsweringLossrO   v   sò   € Ø€JØÑ" }Ñ'@äˆ×#Ñ#Ó%Ó&¨Ó*Ø-×5Ñ5°bÓ9×<Ñ<¸\×=PÑ=PÓQˆOÜˆ}×!Ñ!Ó#Ó$ qÓ(Ø)×1Ñ1°"Ó5×8Ñ8¸×9JÑ9JÓKˆMà$×)Ñ)¨!Ó,ˆØ)×/Ñ/°°=ÓAˆØ%×+Ñ+¨A¨}Ó=ˆä(¨ÑmÐUbÐmÐflÑmˆ
Ü& zÑgÈ}ÐgÐ`fÑgˆØ Ñ+¨qÑ0ˆ
ØÐr#   c                 óÆ   • U R                  SUR                  5      n UR                  S5      R                  U R                  5      nU R	                  5       n [        X40 UD6$ r1   )r,   r8   r   r   r)   r"   )r-   r.   r?   r   s       r!   ÚForTokenClassificationrQ   ‰   sO   € à�[‰[˜˜V×.Ñ.Ó/€FØ�[‰[˜‹_×Ñ §¡Ó.€FØ�\‰\‹^€Fä˜vÑ8°Ñ8Ð8r#   ÚForCausalLMÚForMaskedLMÚForQuestionAnsweringÚForSequenceClassificationÚForImageClassificationÚForVideoClassificationÚForAudioClassificationrQ   ÚForSegmentationÚForObjectDetectionÚForConditionalGenerationÚ DeformableDetrForObjectDetectionÚ!ConditionalDetrForObjectDetectionÚDabDetrForObjectDetectionÚGroundingDinoForObjectDetectionÚ!MMGroundingDinoForObjectDetectionÚConditionalDetrForSegmentation)ÚRTDetrForObjectDetectionÚRTDetrV2ForObjectDetectionÚDFineForObjectDetectionÚDeimv2ForObjectDetectionÚCsmForConditionalGenerationÚLwDetrForObjectDetection)Néœÿÿÿ)Nrh   N)r   Útorch.nnr   r   r   Úloss_d_finer   Úloss_deformable_detrr   r   Úloss_deimv2r	   Úloss_for_object_detectionr
   r   Úloss_grounding_dinor   Úloss_lw_detrr   Úloss_rt_detrr   ÚTensorr<   r"   r/   r2   rA   rO   rQ   ÚLOSS_MAPPING© r#   r!   Ú<module>rt      sQ  ðó  Ý ß /å 4ß iÝ 5ß RÝ DÝ 6Ý 6ð /3Øñ	Ø�L‰Lðà�L‰Lðð Ÿ™ tÑ+ðð ð	ð ‡\�\õð* /3ØØ(,ñð ðð Ÿ™ tÑ+ð	ð
 ðð —,‘, Ñ%ðð ‡\�\õð: /3ØñØ�L‰Lðà�L‰Lðð ðð Ÿ™ tÑ+ð	ð
 õð(G¨%¯,©,ð GÀuÇ|Á|ð GÐjo×jvÑjvô Gò6ð&9 5§<¡<ô 9ðØ�?ðà�?ðð Ð4ðð  Ð!>ð	ð
 Ð;ðð Ð;ðð Ð;ðð Ð4ðð Ð*ðð Ð0ðð  ðð 'Ð(Lðð (Ð)Mðð  Ð!Eðð &Ð'Jðð  (Ð)Lð!ð" %Ð&Gð#ð$ !=Ø">Ø:Ø <Ø#2Ø <ò/�r#   