
    9iN                         S SK Jr  S SK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KJrJr  SS	KJr  SS
KJrJr  \R*                  " \\R,                  S9 " S S\5      5       rg)    )DictN)accuracy_scoref1_score)Metrics)
OutputKeys)default_group)torch_nested_detachtorch_nested_numpify   )Metric)METRICS
MetricKeys)	group_keymodule_namec                   t   ^  \ rS rSrSr\R                  4U 4S jjrS\S\4S jr	S r
SS jrS	 rS
 rSrU =r$ )
LossMetric   z\The metric class to calculate average loss of batches.

Args:
    loss_key: The key of loss
c                 @   > [         TU ]  " U0 UD6  Xl        / U l        g N)super__init__loss_keylosses)selfr   argskwargs	__class__s       ^/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/metrics/loss_metric.pyr   LossMetric.__init__   s!    $)&)     outputsinputsc                 z    XR                      nU R                  R                  [        [	        U5      5      5        g r   )r   r   appendr
   r	   )r   r!   r"   losss       r   addLossMetric.add   s,    }}%/0CD0IJKr    c                 t    [         R                  [        [        R                  " U R
                  5      5      0$ r   )r   LOSSfloatnpaverager   r   s    r   evaluateLossMetric.evaluate#   s#    rzz$++'>!?@@r    c                 N    U R                   R                  UR                   5        g r   )r   extend)r   others     r   mergeLossMetric.merge&   s    5<<(r    c                     U R                   $ r   )r   r-   s    r   __getstate__LossMetric.__getstate__)   s    {{r    c                 0    U R                  5         Xl        g r   )r   r   )r   states     r   __setstate__LossMetric.__setstate__,   s    r    )r   r   )r2   r   )__name__
__module____qualname____firstlineno____doc__r   r)   r   r   r&   r.   r3   r6   r:   __static_attributes____classcell__)r   s   @r   r   r      sF     !+ 
L4 L LA) r    r   )typingr   numpyr+   sklearn.metricsr   r   modelscope.metainfor   modelscope.outputsr   modelscope.utils.registryr   modelscope.utils.tensor_utilsr	   r
   baser   builderr   r   register_moduleloss_metricr    r    r   <module>rO      sV      4 ' ) 3A  ( 	)<)<> >r    