
    BVhp                     &   d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ eee	e
eeeeeeefZefZ ej2                         ad Zd ZddZy)z/Layer serialization/deserialization functions.
    N)tf2)
base_layer)input_layer)
input_spec)advanced_activations)convolutional)convolutional_recurrent)core)dense_attention)
embeddings)merge)pooling)	recurrent)rnn_cell_wrapper_v2)generic_utils)
tf_inspectc                  X   t        t        d      si t        _        dt        _        t        j                  r&t        j                  t	        j
                         k(  ryi t        _        t	        j
                         t        _        t        j                  t        j                  t        j                  t        fd       t	        j
                         r-t        j                  t        j                  t        fd       ddlm}  t        j                  t        j                  d<   t         j"                  t        j                  d	<   | j$                  t        j                  d
<   | j&                  t        j                  d<   | j(                  t        j                  d<   t*        j,                  t        j                  d<   t*        j.                  t        j                  d<   t*        j0                  t        j                  d<   t*        j2                  t        j                  d<   t*        j4                  t        j                  d<   t*        j6                  t        j                  d<   t*        j8                  t        j                  d<   t*        j:                  t        j                  d<   y)z8Populates dict ALL_OBJECTS with every built-in layer.
  ALL_OBJECTSNc                 J    t        j                  |       xr t        |       S Ninspectisclass
issubclassxbase_clss    \/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/keras/layers/serialization.py<lambda>z1populate_deserializable_objects.<locals>.<lambda>D   s    7??1-I*Q2I     )
obj_filterc                 J    t        j                  |       xr t        |       S r   r   r   s    r   r   z1populate_deserializable_objects.<locals>.<lambda>K   s    W__Q/KJq(4K r    r   )modelsInput	InputSpec
FunctionalModel
Sequentialaddsubtractmultiplyaveragemaximumminimumconcatenatedot)hasattrLOCALr   GENERATED_WITH_V2r   enabledr   Layerr   !populate_dict_with_module_objectsALL_MODULESALL_V2_MODULEStensorflow.python.kerasr#   r   r$   r   r%   r&   r'   r(   r   r)   r*   r+   r,   r-   r.   r/   r0   )r#   r   s    @r   populate_deserializable_objectsr:   0   s    
	&E"E
522ckkmC %KKM%(11IK 	[[]33KM -*00%G#-#7#7%K $*$5$5%L!%||%G$*$5$5%L! #YY%E"'..%J"'..%J!&%I!&%I!&%I%*%6%6%M""YY%Er    c                 ,    t        j                  |       S r   )r   serialize_keras_object)layers    r   	serializer>   a   s    		-	-e	44r    c                 d    t                t        j                  | t        j                  |d      S )aJ  Instantiates a layer from a config dictionary.

  Args:
      config: dict of the form {'class_name': str, 'config': dict}
      custom_objects: dict mapping class names (or function names)
          of custom (non-Keras) objects to class/functions

  Returns:
      Layer instance (may be Model, Sequential, Network, Layer...)
  r=   )module_objectscustom_objectsprintable_module_name)r:   r   deserialize_keras_objectr2   r   )configrA   s     r   deserializerE   e   s/     "#		/	/&&##	
% %r    r   )__doc__	threadingtensorflow.pythonr   tensorflow.python.keras.enginer   r   r   tensorflow.python.keras.layersr   r   r	   r
   r   r   r   r   r   r   tensorflow.python.keras.utilsr   r   r   r7   r8   localr2   r:   r>   rE    r    r   <module>rN      s   
  ! 5 6 5 ? 8 B / : 5 0 2 4 > 7 ?;(<m&o5'96 &' 		.'b5%r    