a
    ==icÅ  ã                   @   s:   d dl m  m  mZ d dlmZ G dd„ dejƒZdS )é    N)Ú	workspacec                   @   s.   e Zd Zddd„Zdd„ Zdd„ Zd	d
„ ZdS )ÚComputeLossNÚ c                 C   s   || _ || _d| _d| _d S ©Nr   )Ú	blob_nameÚoptsÚiterÚvalue)Úselfr   r   © r   úw/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/caffe2/contrib/playground/compute_loss.pyÚ__init__   s    zComputeLoss.__init__c                 C   s   d| _ d| _d S r   )r   r	   )r
   r   r   r   ÚReset   s    zComputeLoss.Resetc              	   C   sz   d}t | jd d | jd d | jd d  ƒD ](}|t d | jd d || j¡¡7 }q0|  j|7  _|  jd7  _dS )	z$Average values of a blob on each gpur   ÚdistributedZfirst_xpu_idZnum_xpusz{}_{}/{}Zdeviceé   N)Úranger   r   Z	FetchBlobÚformatr   r	   r   )r
   r	   Úidxr   r   r   ÚAdd   s    ÿÿ
ÿ
zComputeLoss.Addc                 C   s&   | j d d | j | j }|  ¡  |S )Nr   Z
num_shards)r   r	   r   r   )r
   Úresultr   r   r   ÚCompute    s    zComputeLoss.Compute)Nr   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   
   s   
r   )Zcaffe2.contrib.playground.meterÚcontribZ
playgroundZmeterZMeterZcaffe2.pythonr   r   r   r   r   r   Ú<module>   s   