CoolFace
Modelpublic

InPeerReview/RemoteSensingChangeDetection-RSCD.HA2F

sourceHugging Faceupdated 10mo agoView on Hugging Face
2likes
metric_tool.cpython-39.pyc31 linesDownload Raw Back to __pycache__
1a

28��g��@sLddlZGdd�de�ZGdd�de�Zdd�Zdd	�Zd3d�Zdd
�ZdS)�Nc@sReZdZdZdd�Zdd�Zddd�Zd	d4�Zdd�Zd
d�Z	dd�Z5dd�ZdS)�AverageMeter�1Computes and stores the average and current valuecCs"d|_d|_d|_d|_d|_dS�NF)�initialized�val�avg�sum�count��self�r�CC:\Users\82607\Desktop\code\ChangeViT-master\.\model\metric_tool.py�__init__s6zAverageMeter.__init__cCs&||_||_|||_||_d|_dS)NT)rrrr	r�rr�weightrrr
�7initializes89zAverageMeter.initialize�cCs$|js|�||�n|�||�dS�N)rr�addrrrr
�updateszAverageMeter.updatecCs8||_|j||7_|j|7_|j|j|_dSr)rrr	rrrrr
rszAverageMeter.addcCs|jSr)rr10rrr
�value"szAverageMeter.valuecCs|jSr)rr11rrr
�average%szAverageMeter.averagecCst|j�}|Sr��cm2scorer�rZscores_dictrrr
�12get_scores(s13zAverageMeter.get_scorescCs14d|_dSr)rr15rrr
�clear,szAverageMeter.clearN)r)�__name__�16__module__�__qualname__�__doc__rrrrrrrrrrrr
rs17rcs2eZdZdZ�fdd�Zd	dd�Zdd�Z�ZS)18�ConfuseMatrixMeterrcstt|���||_dSr)�superr!r�n_class)rr#��	__class__rr
r4szConfuseMatrixMeter.__init__rcCs(t|j||d�}|�||�t|�}|S)uJ获得当前混淆矩阵,并计算当前F1得分,并更新混淆矩阵)�num_classes�	label_gts�label_preds)�get_confuse_matrixr#r�cm2F1)r�pr�gtrrZ
current_scorerrr
�	update_cm8szConfuseMatrixMeter.update_cmcCst|j�}|Srrrrrr
r?s19zConfuseMatrixMeter.get_scores)r)rrrr rr-r�
__classcell__rrr$r
r!1s20r!cCst|�tdd�|D��}|S)Ncss|]}|ddVqdS)g�����ư>�����Nr)�.0�xrrr
�	<genexpr>E�z harmonic_mean.<locals>.<genexpr>)�lenr)�xs�
harmonic_meanrrr
r6Dsr6c	Cs~|}|d}|d}|d}|d}|||t�tj�j}|||t�tj�j}d||||t�tj�j}|S)N�rr�rr�rr�rr���np�finfo�float32�eps)	�confusion_matrix�hist�tp�fn�fp�tn�recall�	precision�f1rrr
r*Is"r*cCs|}|d}|d}|d}|d}||||||t�tj�j}|||t�tj�j}|||t�tj�j}d||||t�tj�j}	||||t�tj�j}21||||||||||||d}||d|}||22|	||||d�}
|
S)Nr7r8r9r:r;r)�Kappa�IoU�F1�OArGrHZPrer<)rArBrCrDrErF�oarGrHrIZiou�pre�kappaZ23score_dictrrr
rXs&"4rcsH�fdd�}t���f�}t||�D]\}}|||��|���7}q$|S)u!计算一组预测的混淆矩阵csD|dk|�k@}tj�||�t�||�dd�����}|S)a#24        Collect values for Confusion Matrix25        For reference, please see: https://en.wikipedia.org/wiki/Confusion_matrix26        :param label_gt: <np.array> ground-truth27        :param label_pred: <np.array> prediction28        :return: <np.ndarray> values for confusion matrix29        rr;)�	minlength)r=�bincount�astype�int�reshape)Zlabel_gtZ30label_pred�maskrB�r&rr
�__fast_histss��z'get_confuse_matrix.<locals>.__fast_hist)r=�zeros�zip�flatten)r&r'r(rXrA�lt�lprrWr
r)ps31
r))	�numpyr=�objectrr!r6r*rr)rrrr
�<module>s,