
    &Vf                      2   d Z ddlmZ ddlmZ ddlmZ ddlmZ	  ed           G d de                      Z
 ed	           G d
 de                      Z ed           G d de                      Z ed           G d de                      ZdS )zPLegacy Keras 1/2 layers.

AlphaDropout
RandomHeight
RandomWidth
ThresholdedReLU
    )backend)keras_export)Layer)
tensorflowz!keras._legacy.layers.AlphaDropoutc                   <     e Zd ZdZd fd	Zd	dZ fdZd Z xZS )
AlphaDropoutDEPRECATED.Nc                      t                      j        di | || _        || _        || _        t
          j                            |          | _        d| _	        d| _
        d S )NT )super__init__rateseednoise_shaper   randomSeedGeneratorseed_generatorsupports_maskingbuilt)selfr   r   r   kwargs	__class__s        T/var/www/html/software/conda/lib/python3.11/site-packages/keras/src/legacy/layers.pyr   zAlphaDropout.__init__   sa    ""6"""		&%n::4@@ $


    Fc                    |r| j         dk    rd}d}| |z  }| j        t          j        |          }n| j        }t          j        t
          j                            |          | j         | j                  }t          j	        ||j
                  }d| j         z
  d| j         |dz  z  z   z  dz  }| |z  | j         z  }	||z  |d|z
  z  z   }
||
z  |	z   S |S )Nr   g,x?g2֫?)r         g      )r   r   tfshapegreater_equalr   r   uniformr   castdtype)r   inputstrainingalphascalealpha_pr   kept_idxabxs              r   callzAlphaDropout.call   s     		A5E5EfunG' hv..".'&&{33	(  H
 wx66H di-A	GQJ(>$>?DHAWty(A !Gq8|$<<A q519r   c                 n    | j         | j        d}t                                                      }i ||S )N)r   r   )r   r   r   
get_configr   configbase_configr   s      r   r/   zAlphaDropout.get_config8   s9    )TY77gg((**(+(((r   c                     |S Nr   r   input_shapes     r   compute_output_shapez!AlphaDropout.compute_output_shape=       r   )NN)F	__name__
__module____qualname____doc__r   r-   r/   r7   __classcell__r   s   @r   r   r      s                8) ) ) ) )
      r   r   z!keras._legacy.layers.RandomHeightc                   <     e Zd ZdZd	 fd	Zd
dZd Z fdZ xZS )RandomHeightr	   bilinearNc                     t                      j        di | t          j                            |          | _        || _        t          |t          t          f          r|d         | _
        |d         | _        n| | _
        || _        | j        | j
        k     rt          d|           | j
        dk     s| j        dk     rt          d|           || _        || _        d S )Nr   r   z[`factor` argument cannot have an upper bound lesser than the lower bound. Received: factor=      D`factor` argument must have values larger than -1. Received: factor=r   )r   r   r   r   r   r   factor
isinstancetuplelistheight_lowerheight_upper
ValueErrorinterpolationr   r   rF   rM   r   r   r   s        r   r   zRandomHeight.__init__E   s   ""6"""%n::4@@fudm,, 	' &q	D &q	D!'D &Dt000:17: :   t##t'84'?'?-$*- -   +			r   Tc                 b     t          j        | j                  } fd}|r ||          S |S )Nr#   c                 R   t          j        |           }t          j        |d         t           j                  }|d         }t          j                            g d	j        z   d	j        z   	j	                  }t          j        ||z  t           j
                  }t          j        ||g          }t           j                            | |	j                  }t          j        |	j                  }| j                                        }d|d<   |                    |           |S )z'Inputs height-adjusted with random ops.      ?r   minvalmaxvalr   imagessizemethodN)r   r   r"   float32r   r   r!   rJ   rK   r   int32stackimageresizerM   compute_dtypeas_list	set_shape)
