Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/keras/src/layers/__init__.py: 90%
194 statements
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-03 07:57 +0000
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-03 07:57 +0000
1# Copyright 2016 The TensorFlow Authors. All Rights Reserved.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14# ==============================================================================
15"""Keras layers API."""
17# isort: off
18import tensorflow.compat.v2 as tf
20from keras.src.engine.base_layer import Layer
21from keras.src.engine.base_preprocessing_layer import PreprocessingLayer
23# Generic layers.
24from keras.src.engine.input_layer import Input
25from keras.src.engine.input_layer import InputLayer
26from keras.src.engine.input_spec import InputSpec
27from keras.src.layers.activation.elu import ELU
28from keras.src.layers.activation.leaky_relu import LeakyReLU
29from keras.src.layers.activation.prelu import PReLU
31# Activations layers.
32from keras.src.layers.activation.relu import ReLU
33from keras.src.layers.activation.softmax import Softmax
34from keras.src.layers.activation.thresholded_relu import ThresholdedReLU
35from keras.src.layers.attention.additive_attention import AdditiveAttention
36from keras.src.layers.attention.attention import Attention
38# Attention layers.
39from keras.src.layers.attention.multi_head_attention import MultiHeadAttention
41# Convolution layer aliases.
42# Convolution layers.
43from keras.src.layers.convolutional.conv1d import Conv1D
44from keras.src.layers.convolutional.conv1d import Convolution1D
45from keras.src.layers.convolutional.conv1d_transpose import Conv1DTranspose
46from keras.src.layers.convolutional.conv1d_transpose import Convolution1DTranspose
47from keras.src.layers.convolutional.conv2d import Conv2D
48from keras.src.layers.convolutional.conv2d import Convolution2D
49from keras.src.layers.convolutional.conv2d_transpose import Conv2DTranspose
50from keras.src.layers.convolutional.conv2d_transpose import Convolution2DTranspose
51from keras.src.layers.convolutional.conv3d import Conv3D
52from keras.src.layers.convolutional.conv3d import Convolution3D
53from keras.src.layers.convolutional.conv3d_transpose import Conv3DTranspose
54from keras.src.layers.convolutional.conv3d_transpose import Convolution3DTranspose
55from keras.src.layers.convolutional.depthwise_conv1d import DepthwiseConv1D
56from keras.src.layers.convolutional.depthwise_conv2d import DepthwiseConv2D
57from keras.src.layers.convolutional.separable_conv1d import SeparableConv1D
58from keras.src.layers.convolutional.separable_conv1d import SeparableConvolution1D
59from keras.src.layers.convolutional.separable_conv2d import SeparableConv2D
60from keras.src.layers.convolutional.separable_conv2d import SeparableConvolution2D
62# Core layers.
63from keras.src.layers.core.activation import Activation
64from keras.src.layers.core.dense import Dense
65from keras.src.layers.core.einsum_dense import EinsumDense
66from keras.src.layers.core.embedding import Embedding
67from keras.src.layers.core.identity import Identity
68from keras.src.layers.core.lambda_layer import Lambda
69from keras.src.layers.core.masking import Masking
70from keras.src.layers.core.tf_op_layer import ClassMethod
71from keras.src.layers.core.tf_op_layer import InstanceMethod
72from keras.src.layers.core.tf_op_layer import InstanceProperty
73from keras.src.layers.core.tf_op_layer import SlicingOpLambda
74from keras.src.layers.core.tf_op_layer import TFOpLambda
76# Locally-connected layers.
77from keras.src.layers.locally_connected.locally_connected1d import (
78 LocallyConnected1D,
79)
80from keras.src.layers.locally_connected.locally_connected2d import (
81 LocallyConnected2D,
82)
84# Merging functions.
85# Merging layers.
86from keras.src.layers.merging.add import Add
87from keras.src.layers.merging.add import add
88from keras.src.layers.merging.average import Average
89from keras.src.layers.merging.average import average
90from keras.src.layers.merging.concatenate import Concatenate
91from keras.src.layers.merging.concatenate import concatenate
92from keras.src.layers.merging.dot import Dot
93from keras.src.layers.merging.dot import dot
94from keras.src.layers.merging.maximum import Maximum
95from keras.src.layers.merging.maximum import maximum
96from keras.src.layers.merging.minimum import Minimum
97from keras.src.layers.merging.minimum import minimum
98from keras.src.layers.merging.multiply import Multiply
99from keras.src.layers.merging.multiply import multiply
100from keras.src.layers.merging.subtract import Subtract
101from keras.src.layers.merging.subtract import subtract
102from keras.src.layers.normalization.batch_normalization import (
103 SyncBatchNormalization,
104)
106# Normalization layers.
107from keras.src.layers.normalization.group_normalization import GroupNormalization
108from keras.src.layers.normalization.layer_normalization import LayerNormalization
109from keras.src.layers.normalization.unit_normalization import UnitNormalization
110from keras.src.layers.normalization.spectral_normalization import (
111 SpectralNormalization,
112) # noqa: E501
114# Preprocessing layers.
115from keras.src.layers.preprocessing.category_encoding import CategoryEncoding
116from keras.src.layers.preprocessing.discretization import Discretization
117from keras.src.layers.preprocessing.hashed_crossing import HashedCrossing
118from keras.src.layers.preprocessing.hashing import Hashing
120# Image preprocessing layers.
121from keras.src.layers.preprocessing.image_preprocessing import CenterCrop
122from keras.src.layers.preprocessing.image_preprocessing import RandomBrightness
123from keras.src.layers.preprocessing.image_preprocessing import RandomContrast
124from keras.src.layers.preprocessing.image_preprocessing import RandomCrop
125from keras.src.layers.preprocessing.image_preprocessing import RandomFlip
126from keras.src.layers.preprocessing.image_preprocessing import RandomHeight
127from keras.src.layers.preprocessing.image_preprocessing import RandomRotation
128from keras.src.layers.preprocessing.image_preprocessing import RandomTranslation
129from keras.src.layers.preprocessing.image_preprocessing import RandomWidth
130from keras.src.layers.preprocessing.image_preprocessing import RandomZoom
131from keras.src.layers.preprocessing.image_preprocessing import Rescaling
132from keras.src.layers.preprocessing.image_preprocessing import Resizing
133from keras.src.layers.preprocessing.integer_lookup import IntegerLookup
134from keras.src.layers.preprocessing.normalization import Normalization
135from keras.src.layers.preprocessing.string_lookup import StringLookup
136from keras.src.layers.preprocessing.text_vectorization import TextVectorization
137from keras.src.layers.regularization.activity_regularization import (
138 ActivityRegularization,
139)
140from keras.src.layers.regularization.alpha_dropout import AlphaDropout
142# Regularization layers.
143from keras.src.layers.regularization.dropout import Dropout
144from keras.src.layers.regularization.gaussian_dropout import GaussianDropout
145from keras.src.layers.regularization.gaussian_noise import GaussianNoise
146from keras.src.layers.regularization.spatial_dropout1d import SpatialDropout1D
147from keras.src.layers.regularization.spatial_dropout2d import SpatialDropout2D
148from keras.src.layers.regularization.spatial_dropout3d import SpatialDropout3D
150# Reshaping layers.
151from keras.src.layers.reshaping.cropping1d import Cropping1D
152from keras.src.layers.reshaping.cropping2d import Cropping2D
153from keras.src.layers.reshaping.cropping3d import Cropping3D
154from keras.src.layers.reshaping.flatten import Flatten
155from keras.src.layers.reshaping.permute import Permute
156from keras.src.layers.reshaping.repeat_vector import RepeatVector
157from keras.src.layers.reshaping.reshape import Reshape
158from keras.src.layers.reshaping.up_sampling1d import UpSampling1D
159from keras.src.layers.reshaping.up_sampling2d import UpSampling2D
160from keras.src.layers.reshaping.up_sampling3d import UpSampling3D
161from keras.src.layers.reshaping.zero_padding1d import ZeroPadding1D
162from keras.src.layers.reshaping.zero_padding2d import ZeroPadding2D
163from keras.src.layers.reshaping.zero_padding3d import ZeroPadding3D
165if tf.__internal__.tf2.enabled():
166 from keras.src.layers.normalization.batch_normalization import (
167 BatchNormalization,
168 )
169 from keras.src.layers.normalization.batch_normalization_v1 import (
170 BatchNormalization as BatchNormalizationV1,
171 )
173 BatchNormalizationV2 = BatchNormalization
174else:
175 from keras.src.layers.normalization.batch_normalization import (
176 BatchNormalization as BatchNormalizationV2,
177 )
178 from keras.src.layers.normalization.batch_normalization_v1 import (
179 BatchNormalization,
180 )
182 BatchNormalizationV1 = BatchNormalization
184# Kernelized layers.
185from keras.src.layers.kernelized import RandomFourierFeatures
187# Pooling layer aliases.
188# Pooling layers.
189from keras.src.layers.pooling.average_pooling1d import AveragePooling1D
190from keras.src.layers.pooling.average_pooling1d import AvgPool1D
191from keras.src.layers.pooling.average_pooling2d import AveragePooling2D
192from keras.src.layers.pooling.average_pooling2d import AvgPool2D
193from keras.src.layers.pooling.average_pooling3d import AveragePooling3D
194from keras.src.layers.pooling.average_pooling3d import AvgPool3D
195from keras.src.layers.pooling.global_average_pooling1d import GlobalAveragePooling1D
196from keras.src.layers.pooling.global_average_pooling1d import GlobalAvgPool1D
197from keras.src.layers.pooling.global_average_pooling2d import GlobalAveragePooling2D
198from keras.src.layers.pooling.global_average_pooling2d import GlobalAvgPool2D
199from keras.src.layers.pooling.global_average_pooling3d import GlobalAveragePooling3D
200from keras.src.layers.pooling.global_average_pooling3d import GlobalAvgPool3D
201from keras.src.layers.pooling.global_max_pooling1d import GlobalMaxPool1D
202from keras.src.layers.pooling.global_max_pooling1d import GlobalMaxPooling1D
203from keras.src.layers.pooling.global_max_pooling2d import GlobalMaxPool2D
204from keras.src.layers.pooling.global_max_pooling2d import GlobalMaxPooling2D
205from keras.src.layers.pooling.global_max_pooling3d import GlobalMaxPool3D
206from keras.src.layers.pooling.global_max_pooling3d import GlobalMaxPooling3D
207from keras.src.layers.pooling.max_pooling1d import MaxPool1D
208from keras.src.layers.pooling.max_pooling1d import MaxPooling1D
209from keras.src.layers.pooling.max_pooling2d import MaxPool2D
210from keras.src.layers.pooling.max_pooling2d import MaxPooling2D
211from keras.src.layers.pooling.max_pooling3d import MaxPool3D
212from keras.src.layers.pooling.max_pooling3d import MaxPooling3D
213from keras.src.layers.rnn.abstract_rnn_cell import AbstractRNNCell
215# Recurrent layers.
216from keras.src.layers.rnn.base_rnn import RNN
217from keras.src.layers.rnn.simple_rnn import SimpleRNN
218from keras.src.layers.rnn.simple_rnn import SimpleRNNCell
219from keras.src.layers.rnn.stacked_rnn_cells import StackedRNNCells
221if tf.__internal__.tf2.enabled():
222 from keras.src.layers.rnn.gru import GRU
223 from keras.src.layers.rnn.gru import GRUCell
224 from keras.src.layers.rnn.gru_v1 import GRU as GRUV1
225 from keras.src.layers.rnn.gru_v1 import GRUCell as GRUCellV1
226 from keras.src.layers.rnn.lstm import LSTM
227 from keras.src.layers.rnn.lstm import LSTMCell
228 from keras.src.layers.rnn.lstm_v1 import LSTM as LSTMV1
229 from keras.src.layers.rnn.lstm_v1 import LSTMCell as LSTMCellV1
231 GRUV2 = GRU
232 GRUCellV2 = GRUCell
233 LSTMV2 = LSTM
234 LSTMCellV2 = LSTMCell
235else:
236 from keras.src.layers.rnn.gru import GRU as GRUV2
237 from keras.src.layers.rnn.gru import GRUCell as GRUCellV2
238 from keras.src.layers.rnn.gru_v1 import GRU
239 from keras.src.layers.rnn.gru_v1 import GRUCell
240 from keras.src.layers.rnn.lstm import LSTM as LSTMV2
241 from keras.src.layers.rnn.lstm import LSTMCell as LSTMCellV2
242 from keras.src.layers.rnn.lstm_v1 import LSTM
243 from keras.src.layers.rnn.lstm_v1 import LSTMCell
245 GRUV1 = GRU
246 GRUCellV1 = GRUCell
247 LSTMV1 = LSTM
248 LSTMCellV1 = LSTMCell
250# Serialization functions.
251from keras.src.layers import serialization
253# Wrapper functions.
254from keras.src.layers.rnn.base_wrapper import Wrapper
255from keras.src.layers.rnn.bidirectional import Bidirectional
257# RNN Cell wrappers.
258from keras.src.layers.rnn.cell_wrappers import DeviceWrapper
259from keras.src.layers.rnn.cell_wrappers import DropoutWrapper
260from keras.src.layers.rnn.cell_wrappers import ResidualWrapper
262# Convolutional-recurrent layers.
263from keras.src.layers.rnn.conv_lstm1d import ConvLSTM1D
264from keras.src.layers.rnn.conv_lstm2d import ConvLSTM2D
265from keras.src.layers.rnn.conv_lstm3d import ConvLSTM3D
266from keras.src.layers.rnn.cudnn_gru import CuDNNGRU
268# cuDNN recurrent layers.
269from keras.src.layers.rnn.cudnn_lstm import CuDNNLSTM
270from keras.src.layers.rnn.time_distributed import TimeDistributed
271from keras.src.layers.serialization import deserialize
272from keras.src.layers.serialization import deserialize_from_json
273from keras.src.layers.serialization import get_builtin_layer
274from keras.src.layers.serialization import serialize
277class VersionAwareLayers:
278 """Utility to be used internally to access layers in a V1/V2-aware fashion.
280 When using layers within the Keras codebase, under the constraint that
281 e.g. `layers.BatchNormalization` should be the `BatchNormalization` version
282 corresponding to the current runtime (TF1 or TF2), do not simply access
283 `layers.BatchNormalization` since it would ignore e.g. an early
284 `compat.v2.disable_v2_behavior()` call. Instead, use an instance
285 of `VersionAwareLayers` (which you can use just like the `layers` module).
286 """
288 def __getattr__(self, name):
289 serialization.populate_deserializable_objects()
290 if name in serialization.LOCAL.ALL_OBJECTS:
291 return serialization.LOCAL.ALL_OBJECTS[name]
292 return super().__getattr__(name)