o
    2hy                     @   s   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 dlm	Z	 dd	d
Z
dddZd ddZd!ddZdddZd"ddZd#ddZd"ddZd"ddZd"ddZdS )$    N)floatx)softmax)SeedGenerator)	draw_seed)make_default_seed              ?c                 C   4   |pt  }t|}tj|}|j| ||d|S )N)sizelocscale)r   r   nprandomdefault_rngnormalastype)shapemeanstddevdtypeseedrng r   Y/var/www/html/chatgem/venv/lib/python3.10/site-packages/keras/src/backend/numpy/random.pyr   
      
r   c                 C   r	   )N)r
   lowhigh)r   r   r   r   r   uniformr   )r   minvalmaxvalr   r   r   r   r   r   r      r   r   int64c           
      C   sd   t |}tj|}g }| D ]}t|}t|jd }|j|||d}	||	 qt	|
|S )N)r
   p)r   r   r   r   r   aranger   choiceappendarrayr   )
logitsnum_samplesr   r   r   outputlogits_instanceprobabilitiesclassessamplesr   r   r   categorical   s   r.   int32c                 C   s*   t |}tj|}|j||| |d}|S )N)r   r   r
   r   )r   r   r   r   integers)r   r   r   r   r   r   r)   r   r   r   randint$   s   r1   c                 C   s   |pt  }t|}tj|}|d|  }|d|  }t| }td}	|	jd |k rK|j|||d}
|
|
|k|
|k@  }t	|	|}	|	jd |k s,|	d | 
|| S )N   r   )r   r   r
   )r   r   r   r   r   prodemptyr   r   r%   r   reshape)r   r   r   r   r   r   lower_boundupper_bound
flat_shaperandom_numbersbatchvalidr   r   r   truncated_normal+   s   


r<   c                    s    j }t|}d| }|d u r j}n fddt|D }tj|}|j|d|k }t| j}t	| | 
|t S )Nr   c                    s&   g | ]\}}|d ur|n j | qS )N)r   ).0ininputsr   r   
<listcomp>Q   s    zdropout.<locals>.<listcomp>)r
   )r   r   r   	enumerater   r   r   r   broadcast_towherer   
zeros_like)rA   ratenoise_shaper   r   	keep_probr   maskr   r@   r   dropoutE   s   
rK   c                 C   s"   t |}tj|}|j| |dS )N)axis)r   r   r   r   permuted)xrL   r   r   r   r   r   shuffle^   s   rO   c                 C   s4   |pt  }t|}tj|}|j|d| d|S )Nr   )r   r
   )r   r   r   r   r   gammar   )r   alphar   r   r   r   r   r   rP   d   r   rP   c                 C   8   |pt  }t|}tj|}|j||| d|}|S )N)r?   r"   r
   )r   r   r   r   r   binomialr   )r   countsr+   r   r   r   sampler   r   r   rS   k   
   
rS   c                 C   rR   )N)abr
   )r   r   r   r   r   betar   )r   rQ   rY   r   r   r   rU   r   r   r   rY   s   rV   rY   )r   r   NN)r    N)r/   N)NN)r   N)numpyr   keras.src.backend.configr   keras.src.backend.numpy.nnr   keras.src.random.seed_generatorr   r   r   r   r   r.   r1   r<   rK   rO   rP   rS   rY   r   r   r   r   <module>   s     








