
    bIg                    b    d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d	dZ
 G d de      Zy)
    )annotationsN)helper)Base)expectc                f   |dk(  s|du r-|du r'| t        j                  | j                  t              fS | S t         j                  j                  |       t         j                  j                  dd| j                        |k\  }dd|z
  z  }|r|| z  |z  |j                  t              fS || z  |z  S )Nr   FT)dtypeg      ?   )nponesshapeboolrandomseeduniformastype)Xdrop_probabilityr   training_modereturn_maskmaskscales          `/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/dropout.pydropoutr      s    1 6$bggaggT222HIINN499QQWW-1AAD%%&Eax%T!222!8e    c                      e Zd Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Z	edd       Z
edd       Zedd	       Zedd
       Zedd       Zedd       Zy)Dropoutc                 ,   t        j                  d      } t        j                  j	                  ddgdg|       }t         j
                  j                  ddd      j                  t         j                        }t        |      }t        ||g|gd	
       y )Nr   r   xyinputsoutputsr            test_dropout_defaultr!   r"   namer
   int64onnxr   	make_noder   randnr   float32r   r   )r   noder   r   s       r   export_defaultzDropout.export_default   sr    xx{{{$$YuseRV$WIIOOAq!$++BJJ7AJtQC!3IJr   c                 \   t        j                  d      } t        j                  j	                  dddgdg|       }t        j
                  d      }t         j                  j                  dd	d
      j                  t         j
                        }t        ||      }t        |||g|gd       y )Nr   r   r   rr   r    皙?r#   r$   r%   test_dropout_default_ratior'   r
   r*   r+   r   r,   r.   r   r-   r   r   r   )r   r/   r2   r   r   s        r   export_default_ratiozDropout.export_default_ratio(   s    xx{{{$$sCj3%d % 
 JJsOIIOOAq!$++BJJ7AqMtQFQC6RSr   c                 :   t        j                  d      } t        j                  j	                  ddgddg|       }t         j
                  j                  ddd	      j                  t         j                        }t        |d
      \  }}t        ||g||gd       y )Nr   r   r   r   zr    r#   r$   r%   Tr   test_dropout_default_maskr'   r)   )r   r/   r   r   r8   s        r   export_default_maskzDropout.export_default_mask4   s    xx{{{$$sec3Zd % 
 IIOOAq!$++BJJ7qd+1tQC!Q6QRr   c                 j   t        j                  d      } t        j                  j	                  dddgddg|       }t        j
                  d      }t         j                  j                  d	d
d      j                  t         j
                        }t        ||d      \  }}t        |||g||gd       y )Nr   r   r   r2   r   r8   r    r3   r#   r$   r%   Tr9   test_dropout_default_mask_ratior'   r5   )r   r/   r2   r   r   r8   s         r   export_default_mask_ratioz!Dropout.export_default_mask_ratio?   s    xx{{{$$sCj3*4 % 
 JJsOIIOOAq!$++BJJ7q!.1!Q!Q6W	
r   c                    t        j                  d      } t        j                  j	                  dg ddg|       }t         j
                  j                  ddd      j                  t         j                        }t        j                  d	      }t        j                  d
      }t        |||      }t        ||||g|gd       y )Nr   r   r   r2   tr   r    r#   r$   r%         ?Tr   test_training_dropout_defaultr'   r
   r*   r+   r   r,   r   r-   r   r.   bool_r   r   r   r/   r   r2   rA   r   s         r   export_training_defaultzDropout.export_training_defaultO   s    xx{{{$$ou4 % 
 IIOOAq!$++BJJ7JJsOHHTNAq*!QQC6U	
r   c                    t        j                  d      } t        j                  j	                  dg dddg|       }t         j
                  j                  ddd	      j                  t         j                        }t        j                  d
      }t        j                  d      }t        |||d      \  }}t        ||||g||gd       y )Nr   r   r@   r   r8   r    r#   r$   r%   rB   Tr   r   "test_training_dropout_default_maskr'   rE   r   r/   r   r2   rA   r   r8   s          r   "export_training_default_ratio_maskz*Dropout.export_training_default_ratio_mask^   s    xx{{{$$oSz % 
 IIOOAq!$++BJJ7JJsOHHTNq!1$?1q!9F5		
r   c                    t        j                  d      } t        j                  j	                  dg ddg|       }t         j
                  j                  ddd      j                  t         j                        }t        j                  d	      }t        j                  d
      }t        |||      }t        ||||g|gd       y )Nr   r   r@   r   r    r#   r$   r%         ?TrC   test_training_dropoutr'   rE   rG   s         r   export_trainingzDropout.export_trainingp   s    xx{{{$$ou4 % 
 IIOOAq!$++BJJ7JJtHHTNAq*tQ1Is9PQr   c                    t        j                  d      } t        j                  j	                  dg dddg|       }t         j
                  j                  ddd	      j                  t         j                        }t        j                  d
      }t        j                  d      }t        |||d      \  }}t        ||||g||gd       y )Nr   r   r@   r   r8   r    r#   r$   r%   rO   TrJ   test_training_dropout_maskr'   rE   rL   s          r   export_training_ratio_maskz"Dropout.export_training_ratio_mask}   s    xx{{{$$oSz % 
 IIOOAq!$++BJJ7JJtHHTNq!1$?1!QQF9U	
r   c                    t        j                  d      } t        j                  j	                  dg ddg|       }t         j
                  j                  ddd      j                  t         j                        }t        j                  d	      }t        j                  d
      }t        |||      }t        ||||g|gd       y )Nr   r   r@   r   r    r#   r$   r%           TrC    test_training_dropout_zero_ratior'   rE   rG   s         r   "export_training_default_zero_ratioz*Dropout.export_training_default_zero_ratio   s    xx{{{$$ou4 % 
 IIOOAq!$++BJJ7JJsOHHTNAq*!QQC6X	
r   c                    t        j                  d      } t        j                  j	                  dg dddg|       }t         j
                  j                  ddd	      j                  t         j                        }t        j                  d
      }t        j                  d      }t        |||d      \  }}t        ||||g||gd       y )Nr   r   r@   r   r8   r    r#   r$   r%   rV   TrJ   %test_training_dropout_zero_ratio_maskr'   rE   rL   s          r   'export_training_default_zero_ratio_maskz/Dropout.export_training_default_zero_ratio_mask   s    xx{{{$$oSz % 
 IIOOAq!$++BJJ7JJsOHHTNq!1$?1q!9F8		
r   c            
        t         j                  j                  ddgdg      } t        j                  g d      j                  t        j                        }|}t        | |g|gdt        j                  dd      g	       y )
Nr   r   r   )r!   r"   )r   r	   test_dropout_default_old    r!   r"   r(   opset_imports)	r+   r   r,   r
   arrayr   r.   r   make_opsetidr/   r   r   s      r   export_default_oldzDropout.export_default_old   sw    {{$$5E % 
 HHZ ''

33C+!..r267	
r   c            
        t         j                  j                  ddgdgd      } t        j                  j                  ddd      j                  t        j                        }|}t        | |g|gd	t        j                  d
d      g       y )Nr   r   r   g?)r!   r"   ratior#   r$   r%   test_dropout_random_oldr_   r`   ra   )
r+   r   r,   r
   r   r-   r   r.   r   rd   re   s      r   export_random_oldzDropout.export_random_old   s    {{$$5E	 % 
 IIOOAq!$++BJJ73C*!..r267	
r   N)returnNone)__name__
__module____qualname__staticmethodr0   r6   r;   r>   rH   rM   rQ   rT   rX   r[   rf   rj    r   r   r   r      s    K K 	T 	T S S 
 
 
 
 
 
" 
R 
R 
 
 
 
 
 
& 
 
" 
 
r   r   )rB   r   FF)
__future__r   numpyr
   r+   r   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   rq   r   r   <module>rv      s,    #    , .u
d u
r   