
    &Vf
                         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 Zdd	Zdd
Z	ddZ
ddZddZd ZddZddZddZddZddZdS )    N)floatx)SeedGenerator)	draw_seed)make_default_seedc                 X    t          | t          j                  r| S t          |           S N)
isinstancejaxArrayr   )seeds    Y/var/www/html/software/conda/lib/python3.11/site-packages/keras/src/backend/jax/random.pyjax_draw_seedr   	   s'    $	""                   ?c                     |pt                      }t          |          }t          j                            || |          }||z  |z   S N)shapedtype)r   r   r
   randomnormalr   meanstddevr   r   samples         r   r   r      sH    VXXEDZt5>>FF?T!!r   c                     |pt                      }t          |          }t          j                            || |||          S N)r   r   minvalmaxval)r   r   r
   r   uniformr   r   r   r   r   s        r   r    r       sG    VXXED:Evf    r   int32c                     t          |          }t          | j                  }||d<   t          |          }t          j                            || d         |d          }|                    |          S )N   ).N)r   axis)r   listr   tupler
   r   categoricalastype)logitsnum_samplesr   r   output_shapeoutputs         r   r(   r(      sr    D%%L!LO&&LZ##fY|! $  F ==r   c                 h    t          |          }t          j                            || |||          S r   )r   r
   r   randintr!   s        r   r/   r/   *   s9    D:Evf    r   c                     |pt                      }t          |          }t          j                            || dd|          }||z  |z   S )Ng       g       @)r   lowerupperr   )r   r   r
   r   truncated_normalr   s         r   r3   r3   1   sU    VXXEDZ((ES )  F F?T!!r   c                     || j         S | j         }g }t          |          D ]$\  }}|                    |||         n|           %|S r   )r   	enumerateappend)inputsnoise_shapeconcrete_inputs_shapeconcrete_noise_shapeivalues         r   _get_concrete_noise_shaper=   :   sp    |"Lk** 
 
5##(-!!$$5	
 	
 	
 	
  r   c                 Z   t          |          }d|z
  }t          | |          }t          j                            |||          }t          j                            || j                  }t          j        	                    || |z  t          j        
                    |                     S )Nr   )pr   )r   r=   r
   r   	bernoullinumpybroadcast_tor   laxselect
zeros_like)r7   rater8   r   	keep_probmasks         r   dropoutrI   G   s    Dd
I ,FK@@K:	EED9!!$55D7>>fy #)"6"6v">">  r   c                 f    t          |          }t          j                            || |d          S )NT)independent)r   r
   r   permutation)xr%   r   s      r   shufflerN   T   s.    D:!!$4T!BBBr   c                     t          |          }|pt                      }t          j                            ||| |          S r   )r   r   r
   r   gamma)r   alphar   r   s       r   rP   rP   Y   s<    DVXXE:D%uEBBBr   c                    |pt                      }t          |          }t          j                            |          }t          j                            |          }t          j                            |||| |          }|S )N)keynr?   r   r   )r   r   r
   rA   arrayr   binomial)r   countsprobabilitiesr   r   r   s         r   rV   rV   _   sq    VXXEDY__V$$FIOOM22MZ  Fm5 !  F Mr   c                    |pt                      }t          |          }t          j                            |          }t          j                            |          }t          j                            |||| |          }|S )N)rS   abr   r   )r   r   r
   rA   rU   r   beta)r   rQ   r\   r   r   r   s         r   r\   r\   k   so    VXXEDIOOE""E9??4  DZ__ETe   F Mr   )r   r   NN)r"   N)NN)r   N)r
   keras.src.backend.configr   keras.src.random.seed_generatorr   r   r   r   r   r    r(   r/   r3   r=   rI   rN   rP   rV   r\    r   r   <module>r`      sN   



 + + + + + + 9 9 9 9 9 9 5 5 5 5 5 5 = = = = = =  " " " "             " " " "
  
  
 
 
 
 
C C C C
C C C C	 	 	 		 	 	 	 	 	r   