o
    ÓÙ¾i…  ã                   @   s    d Z G dd„ dƒZddd„ZdS )zM Eval metrics and related

Hacked together by / Copyright 2020 Ross Wightman
c                   @   s*   e Zd ZdZdd„ Zdd„ Zd
dd„Zd	S )ÚAverageMeterz1Computes and stores the average and current valuec                 C   s   |   ¡  d S ©N)Úreset©Úself© r   úF/home/ubuntu/.local/lib/python3.10/site-packages/timm/utils/metrics.pyÚ__init__	   s   zAverageMeter.__init__c                 C   s   d| _ d| _d| _d| _d S )Né    )ÚvalÚavgÚsumÚcountr   r   r   r   r      s   
zAverageMeter.reseté   c                 C   s8   || _ |  j|| 7  _|  j|7  _| j| j | _d S r   )r
   r   r   r   )r   r
   Únr   r   r   Úupdate   s   zAverageMeter.updateN©r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r      s
    r   r   c                    sj   t t|ƒ|  ¡ d ƒ‰| d¡‰ |  ˆddd¡\}}| ¡ }| | dd¡ |¡¡‰‡ ‡‡fdd„|D ƒS )zNComputes the accuracy over the k top predictions for the specified values of kr   r	   Téÿÿÿÿc                    s6   g | ]}ˆd t |ˆƒ…  d¡ ¡  d¡d ˆ  ‘qS )Nr   r	   g      Y@)ÚminÚreshapeÚfloatr   )Ú.0Úk©Ú
batch_sizeÚcorrectÚmaxkr   r   Ú
<listcomp>    s   6 zaccuracy.<locals>.<listcomp>)r   ÚmaxÚsizeÚtopkÚtÚeqr   Ú	expand_as)ÚoutputÚtargetr#   Ú_Úpredr   r   r   Úaccuracy   s   
r+   N)r   )r   r   r+   r   r   r   r   Ú<module>   s    