§
    ~Wêh–I  ã                   ób  — d Z ddlmc mZ ddlmZ ej        j        j        Z	ej        j        j
        Zej        j        j        Zej        j        j        Zej        j        j        Zej        j        j        j        Zej        j        j        Zej        j        j        Z  eddgd¬¦  «        e	¦  «           edd	gd¬¦  «        e¦  «           ed
dgd¬¦  «        e¦  «           edgd¬¦  «        e¦  «           eddgd¬¦  «        e¦  «           eddgd¬¦  «        e¦  «           edgd¬¦  «        e¦  «           edgd¬¦  «        e¦  «          eg d¢¬¦  «         G d„ dej        j        j        ¦  «        ¦   «         Z eg d¢¬¦  «         G d„ dej        j        j        ¦  «        ¦   «         Z eddg¬¦  «         G d„ dej        j        j        ¦  «        ¦   «         Z edg¬¦  «         G d„ d ej        j        j        ¦  «        ¦   «         Z ed!g¬¦  «         G d"„ d#ej        j        j        ¦  «        ¦   «         Z  ed$g¬¦  «         G d%„ d&ej        j        j        ¦  «        ¦   «         Z! ed'g¬¦  «         G d(„ d)ej        j        j        ¦  «        ¦   «         Z"dS )*zKeras initializers for TF 1.é    N)Úkeras_exportzkeras.initializers.Zeroszkeras.initializers.zerosT)Úv1Úallow_multiple_exportszkeras.initializers.Oneszkeras.initializers.oneszkeras.initializers.Constantzkeras.initializers.constantz"keras.initializers.VarianceScalingzkeras.initializers.Orthogonalzkeras.initializers.orthogonalzkeras.initializers.Identityzkeras.initializers.identityz!keras.initializers.glorot_uniformz keras.initializers.glorot_normal)zkeras.initializers.RandomNormalz keras.initializers.random_normalzkeras.initializers.normal)r   c                   ó6   ‡ — e Zd ZdZdddej        fˆ fd„	Zˆ xZS )ÚRandomNormalaý  Initializer that generates a normal distribution.

    Args:
      mean: a python scalar or a scalar tensor. Mean of the random values to
        generate.
      stddev: a python scalar or a scalar tensor. Standard deviation of the
        random values to generate.
      seed: A Python integer. Used to create random seeds. See
        `tf.compat.v1.set_random_seed` for behavior.
      dtype: Default data type, used if no `dtype` argument is provided when
        calling the initializer. Only floating point types are supported.

    @compatibility(TF2)
    Although it is a legacy compat.v1 api,
    `tf.compat.v1.keras.initializers.RandomNormal` is compatible with eager
    execution and `tf.function`.

    To switch to native TF2, switch to using
    `tf.keras.initializers.RandomNormal` (not from `compat.v1`) and
    if you need to change the default dtype use
    `tf.keras.backend.set_floatx(float_dtype)`
    or pass the dtype when calling the initializer, rather than passing it
    when constructing the initializer.

    Random seed behavior:
    Also be aware that if you pass a seed to the TF2 initializer
    API it will reuse that same seed for every single initialization
    (unlike the TF1 initializer)

    #### Structural Mapping to Native TF2

    Before:

    ```python
    initializer = tf.compat.v1.keras.initializers.RandomNormal(
      mean=mean,
      stddev=stddev,
      seed=seed,
      dtype=dtype)

    weight_one = tf.Variable(initializer(shape_one))
    weight_two = tf.Variable(initializer(shape_two))
    ```

    After:

    ```python
    initializer = tf.keras.initializers.RandomNormal(
      mean=mean,
      # seed=seed,  # Setting a seed in the native TF2 API
                    # causes it to produce the same initializations
                    # across multiple calls of the same initializer.
      stddev=stddev)

    weight_one = tf.Variable(initializer(shape_one, dtype=dtype))
    weight_two = tf.Variable(initializer(shape_two, dtype=dtype))
    ```

    #### How to Map Arguments

    | TF1 Arg Name      | TF2 Arg Name    | Note                       |
    | :---------------- | :-------------- | :------------------------- |
    | `mean`            | `mean`          | No change to defaults |
    | `stddev`          | `stddev`        | No change to defaults |
    | `seed`            | `seed`          | Different random number generation |
    :                   :        : semantics (to change in a :
    :                   :        : future version). If set, the TF2 version :
    :                   :        : will use stateless random number :
    :                   :        : generation which will produce the exact :
    :                   :        : same initialization even across multiple :
    :                   :        : calls of the initializer instance. the :
    :                   :        : `compat.v1` version will generate new :
    :                   :        : initializations each time. Do not set :
    :                   :        : a seed if you need different          :
    :                   :        : initializations each time. Instead    :
    :                   :        : either set a global tf seed with      :
    :                   :        : `tf.random.set_seed` if you need      :
    :                   :        : determinism, or initialize each weight:
    :                   :        : with a separate initializer instance  :
    :                   :        : and a different seed.                 :
    | `dtype`           | `dtype`  | The TF2 native api only takes it    |
    :                   :      : as a `__call__` arg, not a constructor arg. :
    | `partition_info`  | -    |  (`__call__` arg in TF1) Not supported      |

    #### Example of fixed-seed behavior differences

    `compat.v1` Fixed seed behavior:

    >>> initializer = tf.compat.v1.keras.initializers.RandomNormal(seed=10)
    >>> a = initializer(shape=(2, 2))
    >>> b = initializer(shape=(2, 2))
    >>> tf.reduce_sum(a - b) == 0
    <tf.Tensor: shape=(), dtype=bool, numpy=False>

    After:

    >>> initializer = tf.keras.initializers.RandomNormal(seed=10)
    >>> a = initializer(shape=(2, 2))
    >>> b = initializer(shape=(2, 2))
    >>> tf.reduce_sum(a - b) == 0
    <tf.Tensor: shape=(), dtype=bool, numpy=True>

    @end_compatibility
    ç        çš™™™™™©?Nc                 óR   •— t          ¦   «                              ||||¬¦  «         d S )N©ÚmeanÚstddevÚseedÚdtype©ÚsuperÚ__init__©Úselfr   r   r   r   Ú	__class__s        €úh/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/keras/initializers/initializers_v1.pyr   zRandomNormal.__init__°   s*   ø€ Ý‰Œ×Ò˜d¨6¸ÀEÐÑJÔJÐJÐJÐJó    ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚtfÚfloat32r   Ú__classcell__©r   s   @r   r   r   ?   sa   ø€ € € € € ðgð gðR  ¨°4¸r¼zð Kð Kð Kð Kð Kð Kð Kð Kð Kð Kr   r   )z keras.initializers.RandomUniformz!keras.initializers.random_uniformzkeras.initializers.uniformc                   ó6   ‡ — e Zd ZdZdddej        fˆ fd„	Zˆ xZS )ÚRandomUniforma6  Initializer that generates tensors with a uniform distribution.

    Args:
      minval: A python scalar or a scalar tensor. Lower bound of the range of
        random values to generate.
      maxval: A python scalar or a scalar tensor. Upper bound of the range of
        random values to generate.  Defaults to 1 for float types.
      seed: A Python integer. Used to create random seeds. See
        `tf.compat.v1.set_random_seed` for behavior.
      dtype: Default data type, used if no `dtype` argument is provided when
        calling the initializer.

    @compatibility(TF2)
    Although it is a legacy `compat.v1` api,
    `tf.compat.v1.keras.initializers.RandomUniform` is compatible with eager
    execution and `tf.function`.

    To switch to native TF2, switch to using
    `tf.keras.initializers.RandomUniform` (not from `compat.v1`) and
    if you need to change the default dtype use
    `tf.keras.backend.set_floatx(float_dtype)`
    or pass the dtype when calling the initializer, rather than passing it
    when constructing the initializer.

    Random seed behavior:

    Also be aware that if you pass a seed to the TF2 initializer
    API it will reuse that same seed for every single initialization
    (unlike the TF1 initializer)

    #### Structural Mapping to Native TF2

    Before:

    ```python

    initializer = tf.compat.v1.keras.initializers.RandomUniform(
      minval=minval,
      maxval=maxval,
      seed=seed,
      dtype=dtype)

    weight_one = tf.Variable(initializer(shape_one))
    weight_two = tf.Variable(initializer(shape_two))
    ```

    After:

    ```python
    initializer = tf.keras.initializers.RandomUniform(
      minval=minval,
      maxval=maxval,
      # seed=seed,  # Setting a seed in the native TF2 API
                    # causes it to produce the same initializations
                    # across multiple calls of the same initializer.
      )

    weight_one = tf.Variable(initializer(shape_one, dtype=dtype))
    weight_two = tf.Variable(initializer(shape_two, dtype=dtype))
    ```

    #### How to Map Arguments

    | TF1 Arg Name      | TF2 Arg Name    | Note                       |
    | :---------------- | :-------------- | :------------------------- |
    | `minval`            | `minval`          | No change to defaults |
    | `maxval`          | `maxval`        | No change to defaults |
    | `seed`            | `seed`          | Different random number generation |
    :                    :        : semantics (to change in a :
    :                    :        : future version). If set, the TF2 version :
    :                    :        : will use stateless random number :
    :                    :        : generation which will produce the exact :
    :                    :        : same initialization even across multiple :
    :                    :        : calls of the initializer instance. the :
    :                    :        : `compat.v1` version will generate new :
    :                    :        : initializations each time. Do not set :
    :                    :        : a seed if you need different          :
    :                    :        : initializations each time. Instead    :
    :                    :        : either set a global tf seed with
    :                    :        : `tf.random.set_seed` if you need :
    :                    :        : determinism, or initialize each weight :
    :                    :        : with a separate initializer instance  :
    :                    :        : and a different seed.                 :
    | `dtype`           | `dtype`  | The TF2 native api only takes it  |
    :                   :      : as a `__call__` arg, not a constructor arg. :
    | `partition_info`  | -    |  (`__call__` arg in TF1) Not supported      |

    #### Example of fixed-seed behavior differences

    `compat.v1` Fixed seed behavior:

    >>> initializer = tf.compat.v1.keras.initializers.RandomUniform(seed=10)
    >>> a = initializer(shape=(2, 2))
    >>> b = initializer(shape=(2, 2))
    >>> tf.reduce_sum(a - b) == 0
    <tf.Tensor: shape=(), dtype=bool, numpy=False>

    After:

    >>> initializer = tf.keras.initializers.RandomUniform(seed=10)
    >>> a = initializer(shape=(2, 2))
    >>> b = initializer(shape=(2, 2))
    >>> tf.reduce_sum(a - b) == 0
    <tf.Tensor: shape=(), dtype=bool, numpy=True>

    @end_compatibility
    gš™™™™™©¿r	   Nc                 óR   •— t          ¦   «                              ||||¬¦  «         d S )N)ÚminvalÚmaxvalr   r   r   )r   r$   r%   r   r   r   s        €r   r   zRandomUniform.__init__(  s*   ø€ Ý‰Œ×Ò ¨v¸DÈÐÑNÔNÐNÐNÐNr   r   r    s   @r   r"   r"   ´   sa   ø€ € € € € ðjð jðX $¨D°tÀ2Ä:ð Oð Oð Oð Oð Oð Oð Oð Oð Oð Or   r"   z"keras.initializers.TruncatedNormalz#keras.initializers.truncated_normalc                   ó6   ‡ — e Zd ZdZdddej        fˆ fd„	Zˆ xZS )ÚTruncatedNormala  Initializer that generates a truncated normal distribution.

    These values are similar to values from a `random_normal_initializer`
    except that values more than two standard deviations from the mean
    are discarded and re-drawn. This is the recommended initializer for
    neural network weights and filters.

    Args:
      mean: a python scalar or a scalar tensor. Mean of the random values to
        generate.
      stddev: a python scalar or a scalar tensor. Standard deviation of the
        random values to generate.
      seed: A Python integer. Used to create random seeds. See
        `tf.compat.v1.set_random_seed` for behavior.
      dtype: Default data type, used if no `dtype` argument is provided when
        calling the initializer. Only floating point types are supported.

    @compatibility(TF2)
    Although it is a legacy compat.v1 api,
    `tf.compat.v1.keras.initializers.TruncatedNormal` is compatible with eager
    execution and `tf.function`.

    To switch to native TF2, switch to using
    `tf.keras.initializers.TruncatedNormal` (not from `compat.v1`) and
    if you need to change the default dtype use
    `tf.keras.backend.set_floatx(float_dtype)`
    or pass the dtype when calling the initializer, rather than passing it
    when constructing the initializer.

    Random seed behavior:
    Also be aware that if you pass a seed to the TF2 initializer
    API it will reuse that same seed for every single initialization
    (unlike the TF1 initializer)

    #### Structural Mapping to Native TF2

    Before:

    ```python
    initializer = tf.compat.v1.keras.initializers.TruncatedNormal(
      mean=mean,
      stddev=stddev,
      seed=seed,
      dtype=dtype)

    weight_one = tf.Variable(initializer(shape_one))
    weight_two = tf.Variable(initializer(shape_two))
    ```

    After:

    ```python
    initializer = tf.keras.initializers.TruncatedNormal(
      mean=mean,
      # seed=seed,  # Setting a seed in the native TF2 API
                    # causes it to produce the same initializations
                    # across multiple calls of the same initializer.
      stddev=stddev)

    weight_one = tf.Variable(initializer(shape_one, dtype=dtype))
    weight_two = tf.Variable(initializer(shape_two, dtype=dtype))
    ```

    #### How to Map Arguments

    | TF1 Arg Name      | TF2 Arg Name    | Note                       |
    | :---------------- | :-------------- | :------------------------- |
    | `mean`            | `mean`          | No change to defaults |
    | `stddev`          | `stddev`        | No change to defaults |
    | `seed`            | `seed`          | Different random number generation |
    :                    :        : semantics (to change in a :
    :                    :        : future version). If set, the TF2 version :
    :                    :        : will use stateless random number :
    :                    :        : generation which will produce the exact :
    :                    :        : same initialization even across multiple :
    :                    :        : calls of the initializer instance. the :
    :                    :        : `compat.v1` version will generate new :
    :                    :        : initializations each time. Do not set :
    :                    :        : a seed if you need different          :
    :                    :        : initializations each time. Instead    :
    :                    :        : either set a global tf seed with
    :                    :        : `tf.random.set_seed` if you need :
    :                    :        : determinism, or initialize each weight :
    :                    :        : with a separate initializer instance  :
    :                    :        : and a different seed.                 :
    | `dtype`           | `dtype`  | The TF2 native api only takes it  |
    :                   :      : as a `__call__` arg, not a constructor arg. :
    | `partition_info`  | -    |  (`__call__` arg in TF1) Not supported      |

    #### Example of fixed-seed behavior differences

    `compat.v1` Fixed seed behavior:

    >>> initializer = tf.compat.v1.keras.initializers.TruncatedNormal(seed=10)
    >>> a = initializer(shape=(2, 2))
    >>> b = initializer(shape=(2, 2))
    >>> tf.reduce_sum(a - b) == 0
    <tf.Tensor: shape=(), dtype=bool, numpy=False>

    After:

    >>> initializer = tf.keras.initializers.TruncatedNormal(seed=10)
    >>> a = initializer(shape=(2, 2))
    >>> b = initializer(shape=(2, 2))
    >>> tf.reduce_sum(a - b) == 0
    <tf.Tensor: shape=(), dtype=bool, numpy=True>

    @end_compatibility
    r   r	   Nc                 óR   •— t          ¦   «                              ||||¬¦  «         dS )aM  Initializer that generates a truncated normal distribution.


        Args:
          mean: a python scalar or a scalar tensor. Mean of the random values to
            generate.
          stddev: a python scalar or a scalar tensor. Standard deviation of the
            random values to generate.
          seed: A Python integer. Used to create random seeds. See
            `tf.compat.v1.set_random_seed` for behavior.
          dtype: Default data type, used if no `dtype` argument is provided when
            calling the initializer. Only floating point types are supported.
        r   Nr   r   s        €r   r   zTruncatedNormal.__init__¡  s,   ø€ õ 	‰Œ×Ò˜d¨6¸ÀEÐÑJÔJÐJÐJÐJr   r   r    s   @r   r'   r'   ,  sa   ø€ € € € € ðlð lð\  ¨°4¸r¼zð Kð Kð Kð Kð Kð Kð Kð Kð Kð Kr   r'   zkeras.initializers.lecun_normalc                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )ÚLecunNormalNc                 óR   •— t          ¦   «                              ddd|¬¦  «         d S )Nç      ð?Úfan_inÚtruncated_normal©ÚscaleÚmodeÚdistributionr   r   ©r   r   r   s     €r   r   zLecunNormal.__init__´  ó8   ø€ Ý‰Œ×ÒØ˜HÐ3EÈDð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 ó   — d| j         iS ©Nr   ©r   ©r   s    r   Ú
