
    BVhb%                        d 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 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 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 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# 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* dd%lm+Z+ dd&lm,Z, dd'l-m.Z. dd(l-m/Z/ dd)l-m0Z0 dd*l-m1Z1 dd+l-m2Z2 dd,l-m3Z3 dd-l-m4Z4 dd.l-m5Z5 dd/l-m6Z6 dd0l-m7Z7 dd1l-m8Z8 dd2l-m9Z9 dd3l-m:Z: dd4l;m<Z< dd5l;m=Z= dd6l>m?Z? dd7l@mAZA dd8l@mBZB dd9l@mCZC dd:l@mDZD dd;l@mEZE dd<l@mFZF dd=l@mGZG dd>l@mHZH dd?l@mIZI dd@l@mJZJ ddAl@mKZK ddBl@mLZL ddCl@mMZM ddDl@mNZN ddEl@mOZO ddFl@mPZP ddGlQmRZR ddHlQmSZS ddIlQmTZT ddJlQmUZU ddKlQmVZV ddLlQmWZW ddMlQmXZX ddNlQmYZY ddOlQmZZZ ddPlQm[Z[ ddQlQm\Z\ ddRlQm]Z] ddSlQm^Z^ ddTlQm_Z_ ddUlQm`Z` ddVlQmaZa ddWlQmbZb ddXlQmcZc ddYlQmdZd ddZlQmeZe dd[lQmfZf dd\lQmgZg dd]lQmhZh dd^lQmiZi dd_ljmkZk dd`ljmlZl ddaljmmZm ddbljmnZn ddcljmoZo dddljmpZp  ej                         rddeljmrZs ddfljmtZu ddgljmvZw ddhljmxZy n ddeljmrZr ddfljmtZt ddgljmvZv ddhljmxZx erZsetZuevZwexZyddilzm{Z{ ddjl|m}Z} ddkl|m~Z~ ddll|mZ ddmlmZ ddnlmZ ddolmZ  G dp dqe      Zyr)szKeras layers API.    )tf2)Input)
InputLayer)	InputSpec)Layer)PreprocessingLayer)	LeakyReLU)PReLU)ELU)ReLU)ThresholdedReLU)Softmax)Conv1D)Conv2D)Conv3D)Conv1DTranspose)Conv2DTranspose)Conv3DTranspose)SeparableConv1D)SeparableConv2D)Convolution1D)Convolution2D)Convolution3D)Convolution2DTranspose)Convolution3DTranspose)SeparableConvolution1D)SeparableConvolution2D)DepthwiseConv2D)UpSampling1D)UpSampling2D)UpSampling3D)ZeroPadding1D)ZeroPadding2D)ZeroPadding3D)
Cropping1D)
Cropping2D)
Cropping3D)Masking)Dropout)SpatialDropout1D)SpatialDropout2D)SpatialDropout3D)
Activation)Reshape)Permute)Flatten)RepeatVector)Lambda)Dense)ActivityRegularization)AdditiveAttention)	Attention)	Embedding)Add)Subtract)Multiply)Average)Maximum)Minimum)Concatenate)Dot)add)subtract)multiply)average)maximum)minimum)concatenate)dot)MaxPooling1D)MaxPooling2D)MaxPooling3D)AveragePooling1D)AveragePooling2D)AveragePooling3D)GlobalAveragePooling1D)GlobalAveragePooling2D)GlobalAveragePooling3D)GlobalMaxPooling1D)GlobalMaxPooling2D)GlobalMaxPooling3D)	MaxPool1D)	MaxPool2D)	MaxPool3D)	AvgPool1D)	AvgPool2D)	AvgPool3D)GlobalAvgPool1D)GlobalAvgPool2D)GlobalAvgPool3D)GlobalMaxPool1D)GlobalMaxPool2D)GlobalMaxPool3D)RNN)AbstractRNNCell)StackedRNNCells)SimpleRNNCell)PeepholeLSTMCell)	SimpleRNN)GRU)GRUCell)LSTM)LSTMCell)
ConvLSTM2D)DeviceWrapper)DropoutWrapper)ResidualWrapper)serialization)deserialize)	serializec                   "     e Zd ZdZ fdZ xZS )VersionAwareLayersa  Utility to be used internally to access layers in a V1/V2-aware fashion.

  When using layers within the Keras codebase, under the constraint that
  e.g. `layers.BatchNormalization` should be the `BatchNormalization` version
  corresponding to the current runtime (TF1 or TF2), do not simply access
  `layers.BatchNormalization` since it would ignore e.g. an early
  `compat.v2.disable_v2_behavior()` call. Instead, use an instance
  of `VersionAwareLayers` (which you can use just like the `layers` module).
  c                     t        j                          |t         j                  j                  v rt         j                  j                  |   S t        t
        |   |      S )N)rn   populate_deserializable_objectsLOCALALL_OBJECTSsuperrr   __getattr__)selfname	__class__s     W/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/keras/layers/__init__.pyrx   zVersionAwareLayers.__getattr__   sM    113}""...  ,,T22#T6t<<    )__name__
__module____qualname____doc__rx   __classcell__)r{   s   @r|   rr   rr      s    = =r}   rr   N)r   tensorflow.pythonr   *tensorflow.python.keras.engine.input_layerr   r   )tensorflow.python.keras.engine.input_specr   )tensorflow.python.keras.engine.base_layerr   7tensorflow.python.keras.engine.base_preprocessing_layerr   3tensorflow.python.keras.layers.advanced_activationsr	   r
   r   r   r   r   ,tensorflow.python.keras.layers.convolutionalr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   #tensorflow.python.keras.layers.corer(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   .tensorflow.python.keras.layers.dense_attentionr5   r6   )tensorflow.python.keras.layers.embeddingsr7   $tensorflow.python.keras.layers.merger8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   &tensorflow.python.keras.layers.poolingrH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   (tensorflow.python.keras.layers.recurrentr`   ra   rb   rc   rd   re   enabledrf   GRUV1rg   	GRUCellV1rh   LSTMV1ri   
LSTMCellV16tensorflow.python.keras.layers.convolutional_recurrentrj   2tensorflow.python.keras.layers.rnn_cell_wrapper_v2rk   rl   rm   tensorflow.python.keras.layersrn   ,tensorflow.python.keras.layers.serializationro   rp   objectrr    r}   r|   <module>r      s    !
 = A ? ; V J E C D O G @ ? ? H H H H H G F F O O O O H F E E F F F C C C 8 7 @ @ @ : 7 7 7 < 6 5 F M D @ 5 9 9 8 8 8 < 4 4 9 9 8 8 8 < 4 @ ? ? C C C I I I E E E = < < < < < B B B B B B 9 D D B E >3;;=CKEM:>;?
%)&* N M M N 9 D B= =r}   