§
    ‚Štj\!  ã                   óÎ  — 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 	 	 d6de j        de j        de j        dz  dede j        f
d„Z	 	 	 d7dede j        dz  dede j        dz  de j        f
d„Z	 	 d6de j        de j        dede j        dz  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"	 	 	 	 d8de j        de j        dede j        dz  d!e j        dz  d"e#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“d0e“d1e“d2e“d3e“d4e“e	eeeeeeeeeed5œ¥Z%dS )9é    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                             | |||¬¦  «        }|dk    r3t          j        |¦  «        r|                     |j        ¦  «        }||z  }|S )NÚsumÚmean)r   Ú	reduction)ÚnnÚ
functionalÚcross_entropyÚtorchÚ	is_tensorÚtoÚdevice)r   r   r   r   Úkwargsr   Úlosss          úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/loss/loss_utils.pyÚfixed_cross_entropyr&       sv   € ð ,Ð7��¸V€IÝŒ=×&Ò& v¨vÀLÐ\eÐ&ÑfÔf€DØ�EÒÐåŒ?Ð-Ñ.Ô.ð 	DØ!3×!6Ò!6°t´{Ñ!CÔ!CÐØÐ(Ñ(ˆØ€Kó    Ú
vocab_sizeÚshift_labelsc                 ó\  — |                       ¦   «         } |€@t          j                             |d|¬¦  «        }|ddd …f                              ¦   «         }|                      d|¦  «        } |                     d¦  «        }|                     | 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%   ÚForCausalLMLossr3   1   s­   € ð �\Š\‰^Œ^€FàÐå”×"Ò" 6¨6¸Ð"ÑFÔFˆØ˜c 1 2 2˜g”×1Ò1Ñ3Ô3ˆð �[Š[˜˜ZÑ(Ô(€FØ×$Ò$ RÑ(Ô(€LØ—?’? 6¤=Ñ1Ô1€LÝ˜v |Ð5GÈÐ`Ð`ÐY_Ð`Ð`€DØ€Kr'   r1   r2   c                 óØ   — |                       ¦   «         } |                      d|¦  «        } |                     d¦  «        }|                     | j        ¦  «        }t	          | |||fi |¤Ž}|S ©Nr,   )r-   r0   r!   r"   r&   )r1   r2   r(   r   r   r#   r$   s          r%   ÚForMaskedLMLossr6   J   sj   € ð �\Š\‰^Œ^€Fð �[Š[˜˜ZÑ(Ô(€FØ�[Š[˜‰_Œ_€Fà�YŠY�v”}Ñ%Ô%€FÝ˜v vÐ/AÀ<ÐZÐZÐSYÐZÐZ€DØ€Kr'   Úpooled_logitsc                 ó„  — |j         }|j        €B|dk    rd|_        n4|dk    r'| j        t          j        t          j        fv rd|_        nd|_        |                      |j        ¦  «        } |j        dk    rPt          ¦   «         }|dk    r0 || 	                    ¦   «         |  	                    ¦   «         ¦  «        S  ||| ¦  «        S |j        dk    r5t          |                     d|¦  «        |                      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&   r0   r   ÚRuntimeError)r2   r7   Úconfigr#   r<   Úloss_fcts         r%   ÚForSequenceClassificationLossrE   ^   sO  € ØÔ"€JØÔÐ"Ø˜Š?ˆ?Ø".ˆFÔÐØ˜!Š^ˆ^ ¤µ%´*½e¼iÐ1HÐ!HÐ!HØ"?ˆFÔÐà">ˆFÔà�YŠY�}Ô+Ñ,Ô,€FØÔ˜lÒ*Ð*Ý‘9”9ˆØ˜Š?ˆ?Ø�8˜M×1Ò1Ñ3Ô3°V·^²^Ñ5EÔ5EÑFÔFÐFà�8˜M¨6Ñ2Ô2Ð2ØÔÐ;Ò;Ð;Ý" =×#5Ò#5°b¸*Ñ#EÔ#EÀvÇ{Â{ÐSUÁÄÐaÐaÐZ`ÐaÐaÐaàÔÐ:Ò:Ð:Ý$Ñ&Ô&ˆØˆx˜ vÑ.Ô.Ð.å
ÐE°Ô0CÐEÐEÑ
FÔ
FÐFr'   c                 ó0  — d }|��|��t          |                     ¦   «         ¦  «        dk    r-|                     d¦  «                             | j        ¦  «        }t          |                     ¦   «         ¦  «        dk    r-|                     d¦  «                             |j        ¦  «        }|                      d¦  «        }|                     d|¦  «        }|                     d|¦  «        }t          | |fd|i|¤Ž}t          ||fd|i|¤Ž}||z   dz  }|S )Nr   r,   r   r   é   )ÚlenÚsizerA   r!   r"   Úclampr&   )	Ústart_logitsÚ
end_logitsÚstart_positionsÚend_positionsr#   Ú
total_lossÚignored_indexÚ
start_lossÚend_losss	            r%   ÚForQuestionAnsweringLossrS   y   s%  € Ø€JØÑ" }Ñ'@åˆ×#Ò#Ñ%Ô%Ñ&Ô&¨Ò*Ð*Ø-×5Ò5°bÑ9Ô9×<Ò<¸\Ô=PÑQÔQˆOÝˆ}×!Ò!Ñ#Ô#Ñ$Ô$ qÒ(Ð(Ø)×1Ò1°"Ñ5Ô5×8Ò8¸Ô9JÑKÔKˆMà$×)Ò)¨!Ñ,Ô,ˆØ)×/Ò/°°=ÑAÔAˆØ%×+Ò+¨A¨}Ñ=Ô=ˆå(¨°ÐmÐmÐUbÐmÐflÐmÐmˆ
Ý& z°=ÐgÐgÈ}ÐgÐ`fÐgÐgˆØ  8Ñ+¨qÑ0ˆ
ØÐr'   c                 óÖ   — |                       d|j        ¦  «        } |                      d¦  «                             | j        ¦  «        }|                      ¦   «         } t          | |fi |¤ŽS r5   )r0   r<   r!   r"   r-   r&   )r1   r2   rC   r#   s       r%   ÚForTokenClassificationrU   Œ   s\   € à�[Š[˜˜VÔ.Ñ/Ô/€FØ�[Š[˜‰_Œ_×Ò ¤Ñ.Ô.€FØ�\Š\‰^Œ^€Få˜v vÐ8Ð8°Ð8Ð8Ð8r'   éÿ   çš™™™™™Ù?Úauxiliary_logitsÚauxiliary_loss_weightc                 ó"  — t           j                             | |j        dd …         dd¬¦  «        }t	          ||||¬¦  «        }|�It           j                             ||j        dd …         dd¬¦  «        }	||t	          |	|||¬¦  «        z  z   }|S )NéþÿÿÿÚbilinearF)rI   ÚmodeÚalign_corners)r   r   )r   r   ÚinterpolateÚshaper&   )
r1   r2   r   r   rX   rY   r#   Úupsampled_logitsr$   Úupsampled_auxiliary_logitss
             r%   ÚForSemanticSegmentationLossrc   •   sÁ   € õ ”}×0Ò0°¸f¼lÈ2È3È3Ô>OÐV`ÐpuÐ0ÑvÔvÐÝØ˜&Ð5GÐVbðñ ô €Dð Ð#Ý%'¤]×%>Ò%>Ø 6¤<°°°Ô#4¸:ÐUZð &?ñ &
