o
    NeŠ	  ã                   @   sL   d Z ddlZddlmZ ddlmZ ddlmZ edƒG dd„ deƒƒZdS )	zeBase class for wrapper layers.

Wrappers are layers that augment the functionality of another layer.
é    N)ÚLayer)Úserialization)Úkeras_exportzkeras.layers.Wrapperc                       sP   e Zd ZdZ‡ fdd„Zddd„Zedd„ ƒZ‡ fd	d
„Ze	ddd„ƒZ
‡  ZS )ÚWrappera,  Abstract wrapper base class.

    Wrappers take another layer and augment it in various ways.
    Do not use this class as a layer, it is only an abstract base class.
    Two usable wrappers are the `TimeDistributed` and `Bidirectional` wrappers.

    Args:
      layer: The layer to be wrapped.
    c                    s*   t |tƒsJ ‚|| _tƒ jdi |¤Ž d S )N© )Ú
isinstancer   ÚlayerÚsuperÚ__init__)Úselfr   Úkwargs©Ú	__class__r   úMD:\Projects\ConvertPro\env\Lib\site-packages\keras/layers/rnn/base_wrapper.pyr
   *   s   zWrapper.__init__Nc                 C   s&   | j js| j  |¡ d| j _d| _d S )NT)r   ZbuiltÚbuild)r   Zinput_shaper   r   r   r   /   s   
zWrapper.buildc                 C   s   t | jdƒr
| jjS d S )NÚactivity_regularizer)Úhasattrr   r   )r   r   r   r   r   5   s   zWrapper.activity_regularizerc                    s6   dt  | j¡i}tƒ  ¡ }tt| ¡ ƒt| ¡ ƒ ƒS )Nr   )r   Zserialize_keras_objectr   r	   Ú
get_configÚdictÚlistÚitems)r   ÚconfigZbase_configr   r   r   r   <   s   
zWrapper.get_configc                 C   s8   ddl m} t |¡}|| d¡|d}| |fi |¤ŽS )Nr   )Údeserializer   )Úcustom_objects)Zkeras.layersr   ÚcopyÚdeepcopyÚpop)Úclsr   r   Zdeserialize_layerr   r   r   r   Úfrom_configA   s   

ÿzWrapper.from_config)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r   Úpropertyr   r   Úclassmethodr   Ú__classcell__r   r   r   r   r      s    


r   )	r"   r   Zkeras.engine.base_layerr   Zkeras.saving.legacyr   Z tensorflow.python.util.tf_exportr   r   r   r   r   r   Ú<module>   s   