
    &Vf                     J   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ddg           G d d	e                      Z
 ed
dg           G d de                      Z eddg           G d de                      Z eg d           G d de                      ZdS )    )ops)keras_export)standardize_dtype)Initializer)serialization_libzkeras.initializers.Constantzkeras.initializers.constantc                   >    e Zd ZdZddZd	dZd Zed             ZdS )
Constanta  Initializer that generates tensors with constant values.

    Only scalar values are allowed.
    The constant value provided must be convertible to the dtype requested
    when calling the initializer.

    Examples:

    >>> # Standalone usage:
    >>> initializer = Constant(10.)
    >>> values = initializer(shape=(2, 2))

    >>> # Usage in a Keras layer:
    >>> initializer = Constant(10.)
    >>> layer = Dense(3, kernel_initializer=initializer)

    Args:
        value: A Python scalar.
            c                     || _         d S N)value)selfr   s     i/var/www/html/software/conda/lib/python3.11/site-packages/keras/src/initializers/constant_initializers.py__init__zConstant.__init__   s    


    Nc                     t          |          }t          j        | j        |          t          j        ||          z  S )Ndtype)shaper   )r   r   castr   onesr   r   r   s      r   __call__zConstant.__call__!   sE    !%((x
%00038u4
 4
 4
 
 	
r   c                 8    dt          j        | j                  iS Nr   )r   serialize_keras_objectr   )r   s    r   
get_configzConstant.get_config'   s    *A$*MMNNr   c                 L    t          j        |d                   } | |          S r   )r   deserialize_keras_object)clsconfigr   s      r   from_configzConstant.from_config*   s$    !:6'?KKs5zzr   )r
   r   )	__name__
__module____qualname____doc__r   r   r   classmethodr"    r   r   r	   r	      ss         (   
 
 
 
O O O   [  r   r	   zkeras.initializers.Zeroszkeras.initializers.zerosc                       e Zd ZdZddZdS )Zerosa.  Initializer that generates tensors initialized to 0.

    Examples:

    >>> # Standalone usage:
    >>> initializer = Zeros()
    >>> values = initializer(shape=(2, 2))

    >>> # Usage in a Keras layer:
    >>> initializer = Zeros()
    >>> layer = Dense(units=3, kernel_initializer=initializer)
    Nc                 L    t          |          }t          j        ||          S   Returns a tensor object initialized as specified by the initializer.

        Args:
            shape: Shape of the tensor.
            dtype: Optional dtype of the tensor. Only numeric or boolean dtypes
                are supported. If not specified, `keras.backend.floatx()`
                is used, which default to `float32` unless you configured it
                otherwise (via `keras.backend.set_floatx(float_dtype)`).
        r   )r   r   zerosr   s      r   r   zZeros.__call__?   s&     "%((ye,,,,r   r   r#   r$   r%   r&   r   r(   r   r   r*   r*   0   s2         - - - - - -r   r*   zkeras.initializers.Oneszkeras.initializers.onesc                       e Zd ZdZddZdS )Onesa\  Initializer that generates tensors initialized to 1.

    Also available via the shortcut function `ones`.

    Examples:

    >>> # Standalone usage:
    >>> initializer = Ones()
    >>> values = initializer(shape=(2, 2))

    >>> # Usage in a Keras layer:
    >>> initializer = Ones()
    >>> layer = Dense(3, kernel_initializer=initializer)
    Nc                 L    t          |          }t          j        ||          S r,   )r   r   r   r   s      r   r   zOnes.__call__^   s&     "%((xU++++r   r   r/   r(   r   r   r1   r1   M   s2         , , , , , ,r   r1   )z&keras.initializers.IdentityInitializerzkeras.initializers.Identityzkeras.initializers.identityc                   "    e Zd ZdZddZddZdS )Identitya  Initializer that generates the identity matrix.

    Only usable for generating 2D matrices.

    Examples:

    >>> # Standalone usage:
    >>> initializer = Identity()
    >>> values = initializer(shape=(2, 2))

    >>> # Usage in a Keras layer:
    >>> initializer = Identity()
    >>> layer = Dense(3, kernel_initializer=initializer)

    Args:
        gain: Multiplicative factor to apply to the identity matrix.
          ?c                     || _         d S r   )gain)r   r7   s     r   r   zIdentity.__init__   s    			r   Nc                     t          |          dk    r#t          d| dt          |           d          t          |          }| j        t	          j        |d|iz  S )r-      zNIdentity matrix initializer can only be used for 2D matrices. Received: shape=z	 of rank .r   )len
ValueErrorr   r7   r   eyer   s      r   r   zIdentity.__call__   s     u::??A#(A A36u::A A A   "%((y37E77777r   )r5   r   )r#   r$   r%   r&   r   r   r(   r   r   r4   r4   l   sF         $   8 8 8 8 8 8r   r4   N)	keras.srcr   keras.src.api_exportr   keras.src.backendr   "keras.src.initializers.initializerr   keras.src.savingr   r	   r*   r1   r4   r(   r   r   <module>rC      s         - - - - - - / / / / / / : : : : : : . . . . . . ,.KLMM$ $ $ $ ${ $ $ NM$N )+EFGG- - - - -K - - HG-8 (*CDEE, , , , ,; , , FE,<    &8 &8 &8 &8 &8{ &8 &8 &8 &8 &8r   