get_configzLecunNormal.get_config¹  ó   € Ø˜œ	Ð"Ð"r   ©N©r   r   r   r   r9   r   r    s   @r   r*   r*   ²  óL   ø€ € € € € ð
ð 
ð 
ð 
ð 
ð 
ð
#ð #ð #ð #ð #ð #ð #r   r*   z keras.initializers.lecun_uniformc                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )ÚLecunUniformNc                 óR   •— t          ¦   «                              ddd|¬¦  «         d S )Nr,   r-   Úuniformr/   r   r3   s     €r   r   zLecunUniform.__init__¿  ó7   ø€ Ý‰Œ×ÒØ˜H°9À4ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 ó   — d| j         iS r6   r7   r8   s    r   r9   zLecunUniform.get_configÄ  r:   r   r;   r<   r    s   @r   r?   r?   ½  r=   r   r?   zkeras.initializers.he_normalc                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )ÚHeNormalNc                 óR   •— t          ¦   «                              ddd|¬¦  «         d S )Nç       @r-   r.   r/   r   r3   s     €r   r   zHeNormal.__init__Ê  r4   r   c                 ó   — d| j         iS r6   r7   r8   s    r   r9   zHeNormal.get_configÏ  r:   r   r;   r<   r    s   @r   rE   rE   È  r=   r   rE   zkeras.initializers.he_uniformc                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )Ú	HeUniformNc                 óR   •— t          ¦   «                              ddd|¬¦  «         d S )NrG   r-   rA   r/   r   r3   s     €r   r   zHeUniform.__init__Õ  rB   r   c                 ó   — d| j         iS r6   r7   r8   s    r   r9   zHeUniform.get_configÚ  r:   r   r;   r<   r    s   @r   rJ   rJ   Ó  r=   r   rJ   )#r   Útensorflow.compat.v2ÚcompatÚv2r   Ú tensorflow.python.util.tf_exportr   r   Úzeros_initializerÚ_v1_zeros_initializerÚones_initializerÚ_v1_ones_initializerÚconstant_initializerÚ_v1_constant_initializerÚvariance_scaling_initializerÚ _v1_variance_scaling_initializerÚorthogonal_initializerÚ_v1_orthogonal_initializerÚinitializersÚidentityÚ_v1_identityÚglorot_uniform_initializerÚ_v1_glorot_uniform_initializerÚglorot_normal_initializerÚ_v1_glorot_normal_initializerÚrandom_normal_initializerr   Úrandom_uniform_initializerr"   Útruncated_normal_initializerr'   r*   r?   rE   rJ   © r   r   ú<module>rf      së  ðð #Ð "ð "Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ð !ð :Ð 9Ð 9Ð 9Ð 9Ð 9àœ	œÔ6Ð Ø”y”|Ô4Ð Øœ9œ<Ô<Ð Ø#%¤9¤<Ô#LÐ  ØœYœ\Ô@Ð ØŒyŒ|Ô(Ô1€Ø!#¤¤Ô!HÐ Ø "¤	¤Ô FÐ ð€€Ø"Ð$>Ð?Øðñ ô ð ñô ð ð€€Ø!Ð#<Ð=Øðñ ô ð ñô ð ð€€Ø%Ð'DÐEØðñ ô ð ñô ð ð€€Ø,Ð-Àdðñ ô à"ñ$ô $ð $ð€€Ø'Ð)HÐIØðñ ô ð ñô ð ð€€Ø%Ð'DÐEØðñ ô ð ñô ð ð€€Ø+Ð,ÀTðñ ô à ñ"ô "ð "ð€€Ø*Ð+ÀDðñ ô àñ!ô !ð !ð
 €ðð ð ðñ ô ðkKð kKð kKð kKð kK2”9”<Ô9ñ kKô kKñô ðkKð\ €ðð ð ðñ ô ðnOð nOð nOð nOð nOB”I”LÔ;ñ nOô nOñô ðnOðb €à,Ø-ððñ ô ð}Kð }Kð }Kð }Kð }Kb”i”lÔ?ñ }Kô }Kñô ð}Kð@ €Ð3Ð4Ð5Ñ5Ô5ð#ð #ð #ð #ð #"”)”,Ô;ñ #ô #ñ 6Ô5ð#ð €Ð4Ð5Ð6Ñ6Ô6ð#ð #ð #ð #ð #2”9”<Ô<ñ #ô #ñ 7Ô6ð#ð €Ð0Ð1Ð2Ñ2Ô2ð#ð #ð #ð #ð #ˆrŒyŒ|Ô8ñ #ô #ñ 3Ô2ð#ð €Ð1Ð2Ð3Ñ3Ô3ð#ð #ð #ð #ð #”	”Ô9ñ #ô #ñ 4Ô3ð#ð #ð #r   