o
    Oeq  ã                   @   sH   d dl mZ d dlmZ G dd„ deƒZG dd„ dƒZG dd„ dƒZd	S )
é    )Úcore)ÚLoadc                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚLayerc                 C   s   d | _ i | _d S ©N)Ú	cpp_layerÚ	functions©Úself© r   ú@D:\Projects\ConvertPro\env\Lib\site-packages\paddle/jit/layer.pyÚ__init__   s   
zLayer.__init__c                 C   sZ   t ||ƒ| _| j ¡ D ]}| j |¡}| j |¡}t||ƒ| j|< t| || j| ƒ qd S r   )r   r   Zfunction_namesÚfunctionZfunction_infoÚFunctionr   Úsetattr)r
   Z	load_pathZplaceÚnamer   Úinfor   r   r   Úload   s   üz
Layer.loadN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s    r   c                   @   r   )r   c                 C   s   || _ t|ƒ| _d S r   )r   ÚFunctionInfor   )r
   r   r   r   r   r   r   '   s   zFunction.__init__c                 G   s   t j | j|¡S r   )r   ÚeagerZjit_function_callr   )r
   Úargsr   r   r   Ú__call__+   s   zFunction.__call__N)r   r   r   r   r   r   r   r   r   r   %   s    r   c                   @   r   )r   c                 C   s
   || _ d S r   )r   )r
   r   r   r   r   r   1   ó   
zFunctionInfo.__init__c                 C   s
   | j  ¡ S r   )r   r   r	   r   r   r   r   4   r   zFunctionInfo.nameN)r   r   r   r   r   r   r   r   r   r   /   s    r   N)Zpaddle.fluidr   Zpaddle.fluid.corer   Úobjectr   r   r   r   r   r   r   Ú<module>   s
   