r$   inputs_shapeimg_hdimg_wdheight_factoradjusted_heightadjusted_sizeoutputoutput_shaper   s
            r   random_height_inputsz/RandomHeight.call.<locals>.random_height_inputs`   s   8F++LW\"-rz::F!"%F#N22d//d//(	 3  M !gmf&<bhGGOHov%>??MX__") %  F WVT%788F!<//11L#L\***Mr   r   convert_to_tensorra   )r   r$   r%   rl   s   `   r   r-   zRandomHeight.call]   sT    %fD4FGGG	 	 	 	 	2  	''///Mr   c                 H    t          |          }d |d<   t          |          S )NrR   rI   rH   r5   s     r   r7   z!RandomHeight.compute_output_shape~   &    ;''B[!!!r   c                 z    | j         | j        | j        d}t                                                      }i ||S N)rF   rM   r   rF   rM   r   r   r/   r0   s      r   r/   zRandomHeight.get_config   F    k!/I
 

 gg((**(+(((r   rB   NT	r:   r;   r<   r=   r   r-   r7   r/   r>   r?   s   @r   rA   rA   A   s             0   B" " "
) ) ) ) ) ) ) ) )r   rA   z keras._legacy.layers.RandomWidthc                   <     e Zd ZdZd	 fd	Zd
dZd Z fdZ xZS )RandomWidthr	   rB   Nc                     t                      j        di | t          j                            |          | _        || _        t          |t          t          f          r|d         | _
        |d         | _        n| | _
        || _        | j        | j
        k     rt          d|           | j
        dk     s| j        dk     rt          d|           || _        || _        d S )Nr   r   zY`factor` argument cannot have an upper bound less than the lower bound. Received: factor=rD   rE   r   )r   r   r   r   r   r   rF   rG   rH   rI   width_lowerwidth_upperrL   rM   r   rN   s        r   r   zRandomWidth.__init__   s   ""6"""%n::4@@fudm,, 	&%ayD%ayD &wD%Dd...:17: :   d""d&6&=&=-$*- -   +			r   Tc                 b     t          j        | j                  } fd}|r ||          S |S )NrP   c                 R   t          j        |           }|d         }t          j        |d         t           j                  }t          j                            g d	j        z   d	j        z   	j	                  }t          j        ||z  t           j
                  }t          j        ||g          }t           j                            | |	j                  }t          j        |	j                  }| j                                        }d|d<   |                    |           |S )z&Inputs width-adjusted with random ops.rR   rS   rT   rU   rX   N)r   r   r"   r\   r   r   r!   r|   r}   r   r]   r^   r_   r`   rM   ra   rb   rc   )
r$   rd   re   rf   width_factoradjusted_widthri   rj   rk   r   s
            r   random_width_inputsz-RandomWidth.call.<locals>.random_width_inputs   s   8F++L!"%FW\"-rz::F">11d..d..(	 2  L  W\F%:BHEENHfn%=>>MX__") %  F WVT%788F!<//11L#L\***Mr   rm   )r   r$   r%   r   s   `   r   r-   zRandomWidth.call   sT    %fD4FGGG	 	 	 	 	2  	&&v...Mr   c                 H    t          |          }d |d<   t          |          S )NrS   rp   r5   s     r   r7   z RandomWidth.compute_output_shape   rq   r   c                 z    | j         | j        | j        d}t                                                      }i ||S rs   rt   r0   s      r   r/   zRandomWidth.get_config   ru   r   rv   rw   rx   r?   s   @r   rz   rz      s             .   B" " "
) ) ) ) ) ) ) ) )r   rz   z$keras._legacy.layers.ThresholdedReLUc                   :     e Zd ZdZd fd	Zd Z fdZd Z xZS )ThresholdedReLUr	   rT   c                      t                      j        di | |t          d|           |dk     rt          d|           d| _        t	          j        || j                  | _        d S )NzOTheta of a Thresholded ReLU layer cannot be None, expecting a float. Received: r   zEThe theta value of a Thresholded ReLU layer should be >=0. Received: TrP   r   )r   r   rL   r   r   rn   ra   theta)r   r   r   r   s      r   r   zThresholdedReLU.__init__   s    ""6"""=,$), ,   1994,14 4   !%)%t7IJJJ


r   c                 p    | j         }|t          j        t          j        || j                  |          z  S r4   )ra   r   r"   greaterr   )r   r$   r#   s      r   r-   zThresholdedReLU.call   s/    "
64: > >FFFFr   c                 |    dt          | j                  i}t                                                      }i ||S )Nr   )floatr   r   r/   r0   s      r   r/   zThresholdedReLU.get_config   s<    5,,-gg((**(+(((r   c                     |S r4   r   r5   s     r   r7   z$ThresholdedReLU.compute_output_shape   r8   r   )rT   r9   r?   s   @r   r   r      s        K K K K K KG G G) ) ) ) )
      r   r   N)r=   	keras.srcr   keras.src.api_exportr   keras.src.layers.layerr   keras.src.utils.module_utilsr   r   r   rA   rz   r   r   r   r   <module>r      s~          - - - - - - ( ( ( ( ( ( 9 9 9 9 9 9 122. . . . .5 . . 32.b 122H) H) H) H) H)5 H) H) 32H)V 011G) G) G) G) G)% G) G) 21G)T 455    e   65  r   