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

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.""" 

16 

17# isort: off 

18import tensorflow.compat.v2 as tf 

19 

20from keras.src.engine.base_layer import Layer 

21from keras.src.engine.base_preprocessing_layer import PreprocessingLayer 

22 

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 

30 

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 

37 

38# Attention layers. 

39from keras.src.layers.attention.multi_head_attention import MultiHeadAttention 

40 

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 

61 

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 

75 

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) 

83 

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) 

105 

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 

113 

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 

119 

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 

141 

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 

149 

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 

164 

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 ) 

172 

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 ) 

181 

182 BatchNormalizationV1 = BatchNormalization 

183 

184# Kernelized layers. 

185from keras.src.layers.kernelized import RandomFourierFeatures 

186 

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 

214 

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 

220 

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 

230 

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 

244 

245 GRUV1 = GRU 

246 GRUCellV1 = GRUCell 

247 LSTMV1 = LSTM 

248 LSTMCellV1 = LSTMCell 

249 

250# Serialization functions. 

251from keras.src.layers import serialization 

252 

253# Wrapper functions. 

254from keras.src.layers.rnn.base_wrapper import Wrapper 

255from keras.src.layers.rnn.bidirectional import Bidirectional 

256 

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 

261 

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 

267 

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 

275 

276 

277class VersionAwareLayers: 

278 """Utility to be used internally to access layers in a V1/V2-aware fashion. 

279 

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 """ 

287 

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) 

293