
    6bi2                     n   S r SSK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/J0r0  SSK1J2r2  SSK3J4r4  SSK5J6r6  SSK5J7r7  SSK8J9r9  SSK:J;r<  SSK=J>r>  SS K=J?r?  SS!K@JArA  \A" S"5      S,S# j5       rBS$ rC\A" S%5      S-S& j5       rD\A" S'/ S(9S) 5       rE\A" S*5      S+ 5       rFg).zcBuilt-in optimizer classes.

For more examples see the base class `tf.keras.optimizers.Optimizer`.
    N)logging)backend)adadelta)	adafactor)adagrad)adam)adamax)adamw)ftrl)lion)nadam)	optimizer)rmsprop)sgd)gradient_descent)optimizer_v2)Adadelta)Adagrad)Adam)Adamax)Ftrl)SGD)Nadam)RMSprop)	Optimizer)TFOptimizer)learning_rate_schedule)serialization)deserialize_keras_object)serialize_keras_object)keras_exportzkeras.optimizers.serializec                 
    U c  g[        U [        R                  [        [        R                  45      (       d#  [
        R                  " S[        U 5       S35        U(       a  [        R                  " U 5      $ [        U 5      $ )a  Serialize the optimizer configuration to JSON compatible python dict.

The configuration can be used for persistence and reconstruct the
`Optimizer` instance again.

>>> tf.keras.optimizers.serialize(tf.keras.optimizers.legacy.SGD())
{'module': 'keras.optimizers.legacy', 'class_name': 'SGD', 'config': {'name': 'SGD', 'learning_rate': 0.01, 'decay': 0.0, 'momentum': 0.0, 'nesterov': False}, 'registered_name': None}
NzThe `keras.optimizers.serialize()` API should only be used for objects of type `keras.optimizers.Optimizer`. Found an instance of type z+, which may lead to improper serialization.)

isinstancebase_optimizerr   base_optimizer_legacyOptimizerV2warningswarntypelegacy_serializationr    )r   use_legacy_formats     Z/home/james-whalen/.local/lib/python3.13/site-packages/tf_keras/src/optimizers/__init__.py	serializer-   L   s     $$!--	
  	I' (	
 #::9EE!),,    c                  p    [         R                  " 5       S:H  =(       a    [         R                  " 5       S:H  $ )NDarwinarm)platformsystem	processor r.   r,   
is_arm_macr6   r   s'    ??(JX-?-?-AU-JJr.   zkeras.optimizers.deserializec                 v   SSK Jn  UR                  SS5      nU(       a  [        SU 35      e[	        U S   5      S:  a  U S   R                  SS5      n[        R                  R                  R                  5       (       Ga	  [        R                  " 5       (       a  [        5       (       d  U(       d  [        R                  [        R                  [         R"                  [$        R&                  [        R                  [        R                  [         R"                  [(        R*                  [,        R.                  [0        R2                  [(        R*                  [4        R6                  UR8                  UR8                  UR:                  S	.nO[<        R                  [>        R                  [@        R"                  [B        R&                  [        R                  [        R                  [         R"                  [(        R*                  [D        R.                  [F        R2                  [H        R*                  [J        R6                  UR:                  UR8                  UR:                  S	.nU S
   RM                  5       U;   a  U S
   RM                  5       U S
'   U(       a  [N        RP                  " U UUSS9$ [Q        U UUSS9$ )a,  Inverse of the `serialize` function.

Args:
    config: Optimizer configuration dictionary.
    custom_objects: Optional dictionary mapping names (strings) to custom
        objects (classes and functions) to be considered during
        deserialization.

Returns:
    A TF-Keras Optimizer instance.
r   loss_scale_optimizeruse_legacy_optimizerFInvalid keyword arguments: configis_legacy_optimizerT)r   r   r   r	   experimentaladadeltaexperimentaladagradexperimentaladamexperimentalsgdr   r   r   r   lossscaleoptimizerlossscaleoptimizerv3lossscaleoptimizerv1
class_namer   )module_objectscustom_objectsprintable_module_name))tf_keras.src.mixed_precisionr9   pop	TypeErrorlengettf__internal__tf2enabledexecuting_eagerlyr6   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   LossScaleOptimizerV3LossScaleOptimizeradadelta_legacyadagrad_legacyadam_legacyadamax_legacynadam_legacyrmsprop_legacygradient_descent_legacyftrl_legacylowerr*   r   )r<   rG   r+   kwargsr9   r:   all_classess          r,   deserializer`   v   s    "::&<eD5fX>??
6(q 
  &h/334I4P
##%%  ""$
 !))IImm$,$5$5#*?? $		"ww[[77II"6"K"K$8$M$M %9$K$K#
* (00%--$$#**$,$5$5#*?? $		"ww!''%--*..$$"6"I"I$8$M$M %9$K$K#
* l!!#{2%l399;|#<<&)"-	
 	
 $"%)	 r.   z9keras.__internal__.optimizers.convert_to_legacy_optimizer)v1c                 N   SSK Jn  [        U [        R                  5      (       d  [        SU  S[        U 5       S35      eU R                  R                  R                  5       nU R                  5       n/ SQnU H  nUR                  US5        M     [        XR                  5      (       a   [        U R                  5      US'   US	:X  a  S
n[        U S5      (       a8  [        U R                   ["        R$                  5      (       a  U R                   US'   UUS.n['        USSS9$ )a\  Convert experimental optimizer to legacy optimizer.

This function takes in a `keras.optimizers.Optimizer`
instance and converts it to the corresponding
`keras.optimizers.legacy.Optimizer` instance.
For example, `keras.optimizers.Adam(...)` to
`keras.optimizers.legacy.Adam(...)`.

Args:
    optimizer: An instance of `keras.optimizers.Optimizer`.
r   r8   zr`convert_to_legacy_optimizer` should only be called on instances of `tf.keras.optimizers.Optimizer`, but received z	 of type .)weight_decayuse_emaema_momentumema_overwrite_frequencyjit_compiler=   Ninner_optimizerrC   rB   _learning_ratelearning_raterE   r<   Tr:   r+   )rI   r9   r#   r$   r   
ValueErrorr)   	__class____name__r]   
get_configrJ   rS   convert_to_legacy_optimizerri   hasattrrj   r   LearningRateScheduler`   )r   r9   optimizer_namer<   keys_to_removekeylegacy_optimizer_configs          r,   rr   rr      s2   " i!9!9::!{)DO+<A?
 	

 ((11779N!!#FN 

3  )FFGG$?%%%
 ! 331N y*++
  "8"M"M1 1 #,":":$ ! r.   zkeras.optimizers.getc                    UR                  SS5      nU(       a  [        SU 35      e[        U [        [        R
                  45      (       a  U $ [        U [        R                  5      (       a:  [        R                  R                  R                  5       (       a  U $ [        U 5      $ [        U [        R                  R                  R                  R                  5      (       a#  [        U 5      n[         R"                  " U5        U$ [        U [$        5      (       a  SU ;  n['        U UUS9$ [        U [(        5      (       a  [)        U 5      0 S.n[+        UUS9$ [-        SU  35      e)	a  Retrieves a TF-Keras Optimizer instance.

Args:
    identifier: Optimizer identifier, one of - String: name of an optimizer
      - Dictionary: configuration dictionary. - TF-Keras Optimizer instance
      (it will be returned unchanged). - TensorFlow Optimizer instance (it
      will be wrapped as a TF-Keras Optimizer).

Returns:
    A TF-Keras Optimizer instance.

Raises:
    ValueError: If `identifier` cannot be interpreted.
r:   Fr;   modulerm   rl   )r:   z*Could not interpret optimizer identifier: )rJ   rK   r#   r   r%   r&   r$   rN   rO   rP   rQ   rr   compatra   trainr   r   track_tf_optimizerdictr`   strrM   rn   )
identifierr^   r:   optr+   r<   s         r,   rM   rM     sK     "::&<eD5fX>??!--	
  	J 8 8	9	9??&&(( /z:: 
J		 2 2 < <	=	=*%""3'
	J	%	%$J6!5/
 	

 
J	$	$ #J2>!5
 	

 8E
 	
r.   )F)NF)G__doc__r2   r'   tensorflow.compat.v2r{   v2rN   abslr   tf_keras.srcr   tf_keras.src.optimizersr   r   r   r   r	   r
   r   r   r   r   r$   r   r   tf_keras.src.optimizers.legacyrU   rV   rW   rX   r\   r   r[   rY   r   r%   rZ   'tf_keras.src.optimizers.legacy.adadeltar   &tf_keras.src.optimizers.legacy.adagradr   #tf_keras.src.optimizers.legacy.adamr   %tf_keras.src.optimizers.legacy.adamaxr   #tf_keras.src.optimizers.legacy.ftrlr   /tf_keras.src.optimizers.legacy.gradient_descentr   $tf_keras.src.optimizers.legacy.nadamr   &tf_keras.src.optimizers.legacy.rmspropr   $tf_keras.src.optimizers.optimizer_v1r   r   !tf_keras.src.optimizers.schedulesr   tf_keras.src.saving.legacyr   r*   %tf_keras.src.saving.serialization_libr   r     tensorflow.python.util.tf_exportr!   r-   r6   r`   rr   rM   r5   r.   r,   <module>r      s     ! !    , - + ( * ) ( ( ) ? + ' F D > B > A P D < : 4 8 4 @ 6 : : < D L J H :
 *+"- ,"-JK ,-\ .\~ ?B<<~ $%7
 &7
r.   