
    bIgs                        d dl mZ d dlZd dlmZ d dlmZ 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZ G d de      Z	 G d d	e	      Z
 G d
 de	      Zy)    )annotationsN)RandomState)OpRunc                   |dk(  s|s,|r'| t        j                  | j                  t              fS | fS t	        |      }|j                  dd| j                        |k\  }dd|z
  z  }|r|| z  |z  |j                  t              fS || z  |z  fS )Nr   )dtypeg      ?)nponesshapeboolr   uniformastype)Xdrop_probabilityseedtraining_modereturn_maskrndmaskscales           Z/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/reference/ops/op_dropout.py_dropoutr      s     1MbggaggT222t
d
C;;q#qww'+;;D3))*E4?D1Hudkk$/0XdQhQVFVEXX    c                  4    e Zd Zd Z	 	 	 d	 	 	 	 	 	 	 	 	 ddZy)DropoutBasec                f    t        j                  | ||       t        |j                        | _        y N)r   __init__lenoutput	n_outputs)self	onnx_node
run_paramss      r   r   zDropoutBase.__init__   s$    tY
3Y--.r   Nc                <    t        |||| j                  dk(  |      S )N   )r   r   r   )r   r    )r!   r   r   ratior   s        r   _private_runzDropoutBase._private_run#   s)     !+'
 	
r   )N      ?F)
r   
np.ndarrayr   
int | Noner&   floatr   r   returntuple[np.ndarray])__name__
__module____qualname__r   r'    r   r   r   r      sG    /  #

 
 	

 
 

r   r   c                      e Zd ZddZy)	Dropout_7Nc                &    | j                  ||      S r   )r'   )r!   r   r&   s      r   _runzDropout_7._run4   s      E**r   r   r.   r/   r0   r5   r1   r   r   r3   r3   3   s    +r   r3   c                      e Zd ZdddZy)
Dropout_12N)r   c                   |d   }t        |      dk  rdn|d   }t        |      dk  rdn|d   }| j                  ||||      S )Nr      r(   r%   F)r   r&   r   )r   r'   )r!   r   inputsr   r&   r   s         r   r5   zDropout_12._run9   s[    1I6{a'VAY!$V!1vay  '	 ! 
 	
r   r6   r1   r   r   r8   r8   8   s
    !% 	
r   r8   )r(   NFF)r   r)   r   r+   r   r*   r   r   r   r   r,   r-   )
__future__r   numpyr   numpy.randomr   onnx.reference.op_runr   r   r   r3   r8   r1   r   r   <module>r@      s    #  $ '
 "YYY Y 	Y
 Y Y$
% 
*+ +


 

r   