o
    ´©i  ã                   @   s   d dl Z dd„ Zdd„ ZdS )é    Nc                 C   sb   |   | d¡| d¡|  d¡¡ d¡}||k}t | |¡| |¡k¡}t |¡}t|ƒt|ƒ S )a  Calculate accuracy.

    Args:
        pad_outputs (Tensor): Prediction tensors (B * Lmax, D).
        pad_targets (LongTensor): Target label tensors (B, Lmax, D).
        ignore_label (int): Ignore label id.

    Returns:
        float: Accuracy value (0.0 - 1.0).

    r   é   é   )ÚviewÚsizeÚargmaxÚtorchÚsumÚmasked_selectÚfloat)Úpad_outputsÚpad_targetsÚignore_labelÚpad_predÚmaskÚ	numeratorÚdenominator© r   úN/home/ubuntu/.local/lib/python3.10/site-packages/funasr/metrics/compute_acc.pyÚth_accuracy   s   ÿþ
r   c                 C   s<   ||k}t  |  |¡| |¡k¡}t  |¡}| ¡ | ¡  S )a  Calculate accuracy.

    Args:
        pad_outputs (LongTensor): Prediction tensors (B, Lmax).
        pad_targets (LongTensor): Target label tensors (B, Lmax).
        ignore_label (int): Ignore label id.

    Returns:
        float: Accuracy value (0.0 - 1.0).

    )r   r   r	   r
   )r   r   r   r   r   r   r   r   r   Úcompute_accuracy   s   
r   )r   r   r   r   r   r   r   Ú<module>   s    