Ë
    îÍ:j†  ã                   ó®  — d dl mZ d dlZd dlmZ d dlmZmZ ddlmZ ddl	m
Z
mZ ddlmZmZ ddlmZ dd	lmZ 	 	 d,d
ej&                  dej&                  deej&                     dedej&                  f
d„Z	 	 	 d-dedeej&                     dedeej&                     dej&                  f
d„Z	 	 d,dej&                  dej&                  dedeej&                     def
d„Zdej&                  dej&                  dej&                  fd„Zd„ Zdej&                  fd„Zi de“de“de“de“de“de“d e“d!e“d"e“d#e“d$e“d%e
“d&e
“d'e
“d(e“d)e“d*e“eeeed+œ¥Zy).é    )ÚOptionalN)ÚBCEWithLogitsLossÚMSELossé   )ÚDFineForObjectDetectionLoss)Ú$DeformableDetrForObjectDetectionLossÚ!DeformableDetrForSegmentationLoss)ÚForObjectDetectionLossÚForSegmentationLoss)Ú#GroundingDinoForObjectDetectionLoss)ÚRTDetrForObjectDetectionLossÚsourceÚtargetÚnum_items_in_batchÚignore_indexÚreturnc                 óÌ   — |�dnd}t         j                  j                  | |||¬«      }|dk(  r5t        j                  |«      r|j                  |j                  «      }||z  }|S )NÚsumÚmean)r   Ú	reduction)ÚnnÚ
functionalÚcross_entropyÚtorchÚ	is_tensorÚtoÚdevice)r   r   r   r   Úkwargsr   Úlosss          úq/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/transformers/loss/loss_utils.pyÚfixed_cross_entropyr!      sh   € ð ,Ð7‘¸V€IÜ�=‰=×&Ñ& v¨vÀLÐ\eÐ&Óf€DØ�EÒä�?‰?Ð-Ô.Ø!3×!6Ñ!6°t·{±{Ó!CÐØÐ(Ñ(ˆØ€Kó    Ú
vocab_sizeÚshift_labelsc                 ó6  — | j                  «       } |€9t        j                  j                  |d|¬«      }|ddd …f   j	                  «       }| j                  d|«      } |j                  d«      }|j                  | j                  «      }t        | |||fi |¤Ž}|S )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                 óÀ   — | j                  «       } | j                  d|«      } |j                  d«      }|j                  | j                  «      }t	        | |||fi |¤Ž}|S ©Nr'   )r(   r+   r   r   r!   )r,   r-   r#   r   r   r   r   s          r    ÚForMaskedLMLossr1   G   s^   € ð �\‰\‹^€Fð �[‰[˜˜ZÓ(€FØ�[‰[˜‹_€Fð �Y‰Y�v—}‘}Ó%€FÜ˜v vÐ/AÀ<ÑZÐSYÑZ€DØ€Kr"   Úpooled_logitsc                 ó„  — |j                   }|j                  €M|dk(  rd|_        n@|dkD  r4| j                  t        j                  t        j
                  fv rd|_        nd|_        | j                  |j                  «      } |j                  dk(  r=t        «       }|dk(  r% ||j                  «       | j                  «       «      S  ||| «      S |j                  dk(  r,t        |j                  d|«      | j                  d«      fi |¤ŽS |j                  dk(  rt        «       } ||| «      S t        d|j                  › �«      ‚)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-   r2   Úconfigr   r7   Úloss_fcts         r    ÚForSequenceClassificationLossr@   \   s'  € Ø×"Ñ"€JØ×ÑÐ"Ø˜Š?Ø".ˆFÕØ˜!Š^ §¡´%·*±*¼e¿i¹iÐ1HÑ!HØ"?ˆFÕà">ˆFÔà�Y‰Y�}×+Ñ+Ó,€FØ×Ñ˜lÒ*Ü“9ˆØ˜Š?Ù˜M×1Ñ1Ó3°V·^±^Ó5EÓFÐFá˜M¨6Ó2Ð2Ø×ÑÐ;Ò;Ü" =×#5Ñ#5°b¸*Ó#EÀvÇ{Á{ÐSUÃÑaÐZ`ÑaÐaà×ÑÐ:Ò:Ü$Ó&ˆÙ˜ vÓ.Ð.ä
Ð/°×0CÑ0CÐ/DÐEÓ
FÐFr"   c                 óà  — d }|�é|�çt        |j                  «       «      dkD  r*|j                  d«      j                  | j                  «      }t        |j                  «       «      dkD  r*|j                  d«      j                  |j                  «      }| j                  d«      }|j                  d|«      }|j                  d|«      }t        | |fd|i|¤Ž}t        ||fd|i|¤Ž}||z   dz  }|S )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    ÚForQuestionAnsweringLossrN   w   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ˆØ  8Ñ+¨qÑ0ˆ
ØÐr"   c                 óÈ   — | j                  d|j                  «      } |j                  d«      j                  | j                  «      }| j	                  «       } t        | |fi |¤ŽS r0   )r+   r7   r   r   r(   r!   )r,   r-   r>   r   s       r    ÚForTokenClassificationrP   Š   sQ   € à�[‰[˜˜V×.Ñ.Ó/€FØ�[‰[˜‹_×Ñ §¡Ó.€FØ�\‰\‹^€Fä˜v vÑ8°Ñ8Ð8r"   ÚForCausalLMÚForMaskedLMÚForQuestionAnsweringÚForSequenceClassificationÚForImageClassificationÚForVideoClassificationÚForAudioClassificationrP   ÚForSegmentationÚForObjectDetectionÚForConditionalGenerationÚ DeformableDetrForObjectDetectionÚ!ConditionalDetrForObjectDetectionÚDabDetrForObjectDetectionÚGroundingDinoForObjectDetectionÚ!MMGroundingDinoForObjectDetectionÚConditionalDetrForSegmentation)ÚRTDetrForObjectDetectionÚRTDetrV2ForObjectDetectionÚDFineForObjectDetectionÚCsmForConditionalGeneration)Néœÿÿÿ)Nre   N)Útypingr   r   Útorch.nnr   r   r   Úloss_d_finer   Úloss_deformable_detrr   r	   Úloss_for_object_detectionr
   r   Úloss_grounding_dinor   Úloss_rt_detrr   ÚTensorr;   r!   r.   r1   r@   rN   rP   ÚLOSS_MAPPING© r"   r    ú<module>rp      sH  ðõ ã Ý ß /å 4ß iß RÝ DÝ 6ð 26Øñ	Ø�L‰Lðà�L‰Lðð ! §¡Ñ.ðð ð	ð ‡\�\óð* 26ØØ+/ñð ðð ! §¡Ñ.ð	ð
 ðð ˜5Ÿ<™<Ñ(ðð ‡\�\óð< 26ØñØ�L‰Lðà�L‰Lðð ðð ! §¡Ñ.ð	ð
 óð*G¨%¯,©,ð GÀuÇ|Á|ð GÐjo×jvÑjvó Gò6ð&9 5§<¡<ó 9ðØ�?ðà�?ðð Ð4ðð  Ð!>ð	ð
 Ð;ðð Ð;ðð Ð;ðð Ð4ðð Ð*ðð Ð0ðð  ðð 'Ð(Lðð (Ð)Mðð  Ð!Eðð &Ð'Jðð  (Ð)Lð!ð" %Ð&Gð#ð$ !=Ø">Ø:Ø#2ò+�r"   