o
    pi                     @   s4   d dl Z ddlmZ ddlmZ G dd deZdS )    N   )common_functions   )BaseRegularizerc                       s&   e Zd Zd fdd	Zdd Z  ZS )LpRegularizerr   r   c                    s4   t  jdi | || _|| _| jddgdd d S )NppowerF)list_of_namesis_stat )super__init__r   r   add_to_recordable_attributes)selfr   r   kwargs	__class__r   g/home/ubuntu/.local/lib/python3.10/site-packages/pytorch_metric_learning/regularizers/lp_regularizer.pyr      s   zLpRegularizer.__init__c                 C   s<   t j|| jdd}| jdkr|| j }d|t|ddiS )Nr   )r   dimlosselement)lossesindicesreduction_type)torchnormr   r   c_ftorch_arange_from_size)r   
embeddingsregr   r   r   compute_loss   s   

zLpRegularizer.compute_loss)r   r   )__name__
__module____qualname__r   r    __classcell__r   r   r   r   r      s    r   )r   utilsr   r   base_regularizerr   r   r   r   r   r   <module>   s    