a
    þd…  ã                   @   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   ú[/var/www/html/stable-diffusion-webui/venv/lib/python3.9/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©Z
batch_sizeÚcorrectZmaxkr   r   Ú
<listcomp>    ó    zaccuracy.<locals>.<listcomp>)r   ÚmaxÚsizeÚtopkÚtÚeqr   Z	expand_as)ÚoutputÚtargetr"   Ú_Úpredr   r   r   Úaccuracy   s    
r)   N)r   )r   r   r)   r   r   r   r   Ú<module>   s   