ô &
Ð"ð Ð+Õ.AØ&¨ÐCUÐdpð/
ñ /
ô /
ñ 
ñ 
ˆð €Kr'   ÚForSemanticSegmentationÚForCausalLMÚForMaskedLMÚForQuestionAnsweringÚForSequenceClassificationÚForImageClassificationÚForVideoClassificationÚForAudioClassificationrU   ÚForSegmentationÚForObjectDetectionÚForConditionalGenerationÚ DeformableDetrForObjectDetectionÚ!ConditionalDetrForObjectDetectionÚDabDetrForObjectDetectionÚGroundingDinoForObjectDetectionÚ!MMGroundingDinoForObjectDetection)ÚConditionalDetrForSegmentationÚRTDetrForObjectDetectionÚRTDetrV2ForObjectDetectionÚDFineForObjectDetectionÚDeimv2ForObjectDetectionÚCsmForConditionalGenerationÚLwDetrForObjectDetectionÚParakeetForRNNTÚParakeetForTDTÚRfDetrForObjectDetectionÚRfDetrForInstanceSegmentation)Nr   )Nr   N)rV   NNrW   )&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&   r3   r6   rE   rS   rU   r-   rc   ÚLOSS_MAPPING© r'   r%   ú<module>r�      s  ðð  €€€Ø Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø iÐ iÐ iÐ iÐ iÐ iÐ iÐ iØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ DÐ DÐ DÐ DÐ DÐ DØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø *Ð *Ð *Ð *Ð *Ð *Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø (Ð (Ð (Ð (Ð (Ð (ð /3Øð	ð ØŒLðàŒLðð œ tÑ+ðð ð	ð „\ðð ð ð ð* /3ØØ(,ðð ð ðð œ tÑ+ð	ð
 ðð ”, Ñ%ðð „\ðð ð ð ð: /3Øðð ØŒLðàŒLðð ðð œ tÑ+ð	ð
 ðð ð ð ð(G¨%¬,ð GÀuÄ|ð GÐjoÔjvð Gð Gð Gð Gð6ð ð ð&9 5¤<ð 9ð 9ð 9ð 9ð Ø.2Ø,0Ø#&ðð ØŒLðàŒLðð ðð œ tÑ+ð	ð
 ”l TÑ)ðð !ðð „\ðð ð ð ð.ØÐ:ðà�?ðð �?ðð Ð4ð	ð
  Ð!>ðð Ð;ðð Ð;ðð Ð;ðð Ð4ðð Ð*ðð Ð0ðð  ðð 'Ð(Lðð (Ð)Mðð  Ð!Eðð  &Ð'Jð!ð" (Ð)Lð#ð$ 'HØ <Ø">Ø:Ø <Ø#2Ø <Ø*Ø(Ø <Ø%>ð9ð ð €€€r'   