
    6bi'                        S r SSKrSSKJs  Jr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SSK
Jr  SSK
Jr  SS	K
Jr  SS
K
Jr  SSK
Jr  SSK
Jr  SSK
Jr  SSK
Jr  SSK
Jr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ r   SSKJ!r!  SSKJ"r#  SSKJ$r$  SSKJ%r%  SSK&J'r'  SSK&J(r(  SS K&J)r)  SS!K*J+r+  SS"K,J-r-  SS#K.J/r0  SS$K1J2r2  SS%K3J4r4  SS&K3J5r6  SS'K7J8r8  \\\\\\\\\\\\\\ \\\\\\\\!\#\$\%4r9\\\'\(\)4r:\Rv                  " 5       q<S( r=\8" S)5      S/S* j5       r>\8" S+5      S0S, j5       r?S- r@S1S. jrAg)2z.Layer serialization/deserialization functions.    N)
base_layer)input_layer)
input_spec)
activation)	attention)convolutional)core)locally_connected)merging)pooling)regularization)	reshaping)rnn)batch_normalization)batch_normalization_v1)group_normalization)layer_normalization)unit_normalization)category_encoding)discretization)hashed_crossing)hashing)image_preprocessing)integer_lookup)normalization)string_lookup)text_vectorization)cell_wrappers)gru)lstm)base_metric)serialization_lib)serialization)
json_utils)generic_utils)
tf_inspect)keras_exportc                    ^ [        [        S5      (       d  0 [        l        S[        l        [        R                  (       a;  [        R                  [        R
                  R                  R                  5       :X  a  g0 [        l        [        R
                  R                  R                  5       [        l        [        R                  m[        R                  " [        R                  [        U4S jS9  [        R
                  R                  R                  5       (       a,  [        R                  " [        R                  [        U4S jS9  [        R                  [        R                  S'   [         R                  [        R                  S'   SS	KJn   SS
KJn  SSKJn  SSKJn  [2        R4                  [        R                  S'   [6        R8                  [        R                  S'   U R:                  [        R                  S'   U R<                  [        R                  S'   U[        R                  S'   U R>                  [        R                  S'   U[        R                  S'   U[        R                  S'   [        R
                  R                  R                  5       (       a  SSK J!n  U[        R                  S'   OSSK"J!n  U[        R                  S'   [F        RH                  [        R                  S'   [F        RJ                  [        R                  S'   [F        RL                  [        R                  S'   [F        RN                  [        R                  S'   [F        RP                  [        R                  S'   [F        RR                  [        R                  S'   [F        RT                  [        R                  S'   [F        RV                  [        R                  S'   g)z5Populates dict ALL_OBJECTS with every built-in layer.ALL_OBJECTSNc                 V   > [         R                  " U 5      =(       a    [        U T5      $ Ninspectisclass
issubclassxbase_clss    [/home/james-whalen/.local/lib/python3.13/site-packages/tf_keras/src/layers/serialization.py<lambda>1populate_deserializable_objects.<locals>.<lambda>|   s    W__Q/KJq(4KK    )
obj_filterc                 V   > [         R                  " U 5      =(       a    [        U T5      $ r+   r,   r0   s    r3   r4   r5      s    !3!O
1h8O!Or6   BatchNormalizationV1BatchNormalizationV2r   )models)SequenceFeatures)LinearModel)WideDeepModelInput	InputSpec
FunctionalModelr<   
Sequentialr=   r>   )DenseFeaturesrD   addsubtractmultiplyaveragemaximumminimumconcatenatedot),hasattrLOCALr)   GENERATED_WITH_V2tf__internal__tf2enabledr   Layerr%   !populate_dict_with_module_objectsALL_MODULESALL_V2_MODULESr   BatchNormalizationr   tf_keras.srcr;   3tf_keras.src.feature_column.sequence_feature_columnr<   "tf_keras.src.premade_models.linearr=   %tf_keras.src.premade_models.wide_deepr>   r   r?   r   r@   rA   rB   rC   -tf_keras.src.feature_column.dense_features_v2rD   *tf_keras.src.feature_column.dense_featuresr   rE   rF   rG   rH   rI   rJ   rK   rL   )r;   r<   r=   r>   rD   r2   s        @r3   populate_deserializable_objectsr_   f   s    5-(("& 	##r':':'B'B'DD 	E oo1199;EH33K 
""$$77O	
 	11 

 	.. 

 $ "-!2!2Eg%/%9%9Ek"&,&7&7El#!'Eg,<E()&,&7&7El#'2Em$)6Eo&	""$$	
 .;/*	
 .;/*  '{{Ee$+$4$4Ej!$+$4$4Ej!#*??Ei #*??Ei #*??Ei '.':':Em$&{{Eer6   zkeras.layers.serializec                     [        U [        R                  5      (       a  [        SU  S35      eU(       a  [        R
                  " U 5      $ [        R
                  " U 5      $ )a  Serializes a `Layer` object into a JSON-compatible representation.

Args:
  layer: The `Layer` object to serialize.

Returns:
  A JSON-serializable dict representing the object's config.

Example:

```python
from pprint import pprint
model = tf.keras.models.Sequential()
model.add(tf.keras.Input(shape=(16,)))
model.add(tf.keras.layers.Dense(32, activation='relu'))

pprint(tf.keras.layers.serialize(model))
# prints the configuration of the model, as a dict.
zCannot serialize z since it is a metric. Please use the `keras.metrics.serialize()` and `keras.metrics.deserialize()` APIs to serialize and deserialize metrics.)
isinstancer!   Metric
ValueErrorlegacy_serializationserialize_keras_objectr"   )layeruse_legacy_formats     r3   	serializerh      s\    * %++,,w '' '
 	
 #::5AA33E::r6   zkeras.layers.deserializec                     [        5         U (       d  [        SU  35      eU(       a%  [        R                  " U [        R
                  USS9$ [        R                  " U [        R
                  USS9$ )a  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...)

Example:

```python
# Configuration of Dense(32, activation='relu')
config = {
  'class_name': 'Dense',
  'config': {
    'activation': 'relu',
    'activity_regularizer': None,
    'bias_constraint': None,
    'bias_initializer': {'class_name': 'Zeros', 'config': {}},
    'bias_regularizer': None,
    'dtype': 'float32',
    'kernel_constraint': None,
    'kernel_initializer': {'class_name': 'GlorotUniform',
                           'config': {'seed': None}},
    'kernel_regularizer': None,
    'name': 'dense',
    'trainable': True,
    'units': 32,
    'use_bias': True
  }
}
dense_layer = tf.keras.layers.deserialize(config)
```
z2Cannot deserialize empty config. Received: config=rf   )module_objectscustom_objectsprintable_module_name)r_   rc   rd   deserialize_keras_objectrN   r)   r"   )configrk   rg   s      r3   deserializero      sv    L $%@I
 	
 #<< ,,)")	
 	
 55((%%	 r6   c                 ~    [        [        S5      (       d
  [        5         [        R                  R	                  U 5      $ )z?Returns class if `class_name` is registered, else returns None.r)   )rM   rN   r_   r)   get)
class_names    r3   get_builtin_layerrs     s,    5-((')  ,,r6   c                 t    [        5         [        R                  " U [        R                  US9n[        X!5      $ )z(Instantiates a layer from a JSON string.)rj   rk   )r_   r$   decode_and_deserializerN   r)   ro   )json_stringrk   rn   s      r3   deserialize_from_jsonrw   #  s4    #%..((%F
 v..r6   )F)NFr+   )B__doc__	threadingtensorflow.compat.v2compatv2rP   tf_keras.src.enginer   r   r   tf_keras.src.layersr   r   r   r	   r
   r   r   r   r   r   !tf_keras.src.layers.normalizationr   r   r   r   r   !tf_keras.src.layers.preprocessingr   r   r   r   r   r   r   preprocessing_normalizationr   r   tf_keras.src.layers.rnnr   r   r    tf_keras.src.metricsr!   tf_keras.src.savingr"   tf_keras.src.saving.legacyr#   rd   &tf_keras.src.saving.legacy.saved_modelr$   tf_keras.src.utilsr%   r&   r-    tensorflow.python.util.tf_exportr'   rV   rW   localrN   r_   rh   ro   rs   rw    r6   r3   <module>r      sI   5  ! ! * + * * ) - $ 1 ' ' . ) # A D A A @ ? < = 5 A < < @ 1 ' ( , 1 L = , 4 : 38  	V+r &'; (;B ()7 *7t-/r6   