Ë
    ÛÓ^j\!  ã                   óŠ  — 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 ddlmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ 	 	 d3de j6                  de j6                  de j6                  dz  dede j6                  f
d„Z	 	 	 d4dede j6                  dz  dede j6                  dz  de j6                  f
d„Z	 	 d3de j6                  de j6                  dede j6                  dz  def
d„Zde j6                  de j6                  de j6                  fd„Z d„ Z!de j6                  fd„Z"	 	 	 	 d5de j6                  de j6                  dede j6                  dz  de j6                  dz  de#de j6                  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“d0e“d1e“e	eeeeeeeeeed2œ¥Z%y)6é    N)ÚBCEWithLogitsLossÚMSELossé   )ÚDFineForObjectDetectionLoss)Ú$DeformableDetrForObjectDetectionLossÚ!DeformableDetrForSegmentationLoss)ÚDeimv2ForObjectDetectionLoss)ÚForObjectDetectionLossÚForSegmentationLoss)Ú#GroundingDinoForObjectDetectionLoss)ÚLwDetrForObjectDetectionLoss)ÚRfDetrForSegmentationLoss)ÚParakeetForRNNTLoss)ÚRTDetrForObjectDetectionLoss)ÚParakeetForTDTLossÚ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          úg/var/www/ramen.bs-engineer-server.com/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$   ÚForCausalLMLossr2   1   s˜   € ð �\‰\‹^€FàÐä—‘×"Ñ" 6¨6¸Ð"ÓFˆØ˜c 1¡2˜g‘×1Ñ1Ó3ˆð �[‰[˜˜ZÓ(€FØ×$Ñ$ RÓ(€LØ—?‘? 6§=¡=Ó1€LÜ˜v |Ð5GÈÑ`ÐY_Ñ`€DØ€Kr&   r0   r1   c                 óÀ   — | j                  «       } | j                  d|«      } |j                  d«      }|j                  | j                  «      }t	        | |||fi |¤Ž}|S ©Nr+   )r,   r/   r    r!   r%   )r0   r1   r'   r   r   r"   r#   s          r$   ÚForMaskedLMLossr5   J   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)r1   r6   Úconfigr"   r;   Úloss_fcts         r$   ÚForSequenceClassificationLossrD   ^   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$   ÚForQuestionAnsweringLossrR   y   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 r4   )r/   r;   r    r!   r,   r%   )r0   r1   rB   r"   s       r$   ÚForTokenClassificationrT   Œ   sQ   € à�[‰[˜˜V×.Ñ.Ó/€FØ�[‰[˜‹_×Ñ §¡Ó.€FØ�\‰\‹^€Fä˜v vÑ8°Ñ8Ð8r&   Úauxiliary_logitsÚauxiliary_loss_weightc                 ó  — t         j                  j                  | |j                  dd  dd¬«      }t	        ||||¬«      }|�Et         j                  j                  ||j                  dd  dd¬«      }	||t	        |	|||¬«      z  z   }|S )NéþÿÿÿÚbilinearF)rH   ÚmodeÚalign_corners)r   r   )r   r   ÚinterpolateÚshaper%   )
r0   r1   r   r   rU   rV   r"   Úupsampled_logitsr#   Úupsampled_auxiliary_logitss
             r$   ÚForSemanticSegmentationLossr`   •   s©   € ô —}‘}×0Ñ0°¸f¿l¹lÈ2È3Ð>OÐV`ÐpuÐ0ÓvÐÜØ˜&Ð5GÐVbô€Dð Ð#Ü%'§]¡]×%>Ñ%>Ø 6§<¡<°°Ð#4¸:ÐUZð &?ó &
Ð"ð Ð+Ô.AØ&¨ÐCUÐdpô/
ñ 
ñ 
ˆð €Kr&   ÚForSemanticSegmentationÚForCausalLMÚForMaskedLMÚForQuestionAnsweringÚForSequenceClassificationÚForImageClassificationÚForVideoClassificationÚForAudioClassificationrT   ÚForSegmentationÚForObjectDetectionÚForConditionalGenerationÚ DeformableDetrForObjectDetectionÚ!ConditionalDetrForObjectDetectionÚDabDetrForObjectDetectionÚGroundingDinoForObjectDetectionÚ!MMGroundingDinoForObjectDetection)ÚConditionalDetrForSegmentationÚRTDetrForObjectDetectionÚRTDetrV2ForObjectDetectionÚDFineForObjectDetectionÚDeimv2ForObjectDetectionÚCsmForConditionalGenerationÚLwDetrForObjectDetectionÚParakeetForRNNTÚParakeetForTDTÚRfDetrForObjectDetectionÚRfDetrForInstanceSegmentation)Néœÿÿÿ)Nr|   N)éÿ   NNgš™™™™™Ù?)&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_rf_detrr   Ú	loss_rnntr   Úloss_rt_detrr   Úloss_tdtr   ÚTensorr?   r%   r2   r5   rD   rR   rT   r,   r`   ÚLOSS_MAPPING© r&   r$   ú<module>rŒ      sÝ  ðó  Ý ß /å 4ß iÝ 5ß RÝ DÝ 6Ý 3Ý *Ý 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ð Ø.2Ø,0Ø#&ñØ�L‰Lðà�L‰Lðð ðð Ÿ™ tÑ+ð	ð
 —l‘l TÑ)ðð !ðð ‡\�\óð.ØÐ:ðà�?ðð �?ðð Ð4ð	ð
  Ð!>ðð Ð;ðð Ð;ðð Ð;ðð Ð4ðð Ð*ðð Ð0ðð  ðð 'Ð(Lðð (Ð)Mðð  Ð!Eðð  &Ð'Jð!ð" (Ð)Lð#ð$ 'HØ <Ø">Ø:Ø <Ø#2Ø <Ø*Ø(Ø <Ø%>ò9�r&   