
    &Vfd                         d dl Z d dlmZ d dlmc m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lmZ d dlmZ  ej                    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)convert_to_tensor)
get_device)to_torch_dtype)SeedGenerator)	draw_seed)make_default_seedc                     t          |           \  }}t                      }|dk    rd S t          j        t                                }|                    t          ||z                        |S )Nmetadevice)r   r   torch	Generatormanual_seedint)seed
first_seedsecond_seedr   	generators        [/var/www/html/software/conda/lib/python3.11/site-packages/keras/src/backend/torch/random.pytorch_seed_generatorr      sh    'ooJ\\Ftz||444I#j;677888                  ?c           	         |pt                      }t          |          }t                      dk    r%t          j        ||| |t                                S t          |          }t          j        ||| ||t                                S )Nr   sizedtyper   r   r   r   r   )r   r   r   r   normalr   )shapemeanstddevr   r   r   s         r   r    r       s    VXXE5!!E||v|&uE*,,
 
 
 	
 %T**I<||   r   int32c                 V   t          |           } t          |          }t          j        | d          }t	                      dk    r*t          j        ||d                              |          S t          |          }t          j        ||d|                              |          S )N)dimr   T)replacement)r(   r   )r   r   r   softmaxr   multinomialtyper   )logitsnum_samplesr   r   probsr   s         r   categoricalr/   /   s    v&&F5!!EM&b)))E||v 
 
 
 $u++		
 %T**I	  
 d5kkr   c                    |pt                      }t          |          }| }t          |          dk    rd} t                      dk    r$t	          j        | |t                                }n3t          |          }t	          j        | ||t                                }||z
  |z  |z   }t          |          dk    r|d         S |S )Nr      r   r   r   )r   r   lenr   r   randr   )	r!   minvalmaxvalr   r   requested_shaperand_tensorr   outputs	            r   uniformr:   C   s    VXXE5!!EO
?q  ||vje5NNN(..	j)5
 
 
 vo,v5F
?q  ayMr   c           	          t          |          }t                      dk    r%t          j        ||| |t                                S t	          |          }t          j        ||| ||t                                S )Nr   )lowhighr   r   r   )r<   r=   r   r   r   r   )r   r   r   randintr   )r!   r5   r6   r   r   r   s         r   r>   r>   Y   s    5!!E||v}<<
 
 
 	
 %T**I=||   r   c                    t          |          }t          t          |           dz   dd||          }|dk    |dk     z  }|                    dd	          d         }t	          j        | |t                      
          }|j                            |	                    d|          
                    d                     |j                            |                              |           |S )N)   r   r2   )r"   r#   r   r      r&   T)keepdim)r   r   )r   r    tuplemaxr   emptyr   datacopy_gathersqueezemul_add_)	r!   r"   r#   r   r   xvalidindexestrunc_xs	            r   truncated_normalrQ   o   s    5!!E 	uU||d"1EMMMAVAEiiDi))!,Gk%uZ\\BBBGLqxxG,,44R88999Lf""4(((Nr   c                     || j         S | j         }g }t          |          D ]$\  }}|                    |||         n|           %|S )N)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          |t                    r	|j        |d|z
  }t          | |          }t	          j        ||t                                }t          |          }t                      dk    rt	          j        |          }nt	          j        ||          }|	                                }t	          j
        || j                  }t	          j        || |z  t	          j        | | j                            S t          j        j                            | |dd          S )	Nr   r   r   )r   )r   TF)ptraininginplace)
isinstancer   _initial_seedr[   r   fullr   r   	bernoulliboolbroadcast_tor!   where
zeros_liker   nn
functionaldropout)rU   raterV   r   	keep_probkeep_prob_matrixr   masks           r   rj   rj      s,   D-00 	595G5O"$J	/DD ::<<
 
 
 )..	 <<6!!?#344DD?#3yIIIDyy{{!$55{YV6<888
 
 	
 8&&$u '   r   c                 |   t          |           } t                      dk    rFt          j        | j        d |dz            t                                                    |          }nUt          |          }t          j        | j        d |dz            |t                                                    |          }t          | j        |z
  dz
            D ]}|	                    d            |j
        g d t          |dz             D             | j        |dz   d          R  }|                     ||          S )Nr   r2   r   )r   r   r&   c                     g | ]}d S r1    ).0_s     r   
<listcomp>zshuffle.<locals>.<listcomp>   s    	%	%	%!	%	%	%r   )r   r   r   r4   r!   argsortr   rangendim
unsqueeze_repeatrI   )rM   axisr   row_permr   rs   s         r   shuffler|      sK   !A ||v:agjqj1*,,GGGOO
 
 )..	:GJdQhJ9Z\\
 
 

'$-- 	 16D=1$%%    B x 	%	%U4!8__	%	%	%)*)<  H 88D(###r   c                 T   |pt                      }t          |          }t          j        t	          |          |           }t          j        | t                                }t          j                                        }t                      dk    s)t          |          \  }}t          j
        ||z              t          j        j                            ||          }|                                                    |          }	t          j                            |           |	S )Nr   r   )r   r   r   re   r   onesr   randomget_rng_stater   r   distributionsgammaGammasampler+   set_rng_state)
r!   alphar   r   betaprev_rng_stater   r   gamma_distributionr   s
             r   r   r      s    VXXE5!!E077??E:eJLL111D\//11N<<6!!"+D//
K*{2333,288EE&&((--e44F	L~...Mr   c                 V   |pt                      }t          |          }t          j        t	          |          |           }t          j        t	          |          |           }t          j                                        }t                      dk    s)t          |          \  }}t          j	        ||z              t          j
        j                            ||          }|                                                    |          }	t          j                            |           |	S )Nr   )total_countr.   )r   r   r   re   r   r   r   r   r   r   r   binomialBinomialr   r+   r   )
r!   countsprobabilitiesr   r   r   r   r   binomial_distributionr   s
             r   r   r      s    VXXE5!!E 1& 9 95AAF&'8'G'GOOM\//11N<<6!!"+D//
K*{2333!/8AA- B   #))++0077F	L~...Mr   c                 V   |pt                      }t          |          }t          j        t	          |          |           }t          j        t	          |          |           }t          j                                        }t                      dk    s)t          |          \  }}t          j	        ||z              t          j
        j                            ||          }|                                                    |          }	t          j                            |           |	S )Nr   )concentration1concentration0)r   r   r   re   r   r   r   r   r   r   r   r   Betar   r+   r   )
r!   r   r   r   r   r   r   r   beta_distributionr   s
             r   r   r      s    VXXE5!!E077??E/55u==D\//11N<<6!!"+D//
K*{2333+055T 6   %%'',,U33F	L~...Mr   )r   r   NN)r$   N)NN)r   N)r   torch._dynamo_dynamodynamotorch.nn.functionalrh   ri   tnnkeras.src.backend.configr   keras.src.backend.torch.corer   r   r   keras.src.random.seed_generatorr   r   r	   disabler   r    r/   r:   r>   rQ   r[   rj   r|   r   r   r   rq   r   r   <module>r      s          ! ! ! ! ! ! ! ! ! + + + + + + : : : : : : 3 3 3 3 3 3 7 7 7 7 7 7 9 9 9 9 9 9 5 5 5 5 5 5 = = = = = =
      &   (   ,   ,
 
 
 

  
  
    B$ $ $ $2       $     r   