a
    Sic‚	  ã                   @   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)Úgeneric_utils)Ú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f i |¤Ž d S )N)Ú
isinstancer   ÚlayerÚsuperÚ__init__)Úselfr   Úkwargs©Ú	__class__© úY/var/www/html/django/DPS/env/lib/python3.9/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   ÚbuiltÚbuild)r
   Úinput_shaper   r   r   r   /   s    zWrapper.buildc                 C   s   t | jdƒr| jjS d 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   Úserialize_keras_objectr   r   Ú
get_configÚdictÚlistÚitems)r
   ÚconfigÚ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)Úkeras.layersr   ÚcopyÚdeepcopyÚpop)Úclsr   r   Údeserialize_layerr   r   r   r   Úfrom_configA   s    

ÿzWrapper.from_config)N)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   Úpropertyr   r   Úclassmethodr$   Ú__classcell__r   r   r   r   r      s   


r   )	r(   r   Úkeras.engine.base_layerr   Úkeras.utilsr   Ú tensorflow.python.util.tf_exportr   r   r   r   r   r   Ú<module>   s   