U
    ‰dž  ã                   @   s8   d dl mZ d dlZG dd„ deƒZG dd„ deƒZdS )é    )ÚcoreNc                   @   s   e Zd ZdZdZdZdS )ÚParameterTagsÚBIASÚWEIGHTÚCOMPUTED_PARAMN)Ú__name__Ú
__module__Ú__qualname__r   r   r   © r
   r
   úI/tmp/pip-unpacked-wheel-ua33x9lu/caffe2/python/modeling/parameter_info.pyr      s   r   c                   @   sD   e Zd Zddd„Zedd„ ƒZedd„ ƒZejdd„ ƒZd	d
„ ZdS )ÚParameterInfoNc                 C   s~   t |tjƒst‚|| _t|ƒ| _|| _|| _|| _	|d kr>d nt
 |¡| _td|d k	rZ|ndƒ| _|| _d | _|| _d | _d S )Né   )Ú
isinstancer   ZBlobReferenceÚAssertionErrorÚparam_idÚstrÚnameÚblobÚkeyÚshapeÚnpÚprodÚsizeÚmaxÚlengthÚgradZ_cloned_init_netÚ	blob_copyÚ
_optimizer)Úselfr   Úparamr   r   r   r   r   r
   r
   r   Ú__init__   s    
zParameterInfo.__init__c                 C   s   | j S ©N)r   ©r   r
   r
   r   Ú	parameter(   s    zParameterInfo.parameterc                 C   s   | j S r!   )r   r"   r
   r
   r   Ú	optimizer,   s    zParameterInfo.optimizerc                 C   s   | j d kstdƒ‚|| _ d S )Nzoptimizer has already been set)r   r   )r   Úvaluer
   r
   r   r$   0   s    c                 C   s   | j S r!   )r   r"   r
   r
   r   Ú__str__5   s    zParameterInfo.__str__)NNNNN)	r   r   r	   r    Úpropertyr#   r$   Úsetterr&   r
   r
   r
   r   r      s           þ



r   )Zcaffe2.pythonr   Znumpyr   Úobjectr   r   r
   r
   r
   r   Ú<module>   s   