
    Z j	                        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          m/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/transformers/loss/loss_utils.pyfixed_cross_entropyr"      sc     ,7VI==&&vL&fDE??-..!3!6!6t{{!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""66"Fc12g113 [[Z(F$$R(L??6==1Lv5G`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YYv}}%Fv/AZSYZD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!^%**eii1H!H"?F">FYY}++,Fl*9?M113V^^5EFFM22;;"=#5#5b*#Ev{{SUaZ`aa::$&..
/0C0C/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5b9<<\=P=PQO}!!#$q()11"5889J9JKM$))!,)//=A%++A}=(mUbmfl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	LLLL t+ 	 \\* /3(,  t+	
  ,,% \\: /3LLLL  t+	
 (G%,, Gu|| Gjojvjv G6&95<< 9?? 4  !>	
 ; ; ; 4 * 0  '(L ()M  !E &'J  ()L!" %&G#$ !=">: <#2 </r#   